標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
by
Yuya Takeyama
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
標準技術と独自システムで作る 「つらくない」SaaS アカウント管理 2025/06/25 情シス・コーポレート IT の SaaS アカウント管理 効率化の取り組み 竹山 雄也 (@yuya-takeyama) 株式会社 LayerX コーポレートエンジニアリング室 アプリケーションチーム
Slide 2
Slide 2 text
自己紹介 © LayerX Inc. 竹山 雄也 (@yuya-takeyama) 福岡出身・浅草在住 株式会社 LayerX コーポレートエンジニアリング室 社内で利用するシステムや、それを構築するためのプラットフォームを作るのが仕事 すべての経済活動をデジタル化するために、すべての業務活動をデジタル化したいコー ポレートエンジニア 2
Slide 3
Slide 3 text
アジェンダ © LayerX Inc. LayerX における SaaS アカウント管理の課題 標準技術を活用した基盤整備 (SSO/SCIM) 独自システムによる自動化 ABAC Generator: 属性ベースのグループ管理自動化 Synthetix: 組織情報データ連携フレームワーク まとめ 3
Slide 4
Slide 4 text
1. LayerX における SaaS アカウント管理 の課題
Slide 5
Slide 5 text
組織の成長に伴う課題 手動でのアカウント・グループ管理が限界に © LayerX Inc. 全社で 400 名を超える規模に成長 毎月のように入社・異動が発生 利用する SaaS の増加 Google Workspace, Slack, Notion, GitHub, AWS, 1Password, SmartHR, バクラク... 5
Slide 6
Slide 6 text
なぜアカウント・グループ管理が重要なのか? 生産性への影響 © LayerX Inc. メーリングリスト、カレンダー、ドライブでの情報共有 適切な権限がないと業務が滞る 毎回マネージャー等があらゆるサービスの権限を申請するのは生産的ではない 申請側も作業側も 複数サービス間で一貫したグループでのメンション 6
Slide 7
Slide 7 text
なぜアカウント・グループ管理が重要なのか? セキュリティ・ガバナンス システム化による統制の実現が急務 © LayerX Inc. 各種サービスでの権限管理 退職者のアカウント削除の徹底 内部統制の観点からも重要 (SOC1 Type2 への対応) 財務報告に係る内部統制の保証が必要 適切な権限管理プロセスの実装 監査証跡(ログ)の確保 7
Slide 8
Slide 8 text
参考: 統制とセキュリティの全体像 https://speakerdeck.com/kanny/effortless-governance-and-security-enabled-by-the-cloud CISO の星 (kanny) による「開発も運用もビジネス部門も! クラウドで実現する「つらくない」統制とセキュリティ」より © LayerX Inc. 8
Slide 9
Slide 9 text
2. 標準技術を活用した基盤整備
Slide 10
Slide 10 text
SSO (Single Sign-On) の利用 Microsoft Entra ID を ID 基盤として採用 © LayerX Inc. 全社員のアカウントを一元管理 強力な認証機能 (MFA、Passwordless、条件付きアクセス) 原則として、ここでアカウントを止めればアクセスが止まることを目指す 10
Slide 11
Slide 11 text
SSO のメリット © LayerX Inc. パスワード管理の負担軽減 セキュリティポリシーの統一適用 アカウントのライフサイクル管理の簡素化 監査対応の効率化 11
Slide 12
Slide 12 text
SCIM による自動プロビジョニング SCIM (System for Cross-domain Identity Management) © LayerX Inc. ユーザー・グループ情報の自動同期プロトコル Microsoft Entra ID → 各種 SaaS への自動連携 各サービス (Application) への割り当てによって、どのグループがどのサービスにアクセスできるかを管理できる 各種サービスにおける、手動でのアカウント作成・削除、グループの管理が原則不要に 12
Slide 13
Slide 13 text
SCIM 対応サービス でも、Microsoft Entra ID 上のグループ管理が大変... © LayerX Inc. Google Workspace, Slack, Notion, GitHub, AWS, 1Password... まだまだ対応していないサービスも多い 13
Slide 14
Slide 14 text
3. 独自システムによる自動化
Slide 15
Slide 15 text
Microsoft Entra ID のグループ管理の課題 手動管理の限界 属性に基づいた自動化が必要 © LayerX Inc. 毎月の入社・異動に伴うグループメンバーの更新 「〜〜〜事業部の Biz マネージャー」のような複雑な条件のグループ 新任マネージャーは追加 退職者は削除 別事業部のマネージャーになる場合は削除 などなど 15
Slide 16
Slide 16 text
RBAC vs ABAC RBAC (Role-Based Access Control) ABAC (Attribute-Based Access Control) © LayerX Inc. 役割ベースのアクセス制御 「管理者」 「一般」 「閲覧」などのロール 属性ベースのアクセス制御 部署、役職、雇用形態、職種などの属性で判断 16
Slide 17
Slide 17 text
課題: 多くの SaaS は RBAC しかサポートしない ABAC Generator というツールを実装 © LayerX Inc. SmartHR の属性情報を基に、自動的に Microsoft Entra ID のグループメンバーを更新 RBAC のシステム上で、擬似的に ABAC を実現 17
Slide 18
Slide 18 text
ABAC Generator によるグループ管理の流れ © LayerX Inc. 毎日定時で実行 任意のタイミングでの手動実行も可能 ABAC Generator が実際にやるのは Terraform でのグループ定義ファイルの出力まで GitHub Actions で Pull Request を自動作成 人間がそれを approve してマージすると、CI/CD パイプラインによって適用される さらに自動プロビジョニングによって必要なサービスに同期される 18
Slide 19
Slide 19 text
ABAC Generator: グループの設定 ※かなり端折ってます © LayerX Inc. 19
Slide 20
Slide 20 text
ABAC Generator: Terraform ファイルの出力 SCIM が使えるサービスであれば、ABAC Generator で大体いい感じになった © LayerX Inc. 20
Slide 21
Slide 21 text
新たな課題: バクラクの組織情報の同期 © LayerX Inc. バクラクは SCIM には未対応 開発チームにはめっちゃお願いしています!!! よくあるサービスとは違い、フラットな「グループ」 「ロール」ではなく、階層を持っ た組織図で管理されている 21
Slide 22
Slide 22 text
組織図の同期 © LayerX Inc. 当初、「組織図」を管理するサービスが 3 つ存在 SmartHR 勤怠打刻サービス バクラク 勤怠打刻サービスをバクラク勤怠に置き換えることに SmartHR から自動同期すれば、1 つだけの管理で良くなる! 22
Slide 23
Slide 23 text
Synthetix: データ連携フレームワーク 想定される将来の課題 © LayerX Inc. サービス間同期の組み合わせは今後も増える アドホックな実装では管理が困難に 拡張性のあるアーキテクチャが必要 23
Slide 24
Slide 24 text
2 つのアプローチ アプローチ 1: 組織情報マスタ (Single Source of Truth) アプローチ 2: 各所からデータを集約 © LayerX Inc. 理想的だが構築が大変 全業務・システムの改修が必要 既存システムはそのまま 段階的な改善が可能 24
Slide 25
Slide 25 text
Synthetix のアーキテクチャ © LayerX Inc. 25
Slide 26
Slide 26 text
Synthetix の特徴 © LayerX Inc. 中央に共通スキーマを持つ TypeScript のスキーマライブラリ zod を使用 データソースから Loader でスキーマに適合するデータを生成 スキーマに従ったデータを Processor で処理 今回はバクラクの組織情報の同期処理 要は TypeScript による組織情報の ETL パイプライン 26
Slide 27
Slide 27 text
共通の設計原則: 純粋関数をベースとした設計 © LayerX Inc. 事前に必要なデータを全部集める SmartHR、Microsoft Entra ID などから必要なデータを集約 データを元にあるべき状態を決める ABAC Generator: SmartHR の属性情報・設定 → Microsoft Entra ID のグループメンバー Synthetix: SmartHR の組織情報 → バクラクの組織図 あるべき状態に収束させる処理を行う 途中でエラーが起きても、収束するまでリトライすれば良い Terraform、Kubernetes 等のアイディアを参考に 27
Slide 28
Slide 28 text
それぞれのツールの成果 ABAC Generator Synthetix © LayerX Inc. 月次のグループ管理に関する手作業がほぼ不要に 元々は月の最終営業日に数時間かかけて行ったりしていた 特に問題なければ自動で作られた Pull Request をチェックしてマージするだけに バクラク上の組織情報についても手作業がほぼ不要に バッチ処理を実行して、変更内容を確認し、適用するのみ ミスもほぼなくなった (あったとしたらバグなので修正することで対応可能) 28
Slide 29
Slide 29 text
4. まとめ
Slide 30
Slide 30 text
まとめ 標準技術の活用 独自システムの構築 © LayerX Inc. SSO: 全ての基本はこれ。原則として SSO が使えるサービスを選定する SCIM: まだまだ使えないサービスも多いが、使えるサービスは使う IdP のグループ自体も属性ベースで自動化すると入退社・異動時の管理が楽になる SCIM が使えないケースはデータ連携の仕組みごと作ってしまっても良いかも 純粋関数をベースとした設計にすることで、安定したデータ連携が可能になる 30
Slide 31
Slide 31 text
ご清聴ありがとうございました @yuya-takeyama © LayerX Inc. 31