Amazon CognitoユーザープールでのFacebook APIバージョン更新について

Amazon CognitoユーザープールでのFacebook APIバージョン更新について

今朝、Amazon Web Service 社より FacebookGraphAPI v2.12 廃止の旨のメールが届きました。

メール受信内容

いつもお世話になっております。

お客様のアカウントの Amazon Cognito ユーザープールでは ID プロバイダーとして Facebook が有効化されているため、ご連絡いたします。

Cognito ユーザープールは、Facebook 経由でのソーシャルサインインに対応するためにグラフ API のバージョン: v2.12 を使用しております。[1] Facebook 社は2020年5月1日より後に当該バージョンの API を利用不可にすると発表しております。そのため、AWS では Cognito ユーザープールコンソール、および、自動化の仕組みなどで作成されたユーザープールの Facebook 連携の API バージョンを少なくとも v5.0 以上にアップグレードしていただくことを推奨しております。

このアップグレードにより Facebook から取得するユーザー属性に影響がある可能性があります。例えば、いくつかの属性は Facebook の比較的新しい API バージョンで廃止予定となり、結果が返却されなくなります。[2] これらの属性をご利用の場合、期待する値を取得し続けるためには Cognito ユーザープールの属性マッピングを更新する必要があります。また、お客様のアプリケーションより属性マッピングの一部として保存された Facebook のアクセストークンを使用した Facebook API の直接呼び出しにも同じ内容が適用される可能性があります。

Facebook のソーシャルサインインを継続的にご利用いただくために、Cognito ユーザープールは2020年5月1日より前にグラフ API のバージョン: v2.12 を v5.0 に自動アップグレードします。AWS は自動アップグレードの実施前にお客様へフォーローアップ通知を行う予定です。

該当するユーザープール:
ap-northeast-1_xxxx
ap-northeast-1_xxxx
ap-northeast-1_xxxx

Cognito ユーザープールにソーシャルサインインの追加、および、Facebook の API バージョンを選択する手順については以下のドキュメントリンクをご参照ください。

[1] https://developers.facebook.com/docs/graph-api/changelog/version2.12/
[2] https://developers.facebook.com/docs/graph-api/changelog/version3.0#login
[3] https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-configuring-federation-with-social-idp.html

つまり何をすればいいの?

メールにも記載の通り、Facebook Graph API v2.12 から v5.0 へバージョンアップの対応が必要です。v3.0 とかも選択できそうな雰囲気ですが、自動アップグレードで v5.0 なので v5.0 にしておくのが無難かなと思います。

主な作業は下記です。

  • public_profile の変更
  • Facebook アクセストークンを使用した Facebook API の直接呼び出しの処理修正
  • Cognito のユーザー属性マッピングの修正

public_profile の変更

以前まで public_profilre で取得可能であった情報に制限が審査が入りました。

  • public_profile で取得していた内容はスコープで厳格に指定することに
  • 特定のパーミッションにアクセスするビジネスについては、定款や法人番号の提出などによる実在証明を提出必須に
  • サードパーティの Facebook 認証を行うケースでは収集したデータについて目的外利用をしないという契約が別途必要に

継続して取得可能な属性情報

  • id
  • first_name
  • last_name
  • middle_name
  • name
  • name_format
  • picture
  • short_name

結果、public_profile に属していた下記の属性は非推奨になってしまいました。

  • age_range
  • context
  • cover
  • currency
  • devices
  • gender
  • link
  • locale
  • timezone
  • updated_time
  • verified

また特記事項として、rsvp_event、user_managed_groups 権限は廃止されました。

※user_managed_groups 許可はまだテスト目的のために使用することができますが、提出することはできません。

Facebook アクセストークンを使用した Facebook API の直接呼び出しの処理修正

例えばユーザープールへ Facebook でサインイン後、アクセストークンを利用して Facebook より投稿を取得・投稿するなどのケースで対応必須です。(Facebook の新しい API に合わせて呼び出し方やデータのキー名を変更)

※FacebookAPI を「Cognito ユーザープールで外部 IDP サインインのみで利用」の場合は対応不要です。

Cognito のユーザー属性マッピングの修正

バージョンを切り替え、スコープに合わせて適切な属性情報を指定します。

属性マッピング

丁寧に警告出してくれていますね。ありがたいです。

AWS のマネージに感謝!

自前で構築していたら、気づけなかったかもしれないですね。

急に Facebook ログインが使用できない!なんて状態は避けたいものです。

AWS 社の通知に感謝です。

サーバーレス開発については、お気軽にお問い合わせください。