ログインエンドポイント
/login
エンドポイントはユーザーをサインインさせます。ログインページにロードされ、ユーザーにクライアントに設定されている認証オプションを提示します。
GET/ログイン
/login
エンドポイントは HTTPS GET
のみをサポートします。ユーザープールクライアントは、このリクエストをシステムブラウザ経由で行います。JavaScript のシステムブラウザには、Chrome や Firefox などがあります。Android ブラウザには、Custom Chrome Tab、iOS ブラウザには、Safari View Control があります。
パラメータのリクエスト
- client_id
-
アプリのアプリクライアント ID。アプリケーションクライアント ID を取得するには、ユーザープールにアプリケーションを登録します。詳細については、「ユーザープールのアプリケーションクライアントの設定」を参照してください。
必須。
- redirect_uri
-
この URI にユーザーは認証に成功した後にリダイレクトされます。指定された
response_type
のclient_id
に設定されている必要があります。必須。
- response_type
-
OAuth レスポンスタイプは、コード付与フローの
code
と、暗黙的フローのtoken
となります。必須。
- state
-
アプリがリクエストに state パラメータを追加すると、Amazon Cognito は
/oauth2/login
エンドポイントはユーザーをリダイレクトする際に、その値をアプリに返します。この値をリクエストに追加して CSRF
攻撃から保護します。 state
パラメータの値を、URL でエンコードされた JSON 文字列に設定することはできません。この形式に一致する文字列をstate
パラメータで渡すには、文字列を Base 64 にエンコードし、アプリ内でデコードします。オプションですが、推奨しません。
- scope
-
クライアントに関連付けられた任意のシステム予約されたスコープまたはカスタムスコープを組み合わせることができます。スコープはスペースで区切る必要があります。システム予約されたスコープは
openid
、email
、phone
、profile
、およびaws.cognito.signin.user.admin
です。リクエストしたスコープは、アプリクライアントに対してアクティブ化する必要があります。そうしないと、Amazon Cognito はそれを無視します。クライアントがスコープをリクエストしない場合、認可サーバーはクライアントに関連付けられているすべてのスコープを使用します。
ID トークンは
openid
スコープがリクエストされた場合にのみ返されます。aws.cognito.signin.user.admin
スコープがリクエストされた場合、アクセストークンを使用できるのは Amazon Cognito ユーザープールのみです。phone
、email
、およびprofile
スコープは、openid
スコープがリクエストされた場合にのみリクエストできます。これらのスコープは ID トークン内でクレームを記述します。オプション。
- code_challenge_method
-
チャレンジを生成するために使用されるメソッドです。PKCE RFC
では S256 および plain の 2 つのメソッドが定義されていますが、Amazon Cognito 認証サーバーでは S256 のみがサポートされています。 オプション。
- code_challenge
-
code_verifier
から生成されたチャレンジ。code_challenge_method
が指定された場合にのみ必須です。
リクエスト例: ユーザーにサインインを促す
この例では、ログイン画面が表示されます。
GET https://mydomain.auth.us-east-1.amazoncognito.com/login? response_type=code& client_id=ad398u21ijw3s9w3939& redirect_uri=https://YOUR_APP/redirect_uri& state=STATE& scope=openid+profile+aws.cognito.signin.user.admin
レスポンス例
認証サーバーは認証コードとステートを伴ってアプリにリダイレクトします。サーバーは、コードとステートをフラグメントではなく、クエリ文字列のパラメータで返す必要があります。
HTTP/1.1 302 Found
Location: https://YOUR_APP/redirect_uri?code=AUTHORIZATION_CODE&state=STATE
その他のリクエストの例と、ポジティブとネガティブレスポンスの例については、「認可エンドポイント」を参照してください。