Authorizationエンドポイント

クライアントがユーザーをAuthorizationエンドポイントへリダイレクトさせ、ユーザーの認証・認可を得るためのエンドポイントです。
ユーザーの認証状態・認可状態を判定し、適切なページへリダイレクトさせ、認可コードを返す機能を提供します。

リクエスト

URL: https://auth.login.yahoo.co.jp/yconnect/v2/authorization
サポートするHTTPメソッド: GET/POST
Authorization: なし

リクエストパラメーター

パラメーター 必須 説明 入力値(サンプル)
response_type 「code id_token」「code token」「code id_token token」のいずれかを指定してください。
code:認可コードを返却
token:Access Tokenを返却
id_token:ID Tokenを返却
code%20id_token

※URLエンコードが必要です。

client_id アプリケーション登録時に発行したClient IDを指定してください。
dj00zaiZpPXNYeG5tRXJVVlLSZzP
uWNvbnN1bWVyc2VjcmV0Jng9ZWU-
redirect_uri アプリケーション登録時に設定したフルURL(もしくはカスタムURIスキーム)を指定してください。事前に登録されているクライアントのリダイレクト URI 値のひとつに正確に一致している必要があります。
https%3A%2F%2Fexample.org%2Fcb

※URLエンコードが必要です。

bail bail=1 を指定すると同意画面で「同意しない」ボタンをクリックした際にcodeパラメーターを付加せずにredirect_uriへリダイレクトさせます。指定しない場合はYahoo!トップへ遷移します。
scope UserInfo APIから取得できる属性情報を指定できます。
複数選択する場合はスペース区切りで指定します。
  • openid :(必須)ユーザー識別子を返却します。
  • profile :姓名・生年・性別を返却します。
  • email :メールアドレスと確認済みフラグを返却します。
  • address :ユーザー登録住所情報を返却します。
openid%20address%20profile

※URLエンコードが必要です。

state CSRF対策として、同一のセッションであることを確認するために利用します。リクエストごとにアプリケーション側で生成した十分な長さのランダムな文字列を指定してください。
af0ifjsldkj HTTP/1.1
nonce リプレイアタック対策のパラメーターです。リクエストごとにアプリケーション側で生成した十分な長さのランダムな文字列を指定してください。指定したnonce値はID Tokenに含まれて返却されます。ID Tokenの使い回しを防止するために、nonce値を検証し、同じID Tokenが二度以上使用されていないことを確認してください。
※response_typeが「code id_token」もしくは「code id_token token」の場合は必須です。
nonceの値は十分な不規則性がなければいけません。
n-0S6_WzA2Mj
display ログイン画面、同意画面で表示するページ種類を指定する場合に利用します。指定されていない場合にはpageが初期値となります 。
  • page:UserAgentに適した形でページを表示
  • touch:スマートフォン版ページを表示
  • popup:ポップアップ版ページを表示
  • inapp:ネイティブアプリ版ページを表示
page
prompt ユーザーに強制させたいアクションを指定します。複数指定する場合はスペース区切りにします。
  • consent:同意画面を強制表示します。ユーザー情報へのアクセスすることの同意確認をとりたい時に利用します。
  • login : ログインまたはパスワード再確認画面を強制表示します。ユーザーが既にYahoo! JAPAN上でログイン状態の場合でも再認証を要求したい時に利用します。
  • select_account:ID切り替え画面を強制表示します。
  • none:ログインや同意などの画面を非表示にしたい時に利用します。ユーザーがYahoo!上でログイン状態でなかった場合、データアクセスに対して過去に同意済みでなかった場合はエラーパラメーターが返却されます。このアクションについては他のアクションと組み合わせて利用ができません。
login
max_age 最大認証経過時間を指定します。指定された秒数よりも認証日時が経過していた場合は再認証が必要です。
3600
code_challenge 認可コード横取り攻撃対策(PKCE)のパラメーターです。code_verifierから生成した値を指定してください。
code_verifierおよびcode_challengeの生成方法は下記をご確認ください。
https://tools.ietf.org/html/rfc7636#page-8
E9Melhoa2OwvFrEMTJguCH
aoeK1t8URWbuGJSstw-cM
code_challenge_method 認可コード横取り攻撃対策(PKCE)のパラメーターです。code_challengeの生成方法に応じた値を指定してください。
  • plain(デフォルト):code_verifierと同じ値の場合
  • S256:code_verifierをSHA256でハッシュ化し、Base64URLエンコードした値の場合
セキュリティ上の観点から、S256での実装が難しい場合でのみplainを指定してください。
S256

リクエストサンプル

GET /yconnect/v2/authorization?
response_type=code%20id_token
&client_id=dj0zaiZpPXNYeG5tRXJKUVVlLSZzPWNvbnN1bWVyc2VjcmV0Jng9ZWU-
&redirect_uri=https%3A%2F%2F
example.org%2Fcb
&scope=openid%20profile
&nonce=n-0S6_WzA2Mj
&state=af0ifjsldkj HTTP/1.1
Host: auth.login.yahoo.co.jp

レスポンス

正常レスポンス

パラメーター名必須概要返却値(サンプル)
access_token Access Token文字列(最大3072Byteの可変長文字列)
※Authorizationリクエスト時のresponse_typeにtokenが指定されている場合に返却されます。
SlAV32hkKG
token_type Token Type
Bearer Token形式
※Authorizationリクエスト時のresponse_typeにtokenが指定されている場合に返却されます。
bearer

※固定値

id_token ID Token文字列(最大1024Byteの可変長)
※Authorizationリクエスト時のresponse_typeにid_tokenが指定されている場合に返却されます。
eyJ0...ZXso
code 認可コード(8Byteの固定長文字列)
※ユーザーが同意した場合のみ返却されます。
Hybrid Flowの時は常に返却されます。
HTTPクライアントなどでサーバーサイドへ送信しTokenエンドポイントでAccess Token発行に用います。
SxlOBeZQ
state リクエスト時に指定されたstate値
※Authorizationリクエスト時のstateが指定されている場合に返却されます。 CSRF対策として、リクエスト時に指定したstate値とレスポンスで取得したstate値の一致を確認してください。
af0ifjsldkj

レスポンスサンプル

HTTP/1.1 302 Found
Location: https://example.org/cb#
    code=SxlOBeZQ
    &id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
    &state=af0ifjsldkj

エラーレスポンス

パラメーター名必須概要返却値(サンプル)
state リクエスト時に指定されたstate値
※Authorizationリクエスト時のstateが指定されている場合に返却されます。
af0ifjsldkj
error エラーコード
詳細は下記をご確認ください。
https://openid.net/specs/openid-connect-core-1_0.html#AuthError
invalid_request
error_description エラー概要
Unsupported%20response_type%20value
error_code エラー判定用コード
1000

レスポンスサンプル

HTTP/1.1 302 Found
Location: https://example.org/cb#
    state=af0ifjsldkj
    &error=invalid_request
    &error_description=Unsupported%20response_type%20value
    &error_code=1000

アプリケーションの管理

Yahoo! ID連携 v2

利用のルール

開発のヒント