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

Okta CIC Actionを活用した独自の認証関連機能の移行方法、およびログやメトリクスの...

kubell
April 01, 2025
13

Okta CIC Actionを活用した独自の認証関連機能の移行方法、およびログやメトリクスの監視手法について実例紹介

2024年7月11日にOkta Japanが主催するCIC (Customer Identity Cloud) Meetupで「Okta CIC Actionを活用した独自の認証関連機能の移行方法、およびログやメトリクスの監視手法について実例紹介」と題して発表した登壇資料です。
登壇者:株式会社kubell プロダクト開発ユニット 認証グループ 山下 賢治
ブログ:https://creators-note.chatwork.com/entry/2024/07/31/100000

kubell

April 01, 2025
Tweet

More Decks by kubell

Transcript

  1. 目次 CONTENTS 01 | 会社概要 02 | Okta CICの導入背景について 03

    | Okta CICへどう移行していったのか 04 | 日々の運用監視について
  2. 自己紹介 3 • 山下 賢治 ◦ 2022年4月に入社 3年目 ◦ 株式会社kubell

    コミュニケーションプラットフォーム部 ▪ プロダクト開発ユニット プロダクト開発部 ▪ 認証チーム ◦ GitHub: yamakenji24
  3. Okta CICを導入するに至った背景 6 課題 - 「Chatwork」は、導入当時400万以上(現在680万以上 2024.03末時点)の登録アカウントを抱える”ビジネスインフラ” ➢ 登録アカウントのセキュリティを業界最高級水準で維持し続ける必要 がある

    - 一方、「Chatwork」の中核機能は「ビジネスチャット」 ➢ セキュリティはコアドメインではない 解決策として、 - 日々推移するセキュリティ課題への対応、追従については、専門のIDaaSにお任せする判断 ➢ 「ハイトラフィックなビジネスチャット」という中核機能に開発リソースを集中できる状態を目指した 加えて、 - 「BPaaS」という新規事業展開 ➢ 「Chatwork」登録ユーザーへ、ビジネスチャット以外のプロダクトの提供を実現できる必要 ➢ 認証系を、業界標準(OIDC)に準拠させながら、「Chatwork」本体から分離させ、他プロダクトの認証機能としても運用で きる状態を目指した
  4. Okta CIC導入のための移行戦略 7 Okta CICを導入していくにあたり、全体の基本構成を設計 - Okta CICへ認証サーバーを任せること - 「Chatwork」側(kubell共通認証・ID基盤側)にアカウントマスターを残すこと

    - 既存のアカウントを事前にOkta CICへ移行しない - 初回ログイン時にOkta CICのAutomatic Migrationを活用する 課題 - 「Chatwork」では、現在ログインしてきたユーザーをIDトークンから取得する必要がある - 「Chatwork」はOIDCクライアントとして振る舞うため - 「Chatwork」では、「account_id」で一意にアカウントを識別している 解決策として - Okta CIC Actionsを活用してアカウントを連携する
  5. Okta CIC導入にあたって、認証要素を分類 13 Okta CICの機能を利用している認証要素 - Okta CICが提供している機能を利用する - 「Chatwork」をOIDCクライアントとして扱いOkta

    CICをOIDC認証サーバーとして扱う Okta CIC Actionsを利用して移行した認証要素 - 認証の共通基盤として「Chatwork」以外のアプリへも認証機能を提供したいもの 「Chatwork」側に残した認証要素 - 「Chatwork」固有の機能 - 認証の共通基盤として持っておきたい機能というわけではない
  6. Okta CIC移行にあたって、認証要素を分類 18 Okta CICの機能を利用している認証要素 - Okta CICが提供している機能を利用する - 「Chatwork」をOIDCクライアントとして扱いOkta

    CICをOIDC認証サーバーとして扱う Okta CIC Actionsを利用して移行した認証要素 - 認証の共通基盤として「Chatwork」以外のアプリへも認証機能を提供したいもの 「Chatwork」側に残した認証要素 - 「Chatwork」固有の機能 - 認証の共通基盤として持っておきたい機能というわけではない
  7. 既存のChatworkの認証要素を移行するためのOkta CIC Actionsの活用 追加認証を行うOkta CIC Actions - 「kubell共通認証・ID基盤」における追加の認証を行う - 共通の認証基盤として追加認証を実施できるので、3rd-Partyクライアントを想定した場

    合もこの方式を採用できる。 - 追加認証の一つとして、2段階認証を行っている - 2段階認証はOkta CICの機能を使わず「kubell共通認証・ID基盤」独自に行っている - 2段階認証設定の有無を確認 - Redirect With Actionsを使用して「kubell共通認証・ID基盤」側で処理 - 詳細は後述
  8. 2段階認証に関しては、画面含めてOkta CICに移行せず、「kubell共通認証・ID基盤」側で実装をしている - 元々「Chatwork」として2段階認証を提供していた - その時の仕様とOkta CICとの仕様の差分についてユーザーコミュニケーションが発生する - 「Chatwork」では、バックアップコードは同時に10個発行される -

    Okta CICは一つずつ発行される - 「Chatwork」のバックアップコードをOkta CICへ移行することができない - バックアップコードをOkta CIC側で再生成する必要がある - 「Chatwork」ではメインのTOTP/SMSとは別にセカンダリーのSMSを設定が可能 - 2段階認証設定時のUXを変更する必要がある ⇨ これらの仕様変更をOkta CICリリース時に含めるのは、ユーザーの負担が大きい ⇨ Okta CIC導入時は2段階認証をOkta CIC側に移行せず、既存の仕様を通すことでユーザー負担を減らす Okta CIC導入時の2段階認証の移行について
  9. Okta CICのSecurity Center確認していること - Bot Detectionが異常に跳ねていないか - Suspicious IP Throttlingが発生していないか

    - Brute-Force Protectionが跳ねていないか - Breached Password Detectionが異常に跳ねていないか
  10. ログで確認していること ユーザーのログイン種類別のログも確認している - Okta CIC Actionsでログイン種類について取得している - Event Objectのconnection.strategyで認証にどのconnectionを使用したかの情報が入ってる -

    IDトークンにその情報を含めて、Chatwork側でログを出力している これにより以下のようなことが可能となる - 異常なログインパターンやトラブルシューティングに早期検知 - ユーザー行動の理解の促進 - ログイン種別のパフォーマンスの最適化
  11. まとめ 導入背景 - 日々セキュリティ対応への追従と新規事業展開のためにOkta CICを導入 導入戦略 - Okta CICへ認証サーバーを任せること -

    Chatwork側でマスターデータを持たせること - Okta CIC ActionsとRedirect With Actionsを活用し、アカウント連携と認証機能を移行 日々の運用監視 - Bot DetectionやBrute-Forceなど、Okta CICのSecurity Centerを活用 - それ以外にログインメトリクスなどを独自に取得し、Dashboardで監視している ⇨ 安定した認証基盤を提供するために日々改善して行ってます!