ここでは、Firebase+JWTによるSSO(Single Sign-On)導入サービスの概要について説明します。

企業の担当者の方へ
一度、詳細をご説明いたします。
お問い合わせは以下のメールアドレスにお願いいたします。
culnou_dx@culnou.com

Firebase Authenticationは、登録ユーザーが認証されると IDトークン(JWT:JSON Web Token) を発行します。
myCompanyユーザーのJWTを、myCompanyを通して実行されるアプリケーションに適用することで、そのアプリケーションはFirebaseによって認証されたmyCompanyユーザー(下図の①)によって実行されることが保証されます。
複数のアプリでmyCompanyユーザーのJWT(認証情報)を共有することでSSOを実現することができます。
Firebase+JWTによるSSO導入のメリットは次の3つです。

  1. セキュリティが確保される
    • Firebase Authentication が IDトークンの署名を行うため、改ざんされるリスクが低い。
    • JWT の発行元(iss)、対象(aud)、有効期限(exp)を検証することで、安全に認証を行える。
    • CORS 設定を適切に行えば、不正なサイトからのリクエストを防げる。
  2. 複数のアプリでシームレスに認証可能
    • Firebase の JWT はどのアプリでも同じ形式のトークンを取得できるため、共通の認証基盤として利用可能。
    • 例えば、Web アプリとモバイルアプリで共通の認証を行い、ログインを同期することもできる。
  3. トークンの有効期限と自動更新が可能
    • Firebase の ID トークンは約1時間ごとに有効期限が切れるが、onIdTokenChanged() を利用することで自動的に更新できる。
    • これにより、ユーザーが長時間アプリを使用しても、トークンを手動で更新する必要がない。

具体的なFirebase+JWTによるSSOの仕組みは次のようになります。

図:Firebase+JWTによるSSOの仕組み

  1. myCompanyのメンバーは、アクションが定義された部門に登録されます(上図③)。
  2. 部門のアクションには、あらかじめユーザ・アプリケーションのURLが登録されたアプリケーションの機能が割り当てられています(下図②)。
  3. myCompanyのメンバーは、部門から生成されたワークリスト(上図④)のワークを実行することができます(上図⑤)。
  4. メンバーがワークを実行するとき、メンバーは、アクションに割り当てられたユーザ・アプリケーションのURLを開き実行することができます。

以下、上図⑥の内容です。

  • 上記1から4によって、myCompanyのメンバーは、自分が登録された部門のアクションに割り当てられたユーザ・アプリケーション(認可されたアプリケーション)のみ実行することができます。
  • 3でワークリストが生成されるとき、Firebaseによって認証されたmyCompanyのJWTが取得されます。
  • 4でメンバーがユーザ・アプリケーションを実行するとき、myComapnyのJWTがユーザ・アプリケーションのURLに付与されます。
  • ユーザ・アプリケーションがFirebaseでmyComapnyのJWTを検証することで、そのアプリケーションはFirebaseによって認証されたmyCompanyユーザーによって実行されることが保証されます。