リソース所有者のパスワード資格情報
規格への参照
前提条件
クライアントはユーザーの資格情報を知っており、ユーザーに代わってリソースにアクセスします。
例: クライアントは、デバイスのオペレーティングシステムまたは特権の高いアプリケーションです。
この付与タイプは、リソース所有者の資格情報(ユーザー名とパスワード、通常は対話型フォームを使用)を取得できるクライアントに適しています。また、保存されている資格情報をアクセストークンに変換することにより、HTTP 基本認証やダイジェスト認証などの直接認証スキームを使用して既存のクライアントを OAuth に移行するためにも使用されます。
アクセストークンリクエスト
クライアントは、HTTP リクエストエンティティボディに UTF-8 の文字エンコードを使用した「application/x-www-form-urlencoded」形式を使用して次のパラメーターを追加することにより、トークンエンドポイントにリクエストを送信します。
- grant_type
必須。値は「パスワード」に設定する必要があります。
- ユーザー名
必須。リソース所有者のユーザー名。
- パスワード
必須。リソース所有者のパスワード。
- 範囲
アクセス要求のスコープ: リソースサーバーに関連付けられた Hub に登録されているサービスの ID をスペース区切りでリスト化したもの。例: クライアントが YouTrack の課題にアクセスしたい場合、Hub で YouTrack サービスの ID を見つける必要があります。クライアントは 1 つのアクセストークンで複数のリソースサーバーにアクセスできます。
- access_type
ユーザーがオンラインでないときに、アプリケーションが Hub へのアクセスを必要とするかどうかを示します。許可される値:
online(デフォルトで使用)およびofflineユーザーがオンラインでないときにアプリケーションがアクセストークンのリフレッシュを必要とする場合は、offline値を使用します。この場合、Hub は、ユーザーの認証コードを初めて交換するときに、アプリケーションのリフレッシュトークンを発行します。詳細については、リフレッシュトークンページを参照してください。
リクエストには、次の形式の「Authorization」ヘッダーが含まれている必要があります。
次に例を示します: Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
このサービスは、Hub で信頼されている必要はありません。
例: クライアントは、トランスポート層セキュリティを使用して次の HTTP リクエストを作成します(表示目的でのみ追加の改行を使用)。
アクセストークンの応答
アクセストークン要求が有効で承認されている場合、Hub サーバーはアクセストークンとリフレッシュトークンを発行します。要求がクライアント認証に失敗したか無効である場合、承認サーバーは次のセクションで説明するようにエラー応答を返します。
成功した応答の例:
エラー応答の処理
要求がクライアント認証に失敗したか無効である場合、Hub は HTTP 400(間違った要求)ステータスコードで応答し(特に指定されていない限り)、応答に次のパラメーターを含めます。
- エラー
以下からの単一の 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 番号として含まれています。パラメーターの順序は重要ではなく、変化する可能性があります。
例: