メインコンテンツまでスキップ

Authorization エンドポイント

OpenID Connect および OAuth 2.0 に準拠し、ユーザー認証リクエストを行うエンドポイント。
ユーザー認証が完了したら redirect_uri に認可コードを応答します。

GET /oauth2/authorize/:login_provider/:login_provider_identifier
ソーシャルログインURL としてソーシャルログインマネージャーからコピー可能

Authorization エンドポイントは、ソーシャルログインマネージャー の[プロバイダ設定]ページから 「ソーシャルログインURL」として表示されているものをコピーして利用します

コピーして利用可能な「ソーシャルログインURL」を表示するには、コールバックURL の設定プロバイダ設定 が完了している必要があります。

リクエスト

Path パラメーター

パラメータ名必須説明
login_providerstringログインプロバイダ(line, apple, yahoo, google
login_provider_identifierstringプロバイダ設定の識別子

Query パラメーター

パラメータ名必須説明
client_idstringクライアント情報の Client ID の値
scopestring取得したい個人情報を指定できます。複数選択する場合はスペース区切りで指定します。
openid :(必須)ユーザー識別子
profile : 姓名、生年月日、ユーザ名、プロフィール画像、自己紹介
email : メールアドレス
address : 郵便番号、住所
phone : 電話番号
response_typestringcode 固定
redirect_uristringユーザー認証リクエストのコールバックURL。コールバックURL はあらかじめ登録が必要です。クエリパラメータを含む場合は必ず URL エンコードが必要です。
statestringCSRF 対策のランダム値。リクエストごとにアプリケーション側で生成した十分な長さのランダムな文字列を指定します。指定した state の値は認可コードの応答とともに返却されます。
code_challengestring認可コード横取り攻撃対策(PKCE, RFC7636)に準拠した値。code_verifier から生成した値を指定します。
code_challenge_methodstring認可コード横取り攻撃対策(PKCE, RFC7636)に準拠した値。code_challenge の生成方法に応じた値を指定します。
plain(デフォルト)
S256
※セキュリティ上の観点から、S256 での実装を推奨します。
promptstring(login_provider=line のみ利用可)consent のみ指定可能。ユーザーが要求された権限をすべて許可済みであっても 強制的に同意画面を再表示します。
bot_promptstring(login_provider=line のみ利用可)normal または aggressive。LINE 公式アカウントを友だち追加するオプションをユーザーのログイン時に表示します。詳しくは LINE 公式ドキュメント 参照。
disable_auto_loginstring(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

エラーレスポンス

バリデーションエラー

ブラウザにエラー画面をレンダリングします。

400 Bad Request エラーの一例

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_typeUnsupported response_type.response_type に未定義の値が指定されている。
invalid_scopeopenid scope is required.scope に openid が含まれていない。
invalid_scopescope is invalid.scope に未定義の値が含まれている。
invalid_requestcode_challenge format is invalid.PKCE の code_challenge の形式が不正である。
invalid_requestUnsupported code_challenge_method.PKCE の code_challenge_method に未定義の値が指定されている。
server_errorInternal 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
パラメータ名必須説明
codestring認可コード
※ユーザーがリクエストに同意した場合のみ返却されます。
statestringリクエスト時に指定された state 値
※リクエスト時に値が指定された場合のみ返却されます。

関連ドキュメント