拡張グラント
拡張許可を使用すると、サードパーティの承認サービスからのアクセストークンを Hub からのアクセストークンと交換できます。拡張許可は、Hub の次の認証モジュールタイプでサポートされています。
JetBrains アカウント
OAuth 2.0
Okta
規格への参照
前提条件
Hub アクセストークンを取得したいサービスが Hub に登録されています。
サードパーティ認証サービス用の認証モジュールが Hub で作成され、有効化されました。
認証モジュールの拡張グラント設定に値が格納されます。
アクセストークンの交換
クライアントは、トークンエンドポイントにリクエストを送信し、HTTP リクエストのエンティティ本体に UTF-8 文字エンコードを使用した "application/x-www-form-urlencoded" 形式を使用して次のパラメーターを追加することで、アクセストークンを交換します。
- grant_type
必須。Hub のサードパーティ認証モジュールの拡張グラント設定に保存されている値を使用します。
- 範囲
オプション。アクセス要求の範囲。これは、Hub でリソースサーバーとして登録されているサービスの ID のスペース区切りリストで構成されます。例: クライアントが YouTrack の課題にアクセスする場合、Hub で YouTrack サービスの ID を見つける必要があります。クライアントは、1 つのアクセストークンで複数のリソースサーバーにアクセスできます。
- トークン
必須。認証モジュールに登録されているサードパーティの承認サービスへのアクセスを許可するトークン。
例: クライアントは、トランスポート層セキュリティを使用して次の HTTP リクエストを作成します(表示目的でのみ追加の改行を使用)。
許可サーバー(Hub)は次のことを行います。
機密クライアントまたはクライアント資格情報が発行されたクライアント (またはその他の認証要件を持つクライアント) に対してクライアント認証を要求します。
クライアント認証が含まれている場合はクライアントを認証し、認証されたクライアントにアクセストークンが発行されたことを確認します。
アクセストークンを検証します。
アクセストークンが有効で承認されている場合、Hub は代わりにアクセストークンを発行します。その後、クライアントは Hub トークンを使用して、API への後続の呼び出しを行うことができます。
リクエストの検証に失敗した場合、またはリクエストが無効な場合、Hub はエラー応答を返します。
トークン交換要求に対する Hub からのエラー応答
- エラー
以下からの単一の ASCII [USASCII] エラーコード:
invalid_request- 要求に必要なパラメーターが欠落しているか、サポートされていないパラメーター値(許可型以外)が含まれているか、パラメーターを繰り返しているか、複数の資格情報が含まれているか、クライアントを認証するために複数のメカニズムを使用しているか、不正な形式です。invalid_client- クライアント認証に失敗しました(例: 不明なクライアント、クライアント認証が含まれていない、サポートされていない認証方法)。承認サーバーは、サポートされている HTTP 認証スキームを示す HTTP 401(未承認)ステータスコードを返す場合があります。クライアントが「Authorization」要求ヘッダーフィールドを介して認証を試みた場合、Hub サーバーは HTTP 401(Unauthorized)ステータスコードで応答し、クライアントが使用する認証スキームに一致する「WWW-Authenticate」応答ヘッダーフィールドを含めます。invalid_grant- 提供された承認付与(承認コード、リソース所有者の資格情報など)またはトークンが無効であるか、期限切れであるか、取り消されているか、承認リクエストで使用されたリダイレクト URI と一致しないか、別のクライアントに発行されました。unauthorized_client- 認証されたクライアントは、この許可付与タイプを使用することを許可されていません。unsupported_grant_type- 認可付与タイプは、Hub ではサポートされていません。invalid_scope- 要求されたスコープが無効、不明、不正な形式であるか、リソース所有者によって付与されたスコープを超えています。
- error_description
発生したエラーをクライアント開発者が理解するのを支援するために使用される、追加情報を提供する人間が読める ASCII [USASCII] テキスト。
- error_uri
エラーに関する追加情報をクライアント開発者に提供するために使用される、エラーに関する情報を含む人間が読める Web ページを識別する URI。
パラメーターは、「application/json」メディア型を使用して HTTP レスポンスのエンティティ本体に含まれます。パラメーターは、最上位の構造レベルで各パラメーターを追加することにより、JSON 構造にシリアル化されます。パラメーター名と文字列値は JSON 文字列として含まれています。数値は JSON 番号として含まれています。パラメーターの順序は重要ではなく、変化する可能性があります。
例: