$30 off During Our Annual Pro Sale. View Details »

日経ID 基盤刷新プロジェクト Melissa/nikkeiid-authlete

日経ID 基盤刷新プロジェクト Melissa/nikkeiid-authlete

2023/12/12開催、Authlete Customer and Partner Meetup 2023 OIDC アーキテクチャセッション
での発表資料です。日本経済新聞社の淵脇さんが発表します
イベントページはこちらです。
https://authlete.connpass.com/event/302405/

More Decks by 日本経済新聞社 エンジニア採用事務局

Transcript

  1. 日経ID チームおよび登壇者の紹介 4 淵脇 誠 (Makoto Fuchiwaki) 日本本経済新聞社 日経IDチームのソフトウェアエンジニア 趣味:AtCoder

    2000+, Codeforces 2100+ 日経ID チーム 日経ID認証認可基盤の新基盤 Melissa の開発チーム 総勢10名のスクラムチームでフルスタックな開発を推進中 🐝 Melissa (ギリシャ語でミツバチ)
  2. 日本経済新聞社における日経IDの位置付け 6 日本経済新聞社の事業ドメイン これらのドメインを横断的に支える基盤が「日経ID」 News &Insights Brand Communication Decision-making Experience

    気づく、つながる 価値を伝え、社会と交わる 調べる、決める 高める、成長する 読者 顧客企業 意思決定者 一人ひとり 電子版をはじめとした報道機関 としての日経と読者をつなぐ 広告やイベントを通じて企業の価値 を伝える統合型ソリューション 企業の財務情報・非財務情報を網 羅し経営課題を解決 個人のキャリア形成と企業の人的 資本の構築に貢献 エンジニアマターではなく経営戦略の一部 Poin t
  3. 日経ID旧基盤と事業環境のギャップ 7 ドメイン横断の事業サイクル サービス内の事業サイクル 事業計画 会員向け サービス提供 顧客満足の 評価・測定 サービス改善

    事業 ドメイン運営 日経グループの 経営指標測定 ポートフォリオ 最適化 経営戦略 紙から電子へなどビジネス環境の早い変化 日経IDの新ミッション P D C A P D C A 旧基盤の特性 高品質・レガシー・外注 (2010~) 高いアジリティを 必要とする領域 新しいビジネス環境に対応するためID基盤のアジリティ性向上が求められた Point ※アジリティ:変更容易性
  4. ID基盤の刷新を開始 8 ドメイン横断の事業サイクル サービス内の事業サイクル 事業計画 会員向け サービス提供 顧客満足の 評価・測定 サービス改善

    事業 ドメイン運営 日経グループの 経営指標測定 ポートフォリオ 最適化 経営戦略 紙から電子へなどビジネス環境の早い変化 日経IDの新ミッション P D C A P D C A 高いアジリティを 必要とする領域 高いアジリティかつ最新のセキュリティ仕様を実現しサービスへの貢献を目指す Point Melissa🐝プロジェクト 高アジリティ・最新セキュリティ(2018~) 他チームとの 協業で実現
  5. ID基盤刷新に寄せられた要求(≠ 要件) 9 サービスの継続性 移行コストの最小化 サービス継続の容易性 レガシー機能の互換性 プロダクトの価値向上 「プラットフォーム」はステークホルダーが多く要求も多岐に渡る Point

    セキュリティ上問題があ る機能の提供 OIDC違反の仕様の提供 アジリティ向上 セキュリティ強化 開発者体験の向上 相反する要求を要件としてまとめ上げるには?
  6. 基盤刷新におけるシステム要件定義の難しさ 10 安定して稼働するシステムが正義 ⇒ 既存システムの改修で終わりがち Point • アーキテクチャの優秀さを主張する • 開発者体験の向上をアピールする

    • プロダクトの将来価値の向上を主張する NG • レガシーな後方互換性の保持を主張する • 開発コストの低さを主張する • プロダクトの現在価値の向上を主張する OK 技術的挑戦が受け入れられにくい 事業継続性の要求が極めて強く安定志向
  7. 通常の基盤刷新での要件定義にありがちな結論 11 レガシー機能の互換性 セキュリティ上問題がある 機能の提供 OIDC違反の仕様の提供 サービスの継続性 プロダクトの価値向上 移行コストの最小化 サービス継続の容易性

    アジリティ向上 セキュリティ強化 開発者体験の向上 通常の要件定義で盛り込まれる内容 ビジネス判断で 削られがちな要求 致命的な 問題のみ システム要件をこちらにスライドしたい
  8. 基盤刷新の方針策定 Authlete 製品A 製品B サービスC 提供形態 SaaS / On Premise

    OSS SIとセット SaaS コスト 低い (キャッシュアウトによる評価) 低い 高い 低い カスタマイズ性 適度 高い 高い 低い 提供機能 認可 (認証関係の仕様変更に係る調 整コストが低い) 認証・認可 認証・認可 認証・認可 開発者体験 高い (API仕様、CI/CD) 普通 低い 低い SWEチームの観点 で高評価 レガシーな 要件に対する 対応容易性
  9. Melissaで社内合意した要件 14 レガシー機能の互換性 セキュリティ上問題があ る機能の提供 OIDC違反の仕様の提供 サービスの継続性 プロダクトの価値向上 移行コストの最小化 サービス継続の容易性

    アジリティ向上 セキュリティ強化 開発者体験の向上 Melissa で合意した要件 致命的なものを含め セキュリティ的に問題 ある仕様の多くを廃止 Authlete の選定を始めとする各種交渉材料により要件の合意を取り付け Point
  10. Authlete は SaaS or On Premises ? 16 On Premises

    (Enterpriseプラン) 個別契約 サービス数・クライアント数:上限なし SaaS (Businessプラン) MAUベースの課金 サービス数・クライアント数:制限あり メンテナンスタイミングを自社で調整可能 サーバー更新等のタイミングの制御が不可能 自社でノウハウのあるAWSスタックでの運用 外部サービスとして運用 1000万IDという規模やエンジニアリング力を考慮しオンプレミスを選択 Point
  11. 内製 or 外注? 17 日経IDチームは技術力が極めて高く内製のメリットを生かせると判断 Point 内製 外注 アジリティ 開発チームの技術力を

    確保できれば高い 発注コスト等で 低くなりがち 開発コスト 変動費<固定費 変動費>固定費 適した開発スタイル スクラム開発などの インクリメンタル ウォーターフォール 品質リスクへの対応 ベストエフォート 契約対応
  12. アーキテクチャ概要 19 インフラ Fastly, ECS, RDS, Redis, S3 CD/CI Terraform,

    GitHub Actions フロントエンド Vite, React, Nikkei Library バックエンド Spring Boot, Kotlin, Arrow-kt Authlete
  13. Authleteを利用したシステムの 複雑な「認証」要件に対するアプローチ 20 WebViewでセッション共有したい ログインをせずに認可したい ユーザー指定でログインさせたい ✔ OAuth 2.0 Token

    Exchange ✔ prompt=none ✔ [email protected] OpenID Connectの仕様のみを実装しているAuthleteであれば 「認証」の様々な要件に対しても標準仕様を軸に実装を柔軟に可能 Point
  14. インクリメンタル開発における旧基盤との共存 21 Authlete 旧日経ID基盤 新日経ID基盤 (Melissa) Relying Party 1 Melissaでログインしたユーザーのアクセストー

    クンは旧基盤では無効 ただし、ユーザーエージェントに旧日経ID基盤の オートログインCookieを出しておくことでユー ザーからは意識させない Introspection 旧日経ID基盤用 オートログイン Cookie 移行中は新基盤と旧基盤のどちらでログインしても両立する構成 Point Introspection 旧日経ID基盤でログインした ユーザーのアクセストークンは 旧日経ID基盤でイントロスペ クション ユーザー エージェント Relying Party 2
  15. Authleteで2年ほど開発して感じている効果 22 ✔ Client as a Code (クライアント設定のコードベース管理)が進んだ ✔ レガシーの脱却は着実に進んだ

    Terraformと合わせてクライアントを管理している Point セキュアなOIDC標準をはじめとした認証認可標準への準拠が進んでいる Point ✔ 開発チームの標準仕様への解像度が上がった 業界標準・標準仕様を理解するモチベーションが非常に高くなった Point
  16. 23 今後の 日経ID について 04 1. 日経ID チームおよび登壇者の紹介 2. 日本経済新聞社におけるID戦略

    3. 日経ID 基盤刷新プロジェクト ~Melissa~ 4. 今後の 日経ID について