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 | ユーザーに表示するテンプレートの種類
|
|
prompt | クライアントが強制させたいアクション 複数選択する場合はスペース区切りで指定します。
|
|
scope | UserInfo APIから取得できる属性情報を指定できます。 複数選択する場合はスペース区切りで指定します。
|
|
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=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb&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 | 以下のエラーコードを返却します。
|
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! ID連携 v1
- Yahoo! ID連携とは
- ガイドラインを確認する
- Yahoo! JAPAN IDを取得する
- アプリケーションIDを登録する
- WEBへの導入(利用言語を決める)
- iOS/Androidへの導入(OSを選択する)
- 属性取得API(UserInfoAPI)について
- 請求先住所参照API(BillingAddressAPI)について
- IDトークンについて
- APIアクセス実装方法
- Yahoo! ID連携用語集
- FAQ