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

権限管理基盤の開発とQAの今 / Authority Management Infrastructure Development and QA Now

freee
June 07, 2024
690

権限管理基盤の開発とQAの今 / Authority Management Infrastructure Development and QA Now

freee

June 07, 2024
Tweet

More Decks by freee

Transcript

  1. 2022年8月中途入社。10年組込 → Webエンジニア → freee でエ ンジニアリングマネージャーに。 ニックネームは sentokunくんづ けのままで呼ぶか迷われがち


    2 辻裕士/sentokun
 権限管理基盤チーム エンジニアリングマネージャー 2021年にfreeeに入社。これまで にモバイルQAE/会計QAE/SWE in Qualityを経験。現在は基盤 QAEとして奮闘中。自称、社内 ジョブホッパー。
 原田晋/harashin
 権限管理基盤チーム QAマネージャー
  2. RBAC の流れをアクセス制御ポリシーで説明 • 権限管理基盤はロールに対するアクセス制御ポリシーを持つ ◦ 例: 管理者 → 承認機能を利⽤できる •

    管理者は、ユーザーを招待する際にロールを割り当てる • ユーザーに割り当てられたロールを元に、アクセス制御ポリシーに 基づいてアクセス制御を⾏う ◦ 例: 管理者 → 承認ボタンを表⽰
  3. LBAC の流れをアクセス制御ポリシーで説明 • 権限管理基盤はライセンスに対するアクセス制御ポリシーを持つ ◦ 例: プレミアムプランに紐づいたライセンス → 仕訳承認機能を利⽤できる •

    ユーザーは、freee のプランを契約する • freee は、ユーザーに契約プランに応じたライセンスを割り当てる • ユーザーに割り当てられたライセンスを元に、アクセス制御ポリ シーに基づいてアクセス制御を⾏う ◦ 例: プレミアムプランに紐づいたライセンス → 仕訳承認画⾯を表⽰
  4. 開発の価値を作る • バグがセキュリティリスクに繋がる • 共通基盤としてのパフォーマンスリスクを引き起こす • 導⼊時の漏れが権限制御機能設計の漏れに繋がる キーワード: shift-left •

    なぜ shift-left しやすいのか? ◦ API ベースだから ◦ 基盤として提供するドメインを明確にしている。だからデモベースの CI でテストができるよ • どういうテストをしているか? ◦ テスト内容の話 ▪ 機能観点 ▪ プロダクト導⼊観点
  5. • ユーザ作成などのテスト準備や 権限管理基盤が提供する機能もAPI経由でテストを実施。 OK
 NG
 ×
 管理者 メンバー …. …

    … アクセス制御ポリシー 画⾯制御 テスト対象:権限管理基盤 エンドポイント保護 設定ファイルの更新   テスト準備‧実施は、ほぼすべてAPI経由で実施 2
  6. 基盤機能開発 • プロダクトの変更に強いので、テストをシフトレフトできる。 • ⾃動テストとして実⾏しているので安⼼安全に開発を進めることができる。 Eng
 Pull Request Merge Release

    基盤QA
 リグレッションテスト 機能テスト 機能テストを含む リグレッションテスト   テスト準備‧実施は、ほぼすべてAPI経由で実施 2
  7. • 権限を通じて提供するユーザー体験は、プロダクトごとで異なる。 • テスト対象を絞ることで、シフトレフトすることができる。 基盤開発フェーズ:まとめ   QA対象は、権限管理基盤のみ!プロダクトは対象外 1   テスト準備‧実施は、ほぼすべてAPI経由で実施

    2   基盤開発フェーズで、QAやるといいことがたくさん 3 • プロダクトの変更に強いので、テストもシフトレフトしやすい。 • ⾃動テストとして実⾏しているので安⼼安全に開発が進められる。 • 導⼊開発フェーズで、細かな権限周りのテストが不要になる。 • 権限周りの脆弱性が早期に発⾒‧対応でき、リリースが早くできる。
  8. • 権限制御を利⽤すること⾃体は簡単 ◦ 設定ファイルを⽤意するだけで利⽤可能 • 権限制御を安全に導⼊するのが難しい ◦ 適切なポリシー設計のためには必要なこと ▪ プロダクトのドメイン知識

    ▪ 権限ドメインの知識が必要 ◦ 安全に導⼊するための品質担保が重要! プロダクトと基盤の連携が必要   プロダクトに合ったアクセス制御ポリシー設計が重要 1
  9. • 設定ファイルを⽤意するだけで、権限制御機能は利⽤できるようになる • 適切なポリシー設計のために、プロダクトと権限管理基盤の連携が必要。 導⼊開発フェーズ:まとめ   プロダクトに合ったアクセス制御ポリシー設計が重要 1   プロダクトチームにもQAを実施してもらう

    2   設定ファイルの記載漏れに気付ける仕組みを⽤意する 3 • プロダクトの設定ファイル⾃体の正しさは、導⼊開発QAで担保する • プロダクト側でアクセス制御ポリシーが適応しているかのテストを実施 • 設定ファイルの記載漏れは、リグレッションテストを実施して洗い出す • 設定ファイルの記載漏れは完全に防げない • 仮に記載が漏れていたとしても、気がつける仕組み‧体制にしている
  10. 参考: freee Developers Hub 関連ページ • freee の権限管理基盤マイクロサービスの今を語ろう! ◦ https://developers.freee.co.jp/entry/authorization-management-micros

    ervice • freee 権限管理基盤を開発するチームの今を語ろう! ◦ https://developers.freee.co.jp/entry/authorization-management-develo pment-team • 権限管理基盤マイクロサービスで⾏っているQA活動について ◦ https://developers.freee.co.jp/entry/freee-qa-advent-calendar-day2 • QAエンジニアからSEQへのキャリアパスについて考える ◦ 発表者の記事。SEQ としての取り組みが権限管理基盤に反映されている ◦ https://developers.freee.co.jp/entry/freee-qa-advent-calendar-day1