Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IdentityPlatformを活用してモバイルアプリのセキュアな認証基盤をつくる

Avatar for maeken maeken
October 24, 2023
400

 IdentityPlatformを活用してモバイルアプリのセキュアな認証基盤をつくる

アプリ開発において、ユーザーの認証機能は重要です。セキュリティ上の脅威に対して、堅牢かつ安全に認証基盤を構築することが求められます。

Google CloudのIdentityPlatformは、幅広いセキュリティ機能を持った認証機能を提供するサービスです。多要素認証やOAuth、OpenIDConnectなどの認証プロトコルをサポートしておりiOSアプリのよりセキュアな認証機能の開発に活用することができます。

本トークでは、実際のiOSアプリ開発プロジェクトで、IdentityPlatformを活用したユーザー認証機能の開発を行い、そこで得られた知見や実践的なノウハウを共有いたします。 また悪意のあるユーザーからの攻撃に対してどのようなセキュリティ対策を取ることができるかを具体的にご紹介します。

Avatar for maeken

maeken

October 24, 2023
Tweet

Transcript

  1. CONFIDENCIAL 目次 • IdentityPlatformについて ◦ IdentityPlatformとは? ◦ 機能紹介 • IdentityPlatformのサービスへの導入

    ◦ タップルの認証刷新について ◦ IdentityPlatformを活用した認証機能の開発 • 運用事例 OpenIDConnectを使ったLine認証 • まとめ
  2. CONFIDENCIAL 自己紹介 • 前澤 健一(まえけん) • 2023年4月 サイバーエージェント 新卒入社 •

    株式会社タップルのiOSエンジニア • 麻雀、スノボが好きです
  3. CONFIDENCIAL 目次 • IdentityPlatformについて ◦ IdentityPlatformとは? ◦ 機能紹介 • IdentityPlatformのサービスへの導入

    ◦ タップルの認証刷新について ◦ IdentityPlatformを活用した認証機能の開発 • 運用事例 OpenIDConnectを使ったLine認証 • まとめ
  4. CONFIDENCIAL IdentityPlatform 機能紹介 Firebase IdentityPlatformでできること • 多要素認証(MFA) ◦ ユーザに2つ以上の認証要素の提供を求める認証 • カスタムIDプロバイダーによる認証 OIDC/

    SAML • ブロッキング関数 ◦ 認証処理の前段に特定のロジックを挟むことで、意図したユーザー以外の認証を制限できる • etc.. 高機能な認証、裏側のよりセキュアな認証管理によって、 よりセキュアな認証開発ができる
  5. CONFIDENCIAL 目次 • IdentityPlatformについて ◦ IdentityPlatformとは? ◦ 機能紹介 • IdentityPlatformのサービスへの導入

    ◦ タップルの認証刷新について ◦ IdentityPlatformを活用した認証機能の開発 • 運用事例 OpenIDConnectを使ったLine認証 • まとめ
  6. CONFIDENCIAL タップルでの認証刷新 IdentityPlatformの選定理由 • 旧タップル認証 ◦ Id/pass認証, line認証をカスタム認証で対応してた ◦ 認証情報を一部タップルのdbに保存して管理 •

    Identity platformへの移行 ◦ Line認証をOIDCとすることで 認証関連の情報の保存、管理をFirebaseAuthへ移譲 タップル側に認証の処理を持たないことで セキュリティリスクを減らし、より安全な認証基盤とできる
  7. CONFIDENCIAL タップルでの認証刷新 2要素認証 • タップルの2段階認証の要件 ◦ 各プロバイダ認証の(Google, Apple, Line認証)をそれぞれ追加の認証要素 としたい •

    Firebase IdentityPlatformの多要素認証 ◦ 追加認証要素にSMS認証しか対応してない タップルの要件とは合わなかった。 ◦ IdentityPlatformのMFAは使わず 既存のFirebaseAuthのアカウントのリンクの機能で代用
  8. CONFIDENCIAL 目次 • IdentityPlatformについて ◦ IdentityPlatformとは? ◦ 機能紹介 • IdentityPlatformのサービスへの導入

    ◦ タップルの認証刷新について ◦ IdentityPlatformを活用した認証機能の開発 • 運用事例 OpenIDConnectを使ったLine認証 • まとめ
  9. CONFIDENCIAL OpenID Connectとは • 流れ ◦ OpenID プロバイダー: ID トークンの発行者

    OIDCとは、 → IDトークンを使いクライアント, OIDCプロバイダー間での セキュアな認証が可能 OpenID プロバイダー クライアント ① IDトークンの要求 ② ユーザーの認証 リクエスト ③ IDトークンの発行
  10. CONFIDENCIAL FirebaseAuthでOIDC認証を使ったLine認証 • FirebaseAuthとlineチャネルの紐づけ • 外部認証プロバイダー(Line)とFirebaseAuthを設定 ◦ プロバイダ ID ◦

    クライアント ID ◦ 発行元(URL) ◦ クライアント シークレット • FirebaseSDKを使い Credentialを使ったフローで認証ができる
  11. CONFIDENCIAL タップルでの認証刷新 • サーバー ◦ lineとの認証のやりとりもタップルサーバ側で実装する必要なくなった。 • クライアント ◦ Oidc化でline認証もシンプルに実装できるようになった

    FirebaseAuthのSDKで各プロバイダ(Apple, Googleなど)の認証と同じ処理 のフローで実装可能になるため ◦ Line以外のoidcの対応も簡単に行える