App Engine / Java を使用しています。
Yahoo ユーザーを OpenID 2.0 から OAuth 2.0 ログイン (OpenID Connect) に移行する必要があります。これは、OpenID 2.0 アカウントを使用して App Engine にログインするための OpenID 2.0 Relying Party サポートがオフになるためです。
Yahoo ユーザーの場合、データストアに次の情報があります。
- フェデレーション ID: https://me.yahoo.com/a/ ...
- 電子メールアドレス
OAuth を使用して Sign-in with Yahoo を実装する場合、OAuth プロセスによって提供される情報を使用して、データストア内の既存のユーザーを識別する必要があります。ただし、Yahoo OAuth プロセスは、open-id を提供せず (Yahoo は OpenId Connect をサポートしていません)、電子メール アドレスも提供しません。
では、既存の Yahoo ユーザーを OpenId から OAuth に移行するにはどうすればよいでしょうか? リンクを作成して移行を実行するための両方のメカニズムに共通する情報は何ですか?
注: Google は OpenId Connect をサポートしているため、これは Google でサインインする場合に問題なく機能します。この場合、OpenId Connect / open-id == OpenId / フェデレーション ID となり、ユーザーの移行が可能になります。