ログインエンドポイント - Amazon Cognito

ログインエンドポイント

/login エンドポイントはユーザーをサインインさせます。ログインページにロードされ、ユーザーにクライアントに設定されている認証オプションを提示します。

GET/ログイン

/login エンドポイントは HTTPS GET のみをサポートします。ユーザープールクライアントは、このリクエストをシステムブラウザ経由で行います。JavaScript のシステムブラウザには、Chrome や Firefox などがあります。Android ブラウザには、Custom Chrome Tab、iOS ブラウザには、Safari View Control があります。

パラメータのリクエスト

client_id

アプリのアプリクライアント ID。アプリケーションクライアント ID を取得するには、ユーザープールにアプリケーションを登録します。詳細については、「ユーザープールのアプリケーションクライアントの設定」を参照してください。

必須。

redirect_uri

この URI にユーザーは認証に成功した後にリダイレクトされます。指定された response_typeclient_id に設定されている必要があります。

必須。

response_type

OAuth レスポンスタイプは、コード付与フローの code と、暗黙的フローの token となります。

必須。

state

アプリがリクエストに state パラメータを追加すると、Amazon Cognito は/oauth2/login エンドポイントはユーザーをリダイレクトする際に、その値をアプリに返します。

この値をリクエストに追加して CSRF 攻撃から保護します。

state パラメータの値を、URL でエンコードされた JSON 文字列に設定することはできません。この形式に一致する文字列を state パラメータで渡すには、文字列を Base 64 にエンコードし、アプリ内でデコードします。

オプションですが、推奨しません。

scope

クライアントに関連付けられた任意のシステム予約されたスコープまたはカスタムスコープを組み合わせることができます。スコープはスペースで区切る必要があります。システム予約されたスコープは openidemailphoneprofile、および aws.cognito.signin.user.admin です。リクエストしたスコープは、アプリクライアントに対してアクティブ化する必要があります。そうしないと、Amazon Cognito はそれを無視します。

クライアントがスコープをリクエストしない場合、認可サーバーはクライアントに関連付けられているすべてのスコープを使用します。

ID トークンは openid スコープがリクエストされた場合にのみ返されます。aws.cognito.signin.user.admin スコープがリクエストされた場合、アクセストークンを使用できるのは Amazon Cognito ユーザープールのみです。phoneemail、および 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

その他のリクエストの例と、ポジティブとネガティブレスポンスの例については、「エンドポイントの認可」を参照してください。