Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless ...
Search
Yuya Takeyama
June 25, 2025
Technology
3
1.4k
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
2025/06/25 情シス・コーポレートITのSaaSアカウント管理 効率化の取り組み
https://findy.connpass.com/event/358280/
#情シス_findy
Yuya Takeyama
June 25, 2025
Tweet
Share
More Decks by Yuya Takeyama
See All by Yuya Takeyama
プロダクト開発、インフラ、コーポレート、そしてAIとの共通言語としての Terraform / Terraform as a Common Language for Product Development, Infrastructure, Corporate Engineering, and AI
yuyatakeyama
7
2.2k
Terraformで実現するHR Driven Provisioningとアクセス制御の自動化 / HR Driven Provisioning and automation of access control using Terraform
yuyatakeyama
1
1.3k
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
5
590
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
5
6.4k
スタディサプリ小中高のオブザーバビリティ / Observability in StudySapuri
yuyatakeyama
1
2.8k
スタートアップは Rails を使うべきか / Should Startups Ride on Rails?
yuyatakeyama
7
2.7k
How Quipper Works with CircleCI
yuyatakeyama
4
3.1k
Quipper のマイクロサービス化への道のり / Quipper's Road to Microservices
yuyatakeyama
5
2.2k
Quipper における SRE チームの紹介 ~僕が SRE になった理由~ / Why I Became an SRE at Quipper
yuyatakeyama
3
3k
Other Decks in Technology
See All in Technology
毎晩の 負荷試験自動実行による効果
recruitengineers
PRO
5
180
Amazon SNSサブスクリプションの誤解除を防ぐ
y_sakata
3
190
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
1
340
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
1.3k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
10
5.1k
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
470
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
3
1.5k
CDK Vibe Coding Fes
tomoki10
1
630
AIでテストプロセス自動化に挑戦する
sakatakazunori
1
530
[SRE NEXT 2025] すみずみまで暖かく照らすあなたの太陽でありたい
carnappopper
2
470
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
110
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
70
11k
Writing Fast Ruby
sferik
628
62k
Thoughts on Productivity
jonyablonski
69
4.7k
Statistics for Hackers
jakevdp
799
220k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Gamification - CAS2011
davidbonilla
81
5.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
4 Signs Your Business is Dying
shpigford
184
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Transcript
標準技術と独自システムで作る 「つらくない」SaaS アカウント管理 2025/06/25 情シス・コーポレート IT の SaaS アカウント管理 効率化の取り組み 竹山
雄也 (@yuya-takeyama) 株式会社 LayerX コーポレートエンジニアリング室 アプリケーションチーム
自己紹介 © LayerX Inc. 竹山 雄也 (@yuya-takeyama) 福岡出身・浅草在住 株式会社 LayerX
コーポレートエンジニアリング室 社内で利用するシステムや、それを構築するためのプラットフォームを作るのが仕事 すべての経済活動をデジタル化するために、すべての業務活動をデジタル化したいコー ポレートエンジニア 2
アジェンダ © LayerX Inc. LayerX における SaaS アカウント管理の課題 標準技術を活用した基盤整備 (SSO/SCIM)
独自システムによる自動化 ABAC Generator: 属性ベースのグループ管理自動化 Synthetix: 組織情報データ連携フレームワーク まとめ 3
1. LayerX における SaaS アカウント管理 の課題
組織の成長に伴う課題 手動でのアカウント・グループ管理が限界に © LayerX Inc. 全社で 400 名を超える規模に成長 毎月のように入社・異動が発生 利用する
SaaS の増加 Google Workspace, Slack, Notion, GitHub, AWS, 1Password, SmartHR, バクラク... 5
なぜアカウント・グループ管理が重要なのか? 生産性への影響 © LayerX Inc. メーリングリスト、カレンダー、ドライブでの情報共有 適切な権限がないと業務が滞る 毎回マネージャー等があらゆるサービスの権限を申請するのは生産的ではない 申請側も作業側も 複数サービス間で一貫したグループでのメンション
6
なぜアカウント・グループ管理が重要なのか? セキュリティ・ガバナンス システム化による統制の実現が急務 © LayerX Inc. 各種サービスでの権限管理 退職者のアカウント削除の徹底 内部統制の観点からも重要 (SOC1
Type2 への対応) 財務報告に係る内部統制の保証が必要 適切な権限管理プロセスの実装 監査証跡(ログ)の確保 7
参考: 統制とセキュリティの全体像 https://speakerdeck.com/kanny/effortless-governance-and-security-enabled-by-the-cloud CISO の星 (kanny) による「開発も運用もビジネス部門も! クラウドで実現する「つらくない」統制とセキュリティ」より © LayerX
Inc. 8
2. 標準技術を活用した基盤整備
SSO (Single Sign-On) の利用 Microsoft Entra ID を ID 基盤として採用
© LayerX Inc. 全社員のアカウントを一元管理 強力な認証機能 (MFA、Passwordless、条件付きアクセス) 原則として、ここでアカウントを止めればアクセスが止まることを目指す 10
SSO のメリット © LayerX Inc. パスワード管理の負担軽減 セキュリティポリシーの統一適用 アカウントのライフサイクル管理の簡素化 監査対応の効率化 11
SCIM による自動プロビジョニング SCIM (System for Cross-domain Identity Management) © LayerX
Inc. ユーザー・グループ情報の自動同期プロトコル Microsoft Entra ID → 各種 SaaS への自動連携 各サービス (Application) への割り当てによって、どのグループがどのサービスにアクセスできるかを管理できる 各種サービスにおける、手動でのアカウント作成・削除、グループの管理が原則不要に 12
SCIM 対応サービス でも、Microsoft Entra ID 上のグループ管理が大変... © LayerX Inc. Google
Workspace, Slack, Notion, GitHub, AWS, 1Password... まだまだ対応していないサービスも多い 13
3. 独自システムによる自動化
Microsoft Entra ID のグループ管理の課題 手動管理の限界 属性に基づいた自動化が必要 © LayerX Inc. 毎月の入社・異動に伴うグループメンバーの更新
「〜〜〜事業部の Biz マネージャー」のような複雑な条件のグループ 新任マネージャーは追加 退職者は削除 別事業部のマネージャーになる場合は削除 などなど 15
RBAC vs ABAC RBAC (Role-Based Access Control) ABAC (Attribute-Based Access
Control) © LayerX Inc. 役割ベースのアクセス制御 「管理者」 「一般」 「閲覧」などのロール 属性ベースのアクセス制御 部署、役職、雇用形態、職種などの属性で判断 16
課題: 多くの SaaS は RBAC しかサポートしない ABAC Generator というツールを実装 ©
LayerX Inc. SmartHR の属性情報を基に、自動的に Microsoft Entra ID のグループメンバーを更新 RBAC のシステム上で、擬似的に ABAC を実現 17
ABAC Generator によるグループ管理の流れ © LayerX Inc. 毎日定時で実行 任意のタイミングでの手動実行も可能 ABAC Generator
が実際にやるのは Terraform でのグループ定義ファイルの出力まで GitHub Actions で Pull Request を自動作成 人間がそれを approve してマージすると、CI/CD パイプラインによって適用される さらに自動プロビジョニングによって必要なサービスに同期される 18
ABAC Generator: グループの設定 ※かなり端折ってます © LayerX Inc. 19
ABAC Generator: Terraform ファイルの出力 SCIM が使えるサービスであれば、ABAC Generator で大体いい感じになった © LayerX
Inc. 20
新たな課題: バクラクの組織情報の同期 © LayerX Inc. バクラクは SCIM には未対応 開発チームにはめっちゃお願いしています!!! よくあるサービスとは違い、フラットな「グループ」
「ロール」ではなく、階層を持っ た組織図で管理されている 21
組織図の同期 © LayerX Inc. 当初、「組織図」を管理するサービスが 3 つ存在 SmartHR 勤怠打刻サービス バクラク
勤怠打刻サービスをバクラク勤怠に置き換えることに SmartHR から自動同期すれば、1 つだけの管理で良くなる! 22
Synthetix: データ連携フレームワーク 想定される将来の課題 © LayerX Inc. サービス間同期の組み合わせは今後も増える アドホックな実装では管理が困難に 拡張性のあるアーキテクチャが必要 23
2 つのアプローチ アプローチ 1: 組織情報マスタ (Single Source of Truth) アプローチ
2: 各所からデータを集約 © LayerX Inc. 理想的だが構築が大変 全業務・システムの改修が必要 既存システムはそのまま 段階的な改善が可能 24
Synthetix のアーキテクチャ © LayerX Inc. 25
Synthetix の特徴 © LayerX Inc. 中央に共通スキーマを持つ TypeScript のスキーマライブラリ zod を使用
データソースから Loader でスキーマに適合するデータを生成 スキーマに従ったデータを Processor で処理 今回はバクラクの組織情報の同期処理 要は TypeScript による組織情報の ETL パイプライン 26
共通の設計原則: 純粋関数をベースとした設計 © LayerX Inc. 事前に必要なデータを全部集める SmartHR、Microsoft Entra ID などから必要なデータを集約
データを元にあるべき状態を決める ABAC Generator: SmartHR の属性情報・設定 → Microsoft Entra ID のグループメンバー Synthetix: SmartHR の組織情報 → バクラクの組織図 あるべき状態に収束させる処理を行う 途中でエラーが起きても、収束するまでリトライすれば良い Terraform、Kubernetes 等のアイディアを参考に 27
それぞれのツールの成果 ABAC Generator Synthetix © LayerX Inc. 月次のグループ管理に関する手作業がほぼ不要に 元々は月の最終営業日に数時間かかけて行ったりしていた 特に問題なければ自動で作られた
Pull Request をチェックしてマージするだけに バクラク上の組織情報についても手作業がほぼ不要に バッチ処理を実行して、変更内容を確認し、適用するのみ ミスもほぼなくなった (あったとしたらバグなので修正することで対応可能) 28
4. まとめ
まとめ 標準技術の活用 独自システムの構築 © LayerX Inc. SSO: 全ての基本はこれ。原則として SSO が使えるサービスを選定する
SCIM: まだまだ使えないサービスも多いが、使えるサービスは使う IdP のグループ自体も属性ベースで自動化すると入退社・異動時の管理が楽になる SCIM が使えないケースはデータ連携の仕組みごと作ってしまっても良いかも 純粋関数をベースとした設計にすることで、安定したデータ連携が可能になる 30
ご清聴ありがとうございました @yuya-takeyama © LayerX Inc. 31