Yahoo! ID連携 v1のクローズに伴うv2への移行

Yahoo! ID連携 v1をご利用の皆様

いつもYahoo! ID連携をご利用いただきありがとうございます。
別途周知させていただきました通りYahoo! ID連携 v1は2022年5月31日にクローズする予定です。
Yahoo! ID連携 v1のクローズ後もYahoo! ID連携をご利用になるためには、
下記の対応が必要となる場合がございます。

  1. エンドポイントの変更
  2. ID Tokenの署名検証方法の変更
  3. 属性取得APIのレスポンスパラメータ名の変更

ご対応いただく内容

1. エンドポイントの変更

以下を元にYahoo! ID連携 v1でご利用中のエンドポイントのYahoo! ID連携 v2のエンドポイントへの切り替え対応をお願いいたします。
※既にYahoo! ID連携v2をご利用中の場合は切り替え対応は不要です。

v1(切替前のURL) v2(切替先のURL)
OpenID Configurationエンドポイント URL
https://auth.login.yahoo.co.jp/yconnect/v1/.well-known/openid-configuration
https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration
ドキュメント - OpenID Configurationエンドポイント
Authorizationエンドポイント URL
https://auth.login.yahoo.co.jp/yconnect/v1/authorization
https://auth.login.yahoo.co.jp/yconnect/v2/authorization
ドキュメント Authorizationエンドポイント Authorizationエンドポイント
CheckTokenエンドポイント URL
https://auth.login.yahoo.co.jp/yconnect/v1/checktoken

Yahoo! ID連携 v2での提供はございません。
2. ID Tokenの署名検証方法の変更」を確認いただきJWKsエンドポイントもしくは、Public Keysエンドポイントを利用してID Tokenのsignatureを検証するよう変更をお願いいたします。

ドキュメント CheckTokenエンドポイント Yahoo! ID連携v2での提供はございません。
Tokenエンドポイント URL
https://auth.login.yahoo.co.jp/yconnect/v1/token
https://auth.login.yahoo.co.jp/yconnect/v2/token
ドキュメント Tokenエンドポイント Tokenエンドポイント
属性取得API(UserInfoAPI) URL
https://userinfo.yahooapis.jp/yconnect/v1/attribute
https://userinfo.yahooapis.jp/yconnect/v2/attribute
ドキュメント 属性取得API(UserInfoAPI) 属性取得API(UserInfoAPI)

2. ID Tokenの署名検証方法の変更

Yahoo! ID連携 v2ではCheckTokenエンドポイントが廃止されているため、JWKsエンドポイントもしくはPublic Keysエンドポイントを利用してID Tokenのsignatureを検証する必要があります。
検証方法については、ID Tokenに関するドキュメントの「検証手順」を参照ください。
変更先の検証方法は以下のいずれかとなりますので、併せてご確認をお願いいたします。

v2
JWKsエンドポイント URL
https://auth.login.yahoo.co.jp/yconnect/v2/jwks
ドキュメント JWKsエンドポイント
Public Keysエンドポイント URL
https://auth.login.yahoo.co.jp/yconnect/v2/public-keys
ドキュメント Public Keysエンドポイント

3. 属性取得APIのレスポンスパラメータ名の変更

パラメータ名を「user_id」から「sub」にするなど、変更が必要になります。
パラメータ名の違いは以下のドキュメントをご確認ください。
https://developer.yahoo.co.jp/yconnect/v2/userinfo.html

Yahoo! ID連携v2への移行に伴う設定の引き継ぎ

スムーズな移行作業を行っていただくため、Yahoo! ID連携 v1の下記の設定を引き継ぎました。

アプリケーションIDの継続利用(Yahoo! ID連携 v1のアプリケーションIDのv2への引継ぎ)

Yahoo! ID連携 v1で登録済みのアプリケーションIDはYahoo! ID連携 v2のClient IDとしてご利用いただけます。
アプリケーションIDの継続利用に関しては特に作業や申請などは必要ございません。またv2のClient IDの新規登録は不要です。

※v2のClientIDを新規登録してしまうと引継ぎを行うことができません

リフレッシュトークンの継続利用

Yahoo! ID連携 v1で取得済みのリフレッシュトークンはYahoo! ID連携 v2のリフレッシュトークンとしてご利用いただけます。
リフレッシュトークンの継続利用に関しては特に作業や申請などは必要ございません。
なお、Yahoo! ID連携 v1で取得したリフレッシュトークンは、Yahoo! ID連携 v1のクローズ(2022年5月31日)まで利用可能となる予定です。

取得済み同意の継続利用

Yahoo! ID連携 v1で取得済みのユーザー同意はYahoo! ID連携 v2へと引き継がれるため、新たに同意を取得する必要はございません。
取得済み同意の継続利用に関しては特に作業や申請などは必要ございません。

Yahoo! ID連携 v2 SDK(Java・PHP)について

2021年11月4日よりYahoo! ID連携 v2 SDK(Java・PHP)の提供を開始いたしました。
各SDKの利用方法は下記をご覧ください。

Yahoo! ID連携 v1 SDKからの変更差分

Yahoo! ID連携 v1 SDKからの移行に際して以下の変更がございますので、合わせてご確認をお願いいたします。

