0.初めに
OAuth2.0ではauthorization code flowが有名ですが、認証するユーザが存在しない場合はClientID, ClientSecretを使ってアクセストークンを発行するClient Credentials Flowという仕様も存在します。
今回はAuth0を使ってClient Credentials Flowによるアクセストークンの取得までをまとめます。
1.クライアントの作成
Auth0にログインし、ダッシュボードのApplicationsから「+Create Application」をクリックします。
任意のNameを入力し、「Machine to Machine Applications」を選択し、「Create」をクリックします。
permissionsでclient_credentialsのcrudを選択し、「Auuthorize」をクリックします。
※ここはどこまで必要なのか未確認です。
ここまででクライアントが作成されます。
赤線の部分にはClientIDが表示されます。
Secretは「Credentials」から確認することができます。
2.ClientCredentialsFlowによるアクセストークンの取得
全ては「Quickstart」に記載されています。
「Getting an access token for your API」に各言語でのアクセストークンの取得方法が記載されています。
今回は手っ取り早くCurlで試してみます。Curlに記載のコマンドをターミナルに貼り付けて実行します。
トークンのペイロードはこんな感じになってました。
ここは使用するサービスによってカスタマイズの余地がありそうですね。
3.終わりに
auth0でClientCredentialsFlowを試してみましたが、30分もかからず検証ができました。
今後他のフローやIDaaS製品について触る機会があれば検証してみます。