Authorization エンドポイント
OpenID Connect および OAuth 2.0 に準拠し、ユーザー認証リクエストを行うエンドポイント。
ユーザー認証が完了したら redirect_uri
に認可コードを応答します。
GET /oauth2/authorize/:login_provider/:login_provider_identifier
ソーシャルログインURL としてソーシャルログインマネージャーからコピー可能
Authorization エンドポイントは、ソーシャルログインマネージャー の[プロバイダ設定]ページから 「ソーシャルログインURL」として表示されているものをコピーして利用します。
コピーして利用可能な「ソーシャルログインURL」を表示するには、コールバックURL の設定 と プロバイダ設定 が完了している必要があります。
リクエスト
Path パラメーター
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
login_provider | string | ○ | ログインプロバイダ(line , apple , yahoo , google ) |
login_provider_identifier | string | ○ | プロバイダ設定の識別子 |
Query パラメーター
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
client_id | string | ○ | クライアント情報の Client ID の値 |
scope | string | ○ | 取得したい個人情報を指定できます。複数選択する場合はスペース区切りで指定します。 ・ openid :(必須)ユーザー識別子・ profile : 姓名、生年月日、ユーザ名、プロフィール画像、自己紹介・ email : メールアドレス・ address : 郵便番号、住所・ phone : 電話番号 |
response_type | string | ○ | code 固定 |
redirect_uri | string | ○ | ユーザー認証リクエストのコールバックURL。コールバックURL はあらかじめ登録が必要です。クエリパラメータを含む場合は必ず URL エンコードが必要です。 |
state | string | CSRF 対策のランダム値。リクエストごとにアプリケーション側で生成した十分な長さのランダムな文字列を指定します。指定した state の値は認可コードの応答とともに返却されます。 | |
code_challenge | string | 認可コード横取り攻撃対策(PKCE, RFC7636)に準拠した値。code_verifier から生成した値を指定します。 | |
code_challenge_method | string | 認可コード横取り攻撃対策(PKCE, RFC7636)に準拠した値。code_challenge の生成方法に応じた値を指定します。 ・ plain (デフォルト)・ S256 ※セキュリティ上の観点から、S256 での実装を推奨します。 | |
prompt | string | (login_provider=line のみ利用可)consent のみ指定可能。ユーザーが要求された権限をすべて許可済みであっても 強制的に同意画面を再表示します。 | |
bot_prompt | string | (login_provider=line のみ利用可)normal または aggressive 。LINE 公式アカウントを友だち追加するオプションをユーザーのログイン時に表示します。詳しくは LINE 公式ドキュメント 参照。 | |
disable_auto_login | string | (login_provider=line のみ利用可) true のみ指定可能。LINE の 自動ログイン(LINE 公式ドキュメント)を無効にします。 |
リクエストサンプル
https://fea825aa5e.auth.socialplus.jp/oauth2/authorize/line/dffeaec8592ce668d72b?
client_id=d2fc554a1c
&scope=openid%20profile
&response_type=code
&redirect_uri=https%3A%2F%2Fclient.example.com%2Fauth%2Fcallback
&state=fcdad6d
エラーレスポンス
バリデーションエラー
ブラウザにエラー画面をレンダリングします。
HTTP ステータスコード | エラーメッセージ | 説明 |
---|---|---|
400(Bad Request) | client_id is invalid. | client_id の値が不正である。 |
400(Bad Request) | redirect_uri is invalid. | redirect_uri の値が不正である。未登録のコールバックURL である場合など。 |
関連: 共通のエラー
コールバックで返されるエラー
redirect_uri が無効でない限り、エラーコード(error)とエラーメッセージ(error_description)、および指定された state を redirect_uri に返します。 エラー時に認可コード(code)は返されません。
エラー時のコールバック例
HTTP/1.1 302 Found
Location: https://client.example.com/auth/callback?error=server_error&error_description=Internal%20server%20error.&state=fcdad6d
エラーコード | エラーメッセージ | 説明 |
---|---|---|
unsupported_response_type | Unsupported response_type. | response_type に未定義の値が指定されている。 |
invalid_scope | openid scope is required. | scope に openid が含まれていない。 |
invalid_scope | scope is invalid. | scope に未定義の値が含まれている。 |
invalid_request | code_challenge format is invalid. | PKCE の code_challenge の形式が不正である。 |
invalid_request | Unsupported code_challenge_method. | PKCE の code_challenge_method に未定義の値が指定されている。 |
server_error | Internal server error. | その他不明なエラー。時間を置いて再度ユーザー認証リクエストの最初から再実行してください。 |
ログインプロバイダ側の認可が失敗したとき
ログインプロバイダから応答されたエラー結果(error)および指定された state を redirect_uri に返します。
エラー時のコールバック例
HTTP/1.1 302 Found
Location: https://client.example.com/auth/callback?error=access_denied&state=fcdad6d
ログインプロバイダ側の認可の失敗とは以下のようなケース(一部例)があります。エラー結果はログインプロバイダの仕様に依るため不定です。
- ユーザーがログインプロバイダ側の認証(ログイン)を拒否(キャンセル)した
- ユーザーがログインプロバイダ側の認可要求を拒否(キャンセル)した
- ログインプロバイダ側の問題で失敗が応答された
成功レスポンス
リクエストに成功すると、ログインプロバイダ側の認証・認可画面を経て、認可コード(code)および指定された state を redirect_uri に返します。
成功時のコールバック例
HTTP/1.1 302 Found
Location: https://client.example.com/auth/callback?code=st0c89RJMsNqigK6XCvmloDQAwt1NDInu35JLdBp&state=fcdad6d
パラメータ名 | 型 | 必須 | 説明 |
---|---|---|---|
code | string | ※ | 認可コード ※ユーザーがリクエストに同意した場合のみ返却されます。 |
state | string | ※ | リクエスト時に指定された state 値 ※リクエスト時に値が指定された場合のみ返却されます。 |