OAuthサーバーへようこそ
このサーバーはOAuth 2.0を実装しています:
はじめに
このOAuthサーバーを使用するには、お問い合わせの上、OAuthアプリケーションを申請してください。
作成中のアプリケーションの簡単な説明と、以下の詳細をご提供ください。不明な点があっても問題ありません。ご提供いただいた説明をもとにこちらでサポートいたします。
- クライアントタイプ:パブリックか、それとも機密か?
- グラントタイプ:認可、クライアント資格情報、またはデバイス?
- 許可されたリダイレクトURI。
- アクセスしたいリソース。 APIドキュメントおよびGraphQL APIをご覧ください。
例(認可)
3. 認可コードをアクセストークンと交換
POST /token/
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=AUTH_CODE&redirect_uri=YOUR_REDIRECT_URI&client_id=YOUR_CLIENT_ID&code_verifier=YOUR_CODE_VERIFIER
例(クライアント認証情報)
1. 認証情報を交換してアクセストークンを取得
POST /token/
Authorization: Basic BASE64_ENCODED(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
2. 保護されたリソースへのアクセス
GET /resource/
Authorization: YOUR_ACCESS_TOKEN
例(デバイス)
2. デバイスコードをアクセストークンと交換
ユーザーが承認を行っている間、デバイスは定期的に(interval秒で指定されたレートで)アクセストークンの取得を試みる必要があります:
POST /token/
Content-Type: application/x-www-form-urlencoded
client_id=YOUR_CLIENT_ID&device_code=DEVICE_CODE&grant_type=urn:ietf:params:oauth:grant-type:device_code
3. 保護されたリソースへのアクセス
GET /resource/
Authorization: YOUR_ACCESS_TOKEN
例(トークン交換)
RFC 8693 委任セマンティクスがサポートされています。つまり、以下の通り、クライアント資格情報トークンをAuthorizationヘッダーとactor_tokenの両方で使用します。
1. 以下で説明するように、クライアント資格情報アプリのアクセストークンを取得します: 例(クライアント認証情報).
2. EXTERNAL_IDP_USER_ACCESS_TOKENが外部IdPによって発行されていると仮定し、トークン交換呼び出しを実行します:
POST /token
Authorization: YOUR_CLIENT_CREDENTIALS_ACCESS_TOKEN
Content-Type: application/x-www-form-urlencoded
grant_type="urn:ietf:params:oauth:grant-type:token-exchange"&
actor_token_type="urn:ietf:params:oauth:token-type:access_token"&
actor_token=YOUR_CLIENT_CREDENTIALS_ACCESS_TOKEN&
subject_token_type="urn:ietf:params:oauth:token-type:access_token"&
subject_token=EXTERNAL_IDP_USER_ACCESS_TOKEN
3. 保護されたリソースへのアクセス
GET /resource/
Authorization: YOUR_ACCESS_TOKEN