OpenID Connect Provider Identifierの登録
AWS CognitoはOpenID Connectによる認証に対応している。OpenID ConnectのIdentifierを登録することで、FacebookやGmailなどの既存のパブリックログインプロバイダに加えて利用できる。
登録方法
OpenID Connectのプロバイダの登録はCognito設定画面上ではなく、IAMで行う。IAMから「Identity Provider」をクリックすると登録画面が現れるので、新規で作成する場合は「Create Provider」をクリックする。
認証プロバイダは「SAML」と「OpenID Connect」から選択可能であるので、「OpenID Connect」を選択。
OpenID Connectによる認証を追加する場合は、「Provider URL」と「audience」の情報が必要となる。
Yahoo! Japan(YConnect)との連携
ここで試しに、Yahoo! Japanが提供している認証サービス「YConnect」をCognitoに登録してみる。日本でOpenID Connectによる認証に対応している有名処はYahoo! Japanの他に、mixiやIIJなども存在するようである。
しかし、登録の際に問題が生じる。
YConnectのOpenID Provider Configuration DocumentのURLは、
https://auth.login.yahoo.co.jp/yconnect/v1/.well-known/openid-configuration
一方で、このOpenID Provider Configuration Document内のissuerのURLは、
https://auth.login.yahoo.co.jp
となっている。
OpenID Connect Discovery 1.0 incorporating errata set 1には、issuerのURLに.well-known/openid-configurationを付加したURLがOpenID Provider Configuration DocumentのURLとなると記述があるが、YConnectでは両者のURL間にズレが生じている。その結果として、IAMに登録する際に以下のエラーメッセージが表示されてしまう。
Please check .well-known/openid-configuration of provider: https://auth.login.yahoo.co.jp/yconnect/v1/ is valid.
ということで、YConnectのCognitoへの登録は断念。
IIJなどはきちんとCognitoに登録できるので、YConnectがOpenID Connectの仕様に準拠していないのが原因か。Cognitoの設定は、なかなか一筋縄にはいかない。