Slide 1

Slide 1 text

CONFIDENCIAL IdentityPlatformを活用してモ バイルアプリのセキュアな認証 基盤をつくる 2023/10/19 CA.swift #17 株式会社タップル 前澤健一

Slide 2

Slide 2 text

CONFIDENCIAL 目次 ● IdentityPlatformについて ○ IdentityPlatformとは? ○ 機能紹介 ● IdentityPlatformのサービスへの導入 ○ タップルの認証刷新について ○ IdentityPlatformを活用した認証機能の開発 ● 運用事例 OpenIDConnectを使ったLine認証 ● まとめ

Slide 3

Slide 3 text

CONFIDENCIAL 発表中のリアクションは #ca_swift をつけてツイート🔥 🙌 わいわいしよう 🙌

Slide 4

Slide 4 text

CONFIDENCIAL 自己紹介 ● 前澤 健一(まえけん) ● 2023年4月 サイバーエージェント 新卒入社 ● 株式会社タップルのiOSエンジニア ● 麻雀、スノボが好きです

Slide 5

Slide 5 text

CONFIDENCIAL タップルのサービス紹介

Slide 6

Slide 6 text

CONFIDENCIAL マッチングアプリ「タップル」は、2014年5月にサービスを開始。男女ともに 半数以上を20代の利用者が占めており、グルメや映画、スポーツ観戦な ど、自分の趣味や行ってみたいデートスポットをきっかけに恋の相手が見 つけられる国内最大規模のマッチングアプリです。

Slide 7

Slide 7 text

CONFIDENCIAL 目次 ● IdentityPlatformについて ○ IdentityPlatformとは? ○ 機能紹介 ● IdentityPlatformのサービスへの導入 ○ タップルの認証刷新について ○ IdentityPlatformを活用した認証機能の開発 ● 運用事例 OpenIDConnectを使ったLine認証 ● まとめ

Slide 8

Slide 8 text

CONFIDENCIAL IdentityPlatformとは Google Cloudで提供している認証サービス Firebase Authentication の機能に加え追加の機能を提供 MFA/カスタムIDプロバイダー認証 etc.. 認証機能の、より高機能でセキュアな開発が可能

Slide 9

Slide 9 text

CONFIDENCIAL IdentityPlatform 機能紹介 Firebase IdentityPlatformでできること ● 多要素認証(MFA) ○ ユーザに2つ以上の認証要素の提供を求める認証 ● カスタムIDプロバイダーによる認証 OIDC/ SAML ● ブロッキング関数 ○ 認証処理の前段に特定のロジックを挟むことで、意図したユーザー以外の認証を制限できる ● etc.. 高機能な認証、裏側のよりセキュアな認証管理によって、 よりセキュアな認証開発ができる

Slide 10

Slide 10 text

CONFIDENCIAL 目次 ● IdentityPlatformについて ○ IdentityPlatformとは? ○ 機能紹介 ● IdentityPlatformのサービスへの導入 ○ タップルの認証刷新について ○ IdentityPlatformを活用した認証機能の開発 ● 運用事例 OpenIDConnectを使ったLine認証 ● まとめ

Slide 11

Slide 11 text

CONFIDENCIAL タップルの認証刷新 タップルは現在、認証機能の刷新に取り組んでいる 目的 ● より堅牢でセキュアなものに作り変えること ● 既存の認証機能の改善

Slide 12

Slide 12 text

CONFIDENCIAL IdentityPlatformを活用したタップルでの認証刷新 タップル認証刷新にあたりIdentityPlatformを導入 ● 既存の認証機能に対して、 ○ ID/Pass 認証を廃止 ○ Line認証、タップルサーバー使ったカスタム認証からOIDC認証へ ● 新たに認証方式を追加 ○ SMS認証を新規に追加 ○ 2要素認証

Slide 13

Slide 13 text

CONFIDENCIAL タップルでの認証刷新 IdentityPlatformの選定理由 ● 旧タップル認証 ○ Id/pass認証, line認証をカスタム認証で対応してた ○ 認証情報を一部タップルのdbに保存して管理 ● Identity platformへの移行 ○ Line認証をOIDCとすることで 認証関連の情報の保存、管理をFirebaseAuthへ移譲 タップル側に認証の処理を持たないことで セキュリティリスクを減らし、より安全な認証基盤とできる

Slide 14

Slide 14 text

CONFIDENCIAL タップルでの認証刷新 2要素認証 ● タップルの2段階認証の要件 ○ 各プロバイダ認証の(Google, Apple, Line認証)をそれぞれ追加の認証要素 としたい ● Firebase IdentityPlatformの多要素認証 ○ 追加認証要素にSMS認証しか対応してない タップルの要件とは合わなかった。 ○ IdentityPlatformのMFAは使わず 既存のFirebaseAuthのアカウントのリンクの機能で代用

