この記事は最終更新日から1年以上が経過しています。
KongのOAuth2での認証で公式ドキュメントでは分かりづらいところだったのでまとめてみました。
Client Credentials Grant と Authorization code のフローのアクセストークン取得までの手順をまとめました。
OAuth2のフロー
- Authorization Code Grant
- RailsなどバックエンドのサーバーサイドでOAuthする時
- Implicit Grant
- JavaScriptなどWebブラウザのクライアントサイドでOAuthする時
- Resource Owner Password Credentials Grant
- PCやモバイルアプリなどで、他の方法が使えない環境でOAuthする時
- Client Credentials Grant
- 社内のAPIサーバー等信頼できるクライアントからOAuthする時
プラグインの追加
- OAuth2プラグインの追加
# serviceに設定 $ curl -X POST http://kong:8001/services/periodic-api/plugins \ --data "name=oauth2" \ --data "config.enable_client_credentials=true" # routeに設定 $ curl -X POST http://kong:8001/routes/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/plugins \ --data "name=oauth2" \ --data "config.enable_client_credentials=true" |
- Consumerの作成
$ curl -X POST http://kong:8001/consumers/ --data username=example_consumer |
- Applicationの登録
$ curl -X POST http://kong:8001/consumers/example_consumer/oauth2 \ --data name=Example%20Application \ --data redirect_uri=https://example.com/oauth2_callback |
Client Credentials Grant
1. Access Tokenの取得
$ curl -k -X POST https://kong:8443/{route}/oauth2/token \ --data grant_type=client_credentials \ --data client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ --data client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Authorization code
1. code 発行
$ curl -k -X POST https://kong:8443/{route}/oauth2/authorize \ --data "provision_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data "response_type=code" \ --data "authenticated_userid=1" \ --data "client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data "redirect_uri=https://example.com/oauth2_callback" |
2. Access Tokenの取得
$ curl -i -k -X POST https://kong:8443/{route}/oauth2/token \ --data "client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data "client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data "code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ --data "grant_type=authorization_code" |
この記事を書いた人
-
新卒3年目で脱新人を目指してます。
フロントに興味を持ち始めた今日このごろ。
趣味は 麻雀 プログラミング 音楽。
運動不足を感じているため、ダンスを始めようかと思っています。
最近書いた記事
- 2019.06.26コンテナイメージの縮小
- 2019.05.27Chromeのユーザ切り替えで複数のAWS環境の管理をわかりやすくする
- 2019.04.15ECRのライフサイクルポリシー
- 2019.03.29KongでOAuth2の認証手順