PyCon APAC 2023

実録 Python Social Auth の Twitter OAuth APIマイグレーションプロジェクトとその教訓
2023-10-27 , track 4

ソーシャルログイン機能は、Webサービスの認証方法として広く利用されており、Python Social Authなどのライブラリを使用することで、この機能を容易に実装することができます。一方で、外部サービスに依存するという性質上、外部要因によってシステムの変更が必要になるリスクがあるのも事実です。実際、2023年2月にはTwitterが旧APIの廃止を発表し、多くのWebアプリケーションが影響を受けました。

本セッションでは、実際に行った「Python Social Auth の Twitter OAuth API マイグレーションプロジェクト」を振り返りながら、具体的な対応策やソーシャルログイン機能の構築に関するTipsを紹介します。ユーザーへの影響を出してしまったプロジェクトでもありますが、得られた教訓を共有したいと思います。


予定稿

  • 自己紹介
  • 概要説明
  • 前提知識の共有
  • ソーシャルログインについて
  • Python Social Authについて
  • Twitter API マイグレーションの経緯
  • LAPRAS(題材となるシステムの紹介)
  • 2023の発表から、影響調査、対応方針決定など
  • マイグレーションの課題と対応方法
  • Python Social Authの内部構造
  • 運用中のサービスの認証/認可プロバイダを変更することによる課題
    • 課題1 - 同じユーザでも認証(認可)プロバイダが異なると別人として扱われる
    • 課題2 - サービス名とProvider名が一致しなくなる
  • 移行作業の注意点
  • マイグレーションプロジェクトの結果
  • 学び(システム面, 運用面)
  • システム面
    • Provider名をサービス名として直接使用しない
    • ProviderとSNSの関係を1:1を前提としない
  • 最悪を想定して計画を立てる
  • 計画の前提にしている事実を明確にしておく
  • まとめ

LAPRAS株式会社のCTOとして、自社サービス(LAPRASや LAPRAS SCOUT) の開発・運用に携わっています。

Profile: https://lapras.com/public/rocky_manobi