Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Oktaの管理者権限を適切に移譲してみた
shimosyan
January 23, 2023
Technology
2
260
Oktaの管理者権限を適切に移譲してみた
shimosyan
January 23, 2023
Tweet
Share
More Decks by shimosyan
See All by shimosyan
macOSの更新を促す通知機能 を実装してみた
shimosyan
1
89
Okta のグループ運用を軽くするためにやったこと
shimosyan
2
640
Jamf Pro で Okta からユーザー情報や所属グループを LDAP を使って取得してみた
shimosyan
2
380
Serverless技術勉強会#2 Chatwork登壇資料
shimosyan
2
890
Other Decks in Technology
See All in Technology
立ち止まっても、寄り道しても / even if I stop, even if I take a detour
katoaz
0
170
地方自治体業務あるある ーアナログ最適化編-
y150saya
1
130
Raspberry Pi Camera 3 介紹
piepie_tw
PRO
0
130
IoT から見る AWS re:invent 2022 ― AWSのIoTの歴史を添えて/Point of view the AWS re:invent 2022 with IoT - with a history of IoT in AWS
ma2shita
0
240
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
500
S3とCloudWatch Logsの見直しから始めるコスト削減 / Cost saving S3 and CloudWatch Logs
shonansurvivors
0
210
USB PD で迎える AC アダプター大統一時代
puhitaku
2
1.9k
03_ユーザビリティテスト
kouzoukaikaku
0
180
SignalR を使ったアプリケーション開発をより快適に!
nenonaninu
0
590
Airdrop for Open Source Projects
epicsdao
0
580
創業1年目のスタートアップでAWSコストを抑えるために取り組んでいること / How to Keep AWS Costs Down at a Startup
yuj1osm
3
2k
DNS権威サーバのクラウドサービス向けに行われた攻撃および対策 / DNS Pseudo-Random Subdomain Attack and mitigations
kazeburo
5
1.2k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
12
1.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
22
42k
Side Projects
sachag
451
37k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
38
3.6k
Designing the Hi-DPI Web
ddemaree
273
32k
Learning to Love Humans: Emotional Interface Design
aarron
263
38k
In The Pink: A Labor of Love
frogandcode
132
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Designing for humans not robots
tammielis
245
24k
Mobile First: as difficult as doing things right
swwweet
213
7.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
240
11k
Art, The Web, and Tiny UX
lynnandtonic
284
18k
Transcript
© Chatwork Oktaの管理者権限を 適切に移譲してみた 2023年 1月21日 コーポレート本部 CSE部 しもしゃん Business Technology
Conference Japan 2023 Chatwork株式会社
自己紹介 会社紹介 IdP とクラウドサービスの連携における課題とは IdP の権限設定を使った解決アプローチ Chatwork における活用事例 まとめ 1
2 3 4 5 6 AGENDA アジェンダ
自己紹介 1
自己紹介 4 しもしゃん Corporate Engineer at Chatwork Co., Ltd. Twitter
/ GitHub @shimosyan スキル • Okta • Jamf Pro • Serverless Architecture • Network Engineering 趣味 • DTM • 自作PC ポートフォリオ https://shimosyan.github.io/
会社紹介 2
会社概要 6 会社名 Chatwork株式会社 代表取締役CEO 山本 正喜 従業員数 304名(2022年9月末日時点) 所在地
東京、大阪、ベトナム、台湾 設立 2004年11月11日
コーポレートミッション 7 働くを もっと楽しく、 創造的に 人生の大半を過ごすことになる 「働く」という時間において、 ただ生活の糧を得るためだけではなく、 1人でも多くの人がより楽しく、 自由な創造性を存分に発揮できる社会を実現する
Chatworkとは 8 ※Nielsen NetView 及びNielsen Mobile NetView Customized Report 2022年5月度調べ月次利用者(
MAU:Monthly Active User)調査。※調査対象は Chatwork、Microsoft Teams、Slack、LINE WORKS、Skypeを含む47サービスを Chatwork株式会社にて選定。 効率的に情報共有できる グループチャット 仕事の見える化ができる タスク管理 見落としがなくなる ファイル管理 いつでも会議ができる ビデオ/音声通話
Chatworkは利用者数No.1*のビジネスチャット 9 * Nielsen NetView 及びNielsen Mobile NetView Customized Report
2022年5月度調べ月次利用者(MAU:Monthly Active User)調査。調査対象はChatwork、Microsoft Teams、Slack、LINE WORKS、Skypeを含む47サービスを Chatwork株式会社にて選定。 3月 リリース 10万社 突破! 20万社 突破! 30万社 突破! 導入社数 37万6000社以上! (2022年9月末日時点)
IdP とクラウドサービスの連携における課題とは 3
IdP とクラウドサービスの連携における課題とは 11 SaaS IDaaS IdP 管理者 権限 IdP とクラウドサービスの管理者が同じパターン
管理者が同じときの良いこと • シングルサインオン(SSO) の設定 をするとき、IDaaS を始めとする Identity Provider(IdP)と Service Provider(SaaS 等のクラウドサービ ス)の両方の管理画面にアクセスでき るため設定が楽。 • 単一で完結するため、情シスの都合の いいタイミングで導入できる。 • 導入後も新規利用者のアカウント作成 ・IdP の割り当て作業がやりやすい。 情シス担当者 SAML・OIDC
IdP とクラウドサービスの連携における課題とは 12 SaaS IDaaS IdP 管理者 権限 一方、IdP とクラウドサービスの管理者が異なるパターン
管理者が異なると… • お互いの管轄するサービスの管理画面 に入れないため、それぞれの作業内容 がわからない。 • 設定値の交換のためにコミュニケー ションが発生する。 • 導入の際にお互いの作業タイミングを 合わせる必要がある。 • 導入後も新規利用者のアカウント作成 と IdP の割り当て作業が別作業とな るため非効率。 管理者 権限 事業部門担当者 情シス担当者 SAML・OIDC 連携が必要
IdP とクラウドサービスの連携における課題とは 13 SaaS IDaaS IdP 管理者 権限 一方、IdP とクラウドサービスの管理者が異なるパターン
管理者が異なると… • お互いの管轄するサービスの管理画面 に入れないため、それぞれの作業内容 がわからない。 • 設定値の交換のためにコミュニケー ションが発生する。 • 導入の際にタイミングを合わせる必要 がある。 • 導入後も新規利用者のアカウント作成 と IdP の割り当て作業が別作業とな るため非効率。 管理者 権限 事業部門担当者 情シス担当者 SAML・OIDC これのいずれかで齟齬があると、利用者が ログインできなくなりサービスが利用できな くなる恐れ 連携不十分
IdP とクラウドサービスの連携における課題とは 14 もちろん、相手が 1 部署とは限りません。社内のあらゆる部署と同様の連携が必要になることが往々に してあります。しかしながら、システムごとにアカウントの設定タイミングなど運用手順が異なるのを 情シスから統制を働きかけて統一するのはとても難しいです。(出来ているところは尊敬します) システムA管理者 情シス担当者
システムB管理者 システムC管理者 システムD管理者 連携 連携 連携 連携
IdP とクラウドサービスの連携における課題とは 15 SaaS IDaaS IdP 管理者 権限 今日ご紹介する解決アプローチ 今回ご紹介するのは
Okta の管理者権限 を移譲することによって、事業部門担当 者が最小限の権限で運用または実装が実 施できるようにする方法です。 Chatwork で実施した実例を交えながら ご紹介しようと思います。 事業部門担当者 情シス担当者 SAML・OIDC 移譲 管理者 権限
IdP の権限設定を使った解決アプローチ 4
IdP の権限設定を使った解決アプローチ 17 Okta には Okta Identity Engine と Okta
Classic Engine と2つのバージョンがあり、利用者によってど ちらかのバージョンが利用できます。 これから説明することは、両方のバージョンで設定できることを確認しています。 お知らせ
IdP の権限設定を使った解決アプローチ 18 事業部門担当者 情シス担当者 管理者 権限 「管理者権限を移譲する」をするにしても、どの権限を渡すのかを決める必要があります。 そのためには、まずはお互いの役割を定義しなければなりません。お互い安心して役割を任せられるよ うに、コミュニケーションを取って信頼関係を築く必要があります。
情シスの役割とは? 事業部の役割とは?
IdP の権限設定を使った解決アプローチ 19 事業部門担当者 情シス担当者 管理者 権限 Chatwork ではこのように役割を定義しています。 このパターンでは事業部の担当者が
SSO の設定も自力で実施でき運用も可能という最も多くの権限を移 譲します。 事業部の役割 ・ SSOの設定 ・ ユーザーへの利用権限付与 情シスの役割 ・ ユーザーアカウントの管理 ・ 管理者権限を移譲する人の任命
IdP の権限設定を使った解決アプローチ 20 一方、事業部の担当者が SSO の知識がなく自力での設定が難しい場合は情シスが設定を実施することが あります。 情シスの役割 ・ ユーザーアカウントの管理
・ 管理者権限を移譲する人の任命 ・ SSOの設定 事業部の役割 ・ SSOの設定 ・ ユーザーへの利用権限付与 事業部門担当者 情シス担当者 管理者 権限
IdP の権限設定を使った解決アプローチ 21 SSOの設定 ユーザーへの利用権限付与 Application Administrator Group Membership Administrator
https://help.okta.com/oie/ja-jp/Content/Topics/Security/administrators-admin-comparison.htm Okta の管理者権限はある操作できる権限がある程度定まっているプリセットが用意されてお り、そのうち上記の Application Administrator と Group Membership Administrator の2つ を使うことで、権限を移譲することができます。 これらはユーザーごと、グループごとに付与することができます。
IdP の権限設定を使った解決アプローチ 22 SSOの設定 ユーザーへの利用権限付与 Application Administrator Group Membership Administrator
詳細は後ほど説明しますが、アプリケーションの利用ユーザーへの利用権限付与には Okta で ユーザーをまとめることができるグループを使用します。 グループを使うことで設定実現の自由度が上がります。
IdP の権限設定を使った解決アプローチ 23 Okta の優秀な点は、これらの権限に対して操作できるリソースを絞り込むことができるという ことが挙げられます。 ここで細かくリソースを指定することによって、意図しない過剰な権限を渡すことを防ぐこと が可能です。 Application Administrator
Group Membership Administrator 例:Google Workspace だけ操作できる Okta Group A Okta Group B 例:Okta Group A だけ操作できる https://help.okta.com/oie/ja-jp/Content/Topics/Security/custom-admin-role/edit-resources-standard-role.htm
IdP の権限設定を使った解決アプローチ 24 SSO 設定の実施 利用権限割り当て 管理者グループ 利用者グループ SSO 設定可能な
管理者グループ 事業部門担当者 情シス担当者 メンバー管理 SSO 設定 利用者 所属 所属 担当者を 割り当て 利用権限の付与 SAML 設定 SSOして利用 具体的なイメージ図 Group Menbership Administrator を付与 • 情シス担当者は、管理される利用者グ ループと SSO 設定は設定が空っぽな 箱のみ作成します。 • 2つの管理者グループを作成し、それ ぞれに先ほど紹介した Okta の管理者 権限を付与しています。 • 事業部門担当者を上記管理者グループ に割り当てます。そうすることで、利 用者グループと SSO 設定の管理が可 能になります。 Application Administrator を付与
IdP の権限設定を使った解決アプローチ 25 SSO 設定の実施 利用権限割り当て 管理者グループ 利用者グループ SSO 設定可能な
管理者グループ 事業部門担当者 情シス担当者 メンバー管理 SSO 設定 利用者 所属 所属 担当者を 割り当て 利用権限の付与 SAML 設定 SSOして利用 Group Menbership Administrator を付与 なお、SSO 設定については対象のアプリ ケーションが Okta Integration Network (OIN) と呼ばれるカタログに登録されてい る場合は、SSO 設定の箱を用意せずに 「OINからアプリの作成・編集」できる権 限を渡すことが可能です。 サンドボックス環境など、複数環境を持っ ている場合はこの方法が有効です。 Application Administrator を付与
IdP の権限設定を使った解決アプローチ 26 できないこと グループA グループAを 管理できる権限を 持ったグループB グループBを 管理できる権限を
持ったグループC メンバー管理 できない メンバー管理 できる ここで注意点があります。 図のように、グループメンバーの管理について2重にして「管理者の割り当ても委譲したい」と考えるかも しれません。しかし、 Okta ではこれを設定することができません。 これは Okta の仕様により「権限を持っているグループへの割り当ては特権管理者(Super Administrator)しか設定できない」という制約が入っているためです。 そのため、管理者グループへの割り当ては特権管理者である情シスが実施する必要があります。 https://help.okta.com/oie/ja-jp/Content/Topics/Security/administrators-admin-comparison.htm
Chatwork における活用事例 5
Chatwork における活用事例 28 SSO 設定の実施 利用権限割り当て 管理者グループ 利用者グループ SSO 設定可能な
管理者グループ 事業部門担当者 情シス担当者 メンバー管理 SSO 設定 利用者 所属 所属 担当者を 割り当て 利用権限の付与 SAML 設定 SSOして利用 Group Menbership Administrator を付与 Chatwork ではこれを基本としてユース ケースごとにアレンジを加えて運用してい ます。 ここからはそれらアレンジ例と、いくつか 実際に導入している例を挙げてご紹介しま す。 Application Administrator を付与
Chatwork における活用事例 29 メンバー管理者権限のみを渡して、SSO の設定は情シスがおこなうパターン 利用権限割り当て 管理者グループ 利用者グループ 事業部門担当者 情シス担当者
メンバー管理 SSO 設定 利用者 所属 所属 担当者を 割り当て 利用権限の付与 SAML 設定 SSOして利用 Group Menbership Administrator を付与 SSO 設定の実施 SSO のみ 情シスが設定
Chatwork における活用事例 30 メンバー管理を Okta Group Rule による自動化と併用するパターン SSO 設定の実施
利用権限割り当て 管理者グループ 利用者グループ SSO 設定可能な 管理者グループ 事業部門担当者 情シス担当者 自動追加されない分だけ メンバー管理 SSO 設定 利用者 所属 所属 担当者を 割り当て 利用権限の付与 SAML 設定 SSOして利用 Group Menbership Administrator を付与 Application Administrator を付与 Okta Group Rule Rule にマッチした ユーザーを自動で追加 ※情シス管理 「〇〇部に所属しているユーザー を自動で特定のグループに割り当 てる」という動作が仕込まれた Group Rule
Chatwork における活用事例 31 事例: Salesforce SSO 設定 SSO 設定 SAML
設定 利用者 グループ 利用者 アプリ管理 者グループ SAML 設定 Salesforce システム担当者 利用権限管理 者グループ 情シス担当者 担当者を 割り当て 社内のSalesforceの事例です。 Salesforce環境がいくつかあるとのことな ので、Salesforce用の設定を何個でも作成 できる権限を付与しました。
Chatwork における活用事例 32 事例: AWS SSO(一部抜粋) SSO 設定 SRE利用者 グループ
SRE管理者 グループ アプリ管理 者グループ SRE部MGR SRE部メンバー 所属 所属 熟練メンバーの み所属 SSO 設定の実施 SAML 設定 情シス担当者 部署A管理 者グループ 部署A利用 者グループ メンバー管理 A部MGR A部メンバー 所属 所属 メンバー管理 AWS 部署B管理 者グループ 部署B利用 者グループ B部MGR B部メンバー 所属 自動追加されない 業務委託だけメンバー管理 利用権限の付与 Okta Group Rule 業務委託 所属 Rule にマッチした ユーザーを自動で追加 条件:B部に所属している ユーザー ※情シス管理 各管理者用グループに ユーザーを割り当て 設定が膨大だったので抜粋です。社内のSREチームが主 導で進めてくれたAWS SSOの事例となります。 最初の設計のときにアドバイスをしただけで殆どはSRE が設計をまとめていました。
まとめ 6
まとめ 34 • 適切に権限を委譲をすることで、あとは情シスが関与しなくても事業部門側で運用が回る ようになります。 ◦ そのためには情シスと事業部門それぞれの役割を定義し、お互い責任持って遂行す る必要があります。 ◦ 導入もしくは運用時に円滑に連携ができるように信頼関係の構築はとても重要で
す。
働くをもっと楽しく、創造的に