項目 Java SDKへの影響 PHP SDKへの影響 詳細
YConnectExplicitの名称変更 YConnectExplicit.java - 必須
YConnectExplicit.java から YConnectClient.javaに名称を変更になります。
ResponseType から CODE_IDTOKEN を廃止 OAuth2ResponseType.java ResponseType.php 必須
「CODE」の指定が必須になります。
UserInfoオブジェクトのフィールド変更 UserInfoObject.java - 必須
  • 追加
    • zoneinfo
    • birthdate
    • nickname
    • picture
    • addressFormatted
    • ppidSub
  • 変更
    • userId → sub
  • 削除
    • birthday
各フィールドの詳細については属性取得API(UserInfoAPI)をご覧ください。
YConnectClient#verifyIdToken の引数追加 - YConnectClient.php 必須
アクセストークンの指定が必須になります。
YConnectClient#verifyIdToken の引数変更 YConnectExplicit#verifyIdToken - 必須
Client Secretの指定は不要になります。
YConnectClient#requestUserInfo の引数削除 - YConnectClient.php 必須
schemaの指定は不要となります。
Javascript SDKと組み合わせた利用の廃止 Javaによる導入方法 PHPによる導入方法 Yahoo! JAPAN IDログインボタン デザインガイドラインを遵守の上、ログインボタンの配置をお願いいたします。
displayの定数の追加 OIDCDisplay.java OIDConnectDisplay.php Yahoo! ID連携 v2で追加されたパラメータに対応しました。 各パラメータの詳細はAuthorizationエンドポイントをご覧ください。
promptの定数の追加 OIDCPrompt.java OIDConnectPrompt.php
max_ageのサポート YConnectExplicit#init YConnectClient#requestAuth
PKCEのサポート YConnectExplicit#init YConnectClient#requestAuth

FAQ

Q. Yahoo! ID連携 v1を利用中ですが、今後利用できなくなるということですか?それはいつですか?

A. Yahoo! ID連携 v1のクローズは2022年5月31日を予定しており、上記期限までにYahoo! ID連携 v2に移行していただく必要があります。
移行が完了していない場合、Yahoo! ID連携が利用できなくなります。
Yahoo! ID連携 v2への移行に関しましては移行機能を提供予定ですのでご案内までしばらくお待ちください。

Q.Yahoo! ID連携 v1を利用しているのか、v2を利用しているのかはどうやってわかりますか?

A. 下記のダッシュボードよりご利用中のアプリケーションを選択いただき、[アプリケーション情報] - [アプリケーションの種類]をご確認ください。
https://e.developer.yahoo.co.jp/dashboard/

Q. Yahoo! ID連携 v1で取得済みの同意やリフレッシュトークンはどうなりますか?

A. Yahoo! ID連携 v1でユーザーから取得した同意やリフレッシュトークンをYahoo! ID連携 v2のエンドポイントに切り替えた後も継続する機能を現在準備中です。
なお、Yahoo! ID連携 v1で取得したリフレッシュトークンは、Yahoo! ID連携 v1のサービスクローズ(2022年5月31日)まで利用可能となる予定です。

Q. 別途Yahoo! ID連携 v2のClient IDを取り直す必要はありますか?

A. 既にご利用中のYahoo! ID連携 v1のアプリケーションIDが存在する場合は、Yahoo! ID連携 v2のClient IDを新規に登録する必要はありません。

弊社にてYahoo! ID連携 v1のアプリケーションID(v2におけるClient ID)をYahoo! ID連携 v2に引き継ぐ作業を実施したため、Yahoo! ID連携 v1で登録済みのアプリケーションIDは2021年8月30日以降、Yahoo! ID連携 v2のClient IDとしてご利用いただけます。

アプリケーションIDの継続利用に関しては特に作業や申請等は必要ございません。
Yahoo! ID連携 v2のClient IDを新規に登録しても、前述の各種設定の引継ぎは行えません。

Q. Yahoo! ID連携 v2に移行したところ、"redirect_uri is invalid."のエラーとなります。

A. "redirect_uri is invalid."となる場合、アプリケーション管理画面のアプリケーション情報にて記載した登録済みコールバックURLが誤っている可能性がございます。
Yahoo! ID連携 v2では、リクエストパラーメータのredirect_uriと、登録済みコールバックURLを完全一致させる必要がございます。
そのため、リクエストパラメータとアプリケーションの管理画面にて記載した登録済みコールバックURLが一致しているかご確認ください。

Q. Yahoo! ID連携 v2のエンドポイントにアクセスした場合でもv1のエンドポイントにアクセスできますか?

A. テストなどで一時的にYahoo! ID連携 v2のエンドポイントにアクセスした場合や、完全にv2に移行した後に何か問題があった場合でも、
移行の期間内であればYahoo! ID連携 v1のエンドポイントにアクセスすることが可能です。

Q. Yahoo! ID連携 v2に移行したが、アプリケーションの管理画面のアイコンがv1の表記のままとなっています

A. Yahoo! ID連携 v2に移行が完了した場合でも、もともとv1のアプリケーションIDを取得した場合は現在もv1のアイコンが表示されております。
こちらはそのままでも問題ございませんので、ご安心ください。

アプリケーションの管理

Yahoo! ID連携 v2

開発のヒント