クライアント資格情報
規格への参照
前提条件
クライアントは自分の資格情報を知っており、自分に代わってリソースにアクセスします。
クライアントは、クライアントがその制御下にある保護されたリソース、または以前に Hub サーバーと取り決められた別のリソース所有者のリソースへのアクセスを要求しているときに、クライアント資格情報(または他のサポートされている認証手段)のみを使用してアクセストークンを要求できます。
クライアント資格情報付与タイプは、機密クライアントのみが使用する必要があります。
クライアントは 、Hub に登録されている信頼できるサービスである必要があります。
アクセストークンリクエスト
クライアントは、HTTP リクエスト entity-body で UTF-8 の文字エンコードを使用して "application/x-www-form-urlencoded" 形式を使用して次のパラメーターを追加することにより、トークンエンドポイントに要求を行います。
- grant_type
必須。値は「client_credentials」に設定する必要があります。
- 範囲
オプション。リソースサーバーに関連付けられた Hub サービスに登録されている ID のスペース区切りのリスト。例: クライアントが YouTrack の課題にアクセスしたい場合は、Hub の YouTrack サービスの ID を見つける必要があります。クライアントは、単一のアクセストークンで複数のリソースサーバーにアクセスできます。
リクエストには、次の形式の「Authorization」ヘッダーが含まれている必要があります。
例: クライアントは、トランスポート層セキュリティを使用して次の HTTP リクエストを作成します。
許可サーバーはクライアントを認証する必要があります。
成功した応答
アクセストークン要求が有効で承認されている場合、Hub は以下に説明するようにアクセストークンを発行します。リフレッシュトークンは含まれていませんのでご注意ください。
承認サーバーは、アクセストークンとオプションのリフレッシュトークンを発行し、次のパラメーターを HTTP レスポンスのエンティティ本体に 200(OK)ステータスコードで追加することによって応答を構築します。
- access_token
必須。Hub によって発行されたアクセストークン。
- token_type
必須。発行されたトークンのタイプ。値は大文字と小文字を区別しません。
- expires_in
推奨。アクセストークンの有効期間(秒単位)。例: 値「3600」は、応答が生成されてから 1 時間でアクセストークンが期限切れになることを示します。
- 範囲
必須。Hub に登録され、リソースサーバーに関連付けられているサービスの ID のスペース区切りのリスト。例: クライアントが YouTrack の課題にアクセスしたい場合は、Hub の YouTrack サービスの ID を見つける必要があります。クライアントは、単一のアクセストークンで複数のリソースサーバーにアクセスできます。
パラメーターは、「application/json」メディア型を使用する HTTP レスポンスの entity-body に含まれています。パラメーターは、最上位の構造レベルで各パラメーターを追加することにより、JavaScript Object Notation(JSON) 構造にシリアル化されます。パラメーター名と文字列値は JSON 文字列として含まれています。数値は JSON 番号として含まれています。パラメーターの順序は重要ではなく、変化する可能性があります。
Hub には、トークン、クレデンシャル、その他の機密情報を含むすべての応答に、値が「no-store」の HTTP「Cache-Control」応答ヘッダーフィールドと、値が「no」の「Pragma」応答ヘッダーフィールドが含まれています。- キャッシュ "。
成功した応答の例:
エラー応答の処理
要求がクライアント認証に失敗したか無効である場合、Hub は HTTP 400(間違った要求)ステータスコードで応答し(特に指定されていない限り)、応答に次のパラメーターを含めます。
- エラー
以下からの単一の ASCII [USASCII] エラーコード:
invalid_request- 要求に必要なパラメーターが欠落しているか、サポートされていないパラメーター値(許可型以外)が含まれているか、パラメーターを繰り返しているか、複数の資格情報が含まれているか、クライアントを認証するために複数のメカニズムを使用しているか、不正な形式です。invalid_client- クライアント認証に失敗しました(例: 不明なクライアント、クライアント認証が含まれていない、サポートされていない認証方法)。Hub は、サポートされている 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 番号として含まれています。パラメーターの順序は重要ではなく、変化する可能性があります。
例: