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
2
190
標準技術と独自システムで作る「つらくない」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.2k
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
5
580
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
5
6.3k
スタディサプリ小中高のオブザーバビリティ / 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
"SaaS is Dead" は本当か!? 生成AI時代の医療 Vertical SaaS のリアル
kakehashi
PRO
3
250
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
440
「どこにある?」の解決。生成AI(RAG)で効率化するガバメントクラウド運用
toru_kubota
2
460
Copilot Agentを普段使いしてわかった、バックエンド開発で使えるTips
ykagano
1
1.4k
OTFSG勉強会 / Introduction to the History of Delta Lake + Iceberg
databricksjapan
0
110
工具人的一生: 開發很多 AI 工具讓我 慵懶過一生
line_developers_tw
PRO
0
900
Agentic Workflowという選択肢を考える
tkikuchi1002
1
120
~宇宙最速~2025年AWS Summit レポート
satodesu
1
430
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
280
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全
opelab
6
1.2k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
27
9.2k
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
150
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Visualization
eitanlees
146
16k
Thoughts on Productivity
jonyablonski
69
4.7k
GraphQLとの向き合い方2022年版
quramy
46
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Six Lessons from altMBA
skipperchong
28
3.8k
Side Projects
sachag
455
42k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
930
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
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