Yahoo! ID連携

Authorizationエンドポイント

Authorizationエンドポイント

クライアントアプリがブラウザーを立ち上げ、ユーザーをAuthorizationエンドポイントへリダイレクトを行うことでユーザーの認可を得るためのエンドポイントです。

ユーザーの認証状態・認可状態を判定し、認可コードを返す機能を提供します。



リクエスト

URL: https://auth.login.yahoo.co.jp/yconnect/v1/authorization

サポートするHTTPメソッド: GET

Authorization: なし

リクエストパラメーター

パラメーター 必須 説明
response_type code という固定文字列を指定してください。
id_tokenを取得する場合はスペース区切りで id_token を指定してください。
client_id アプリケーション登録時に発行したアプリケーションIDを指定してください。
redirect_uri アプリケーション登録時に設定したフルURL(もしくはカスタムURIスキーム)を指定してください。登録済みの戻り先URLが1つしかない場合は省略可能です。戻り先URLがない場合はoobを指定してください。リクエスト時にURLエンコードされている必要があります。
state CSRF対策のパラメーターです。サーバーサイドで生成した乱数値を指定してください。コールバック時にこの値をクエリに付加して返却します。リクエスト時とコールバック時に値が一致するか確認するため、ユーザーのセッションにひもづけて保存しておく必要があります。
display ユーザーに表示するテンプレートの種類
  • page(デフォルト) :パソコン版のテンプレート
  • touch :スマートフォン版のテンプレート
  • wap :フィーチャーフォン版のテンプレート
  • inapp :ネイティブアプリ版のテンプレート(ログイン画面の新規登録リンクなし)
prompt クライアントが強制させたいアクション
複数選択する場合はスペース区切りで指定します。
  • none :非表示(必須の場合はエラーが返却されます)
  • login :ユーザーの再認証
  • consent :ユーザーの再認可
scope UserInfo APIから取得できる属性情報を指定できます。
複数選択する場合はスペース区切りで指定します。
  • openid :ユーザー識別子を返却します。
  • profile :姓名・生年・性別を返却します。
  • email :メールアドレスと確認済みフラグを返却します。
  • address :ユーザー登録住所情報を返却します。
nonce △ ※1 リプレイアタック対策のパラメーターです。リクエストごとにランダムな文字列を指定してください。クライアント側で同じnonce値が返却された場合は許容しないでください。
bail bail=1 を指定すると同意画面で「同意しない」ボタンをクリックした際にcodeパラメーターを付加せずにredirect_uriへリダイレクトさせます。指定しない場合はYahoo!トップへ遷移します。

※1. id_tokenを取得する際は必須

サンプルリクエストURL

HTTP/1.1 302 Found
Location:  https://auth.login.yahoo.co.jp/yconnect/v1/authorization?response_type=code+id_token&client_id=dj0zaiZpPUNEcGljYTFVd3c4MSZzPWNvbnN1bWVyc2VjcmV0Jng9ZGY-&state=xyz&redirect_uri=yj-xxxxx&scope=openid+profile&nonce=ef3a091928d5491624c0ac54d697124422705091


ユーザーが同意完了後の挙動

リクエストパラメーターのredirect_uriにURL(もしくはカスタムURIスキーム)を指定した場合

redirect_uriに指定した戻り先に下記パラメーターを付加してユーザーをリダイレクトさせます。

パラメーター 説明
code 認可コード(8Byteの固定長文字列)。有効期限は 600 秒(10 分)です。
state リクエスト時に指定されたstate値。リクエスト時に保存していた値をコールバック時の値が一致するか確認してください。一致しない場合にはCSRFの可能性があるためTokenエンドポイントへのリクエストは実行しないでください。

リクエストパラメーターのredirect_uriに oob を指定した場合

  • User Agent上に同意完了画面が表示され、認可コードが表示されます。
  • ユーザーは戻り先となるクライアントのアプリケーションに認可コードを入力する必要があります。

エラーレスポンス

以下の場合はエラー画面を出力します。

  • client_idが不正
  • redirect_uriが事前登録したコールバック先URLと不一致

上記以外はコールバック先URLに以下のエラー内容を返却します。

パラメーター 説明
error 以下のエラーコードを返却します。
  • 'invalid_request' :必須パラメーターが空、パラメーターが不正、未サポートのパラメーター
  • 'invalid_scope' :サポート外のスコープ
  • 'login_required' :prompt=none指定されたがログイン画面表示が必須
  • 'consent_required' :prompt=none指定されたが同意画面表示が必須
  • 'unsupported_response_type' :サポート外のレスポンスタイプを指定
  • 'unauthorized_client' :ユーザー認証の必要ないクライアント、クライアント認証が必須なクライアントアプリがresponse_type=tokenを指定した場合
  • 'access_denied' :https以外でアクセス
  • 'server_error' :認可サーバーの予期せぬエラー
error_description エラー内容の詳細な説明
state リクエスト時に指定されたstate値

サンプルエラーレスポンス

http://example.com/cb?error=invalid_request&error_description=required+parameter+is+empty.+%5B%22response_type%22%5D&state=xyz


Yahoo!知恵袋で調べる