Slide 15

Slide 15 text

CONFIDENCIAL 目次 ● IdentityPlatformについて ○ IdentityPlatformとは? ○ 機能紹介 ● IdentityPlatformのサービスへの導入 ○ タップルの認証刷新について ○ IdentityPlatformを活用した認証機能の開発 ● 運用事例 OpenIDConnectを使ったLine認証 ● まとめ

Slide 16

Slide 16 text

CONFIDENCIAL FirebaseAuthでOIDC認証を使ったLine認証 ● IdentityPlatformにアップグレードしたFirebaseAuth上で OIDC認証が利用可能 ● カスタム認証だったタップルのLine認証を、OpenIDConnectを使った認証へ

Slide 17

Slide 17 text

CONFIDENCIAL OpenID Connectとは ● ユーザー認証の規格 (RFCで定義) OAuthを拡張し、IDトークンを用いた認証手続きを標準化したもの ● ID トークン: 署名や暗号化が可能なJWT形式 のデータ ユーザー認証情報のやりとりをより安全に行える OpenID https://www.openid.or.jp/document/

Slide 18

Slide 18 text

CONFIDENCIAL OpenID Connectとは ● 流れ ○ OpenID プロバイダー: ID トークンの発行者 OIDCとは、 → IDトークンを使いクライアント, OIDCプロバイダー間での セキュアな認証が可能 OpenID プロバイダー クライアント ① IDトークンの要求 ② ユーザーの認証 リクエスト ③ IDトークンの発行

Slide 19

Slide 19 text

CONFIDENCIAL FirebaseAuthでOIDC認証を使ったLine認証 ● IdentityPlatformにアップグレードしたFirebaseAuth上で OIDC認証が利用可能 ● 外部の認証サービスLineを、OpenIDConnectでFirebaseAuth上で 扱える

Slide 20

Slide 20 text

CONFIDENCIAL タップルのLine認証 (OIDC認証)

Slide 21

Slide 21 text

CONFIDENCIAL OIDCを使ったタップルのLine認証 タップル クライアント Line 認証チャネル タップル サーバー タップル認証 Firebase Authentication IDトークン ②Credential JWt ③ サインインリクエスト ①ユーザー認証

Slide 22

Slide 22 text

CONFIDENCIAL LineSDKでOIDC認証 LineSDKで認証リクエスト →Lineアプリへ遷移しユー ザー認証 →Line認証サーバーから取得した IDトークンを FirebaseのOIDC認証へ リクエスト

Slide 23

Slide 23 text

CONFIDENCIAL FirebaseAuthでクライアントからログイン Lineから 取得したTDトークン、 OpenIDConnectの認証情報 でSignin FirebaseAuth SDKで Credential情報からFirebase へのSignIn → Firebaseから取得したIDトークンを タップルサーバーの APIにリクエストすることで ログイン処理完了

Slide 24

Slide 24 text

CONFIDENCIAL FirebaseAuthでOIDC認証を使ったLine認証 ● FirebaseAuthとlineチャネルの紐づけ ● 外部認証プロバイダー(Line)とFirebaseAuthを設定 ○ プロバイダ ID ○ クライアント ID ○ 発行元(URL) ○ クライアント シークレット ● FirebaseSDKを使い Credentialを使ったフローで認証ができる

Slide 25

Slide 25 text

CONFIDENCIAL Firebase OIDC認証  自動でLine画面から戻るようになった 旧 カスタム認証 新 OIDC認証

Slide 26

Slide 26 text

CONFIDENCIAL タップルでの認証刷新 ● サーバー ○ lineとの認証のやりとりもタップルサーバ側で実装する必要なくなった。 ● クライアント ○ Oidc化でline認証もシンプルに実装できるようになった FirebaseAuthのSDKで各プロバイダ(Apple, Googleなど)の認証と同じ処理 のフローで実装可能になるため ○ Line以外のoidcの対応も簡単に行える

Slide 27

Slide 27 text

CONFIDENCIAL まとめ ● IdentityPlatformで認証機能の、より高機能でセキュアな開発が可能 ● タップルの認証刷新 ○ OIDC認証を使いタップル側に認証の処理を持たないことで セキュリティリスクを減らし、より安全な認証基盤とできる ● OpenIDConnectを使ったLine認証 ○ FirebaseAuthに認証を任せて、よりセキュアに ○ 実装もよりシンプルに

Slide 28

Slide 28 text

CONFIDENCIAL IdentityPlatformを活用してモ バイルアプリのセキュアな認証 基盤をつくる 前澤健一 ご清聴ありがとうございました!