こんにちはこんばんは、Okta Hub & Spoke構成をこよなく愛するネクストモードのおはらふです
今回は、OktaのHub & Spoke構成について設定を行っていきたいと思います
基本的にはOkta公式ドキュメントに沿って設定すれば問題ないですが、一部補足が必要な部分もあったりするので参考にしていただけたらと思います
Okta Hub & Spoke構成を導入する背景やメリット等は、前回のブログをご覧ください
Spoke Oktaにユーザーを作成すると、Hub経由でSlackへプロビジョニングが行われる構成を実装してみたいと思います
ユーザー目線では、Spoke Oktaのダッシュボード上にあるSlackアプリをクリックすることで、Slackまで自動的にログインさせます
Okta公式ドキュメントを参照し実装していきましょう!
Hub & Spoke構成を構築するために利用するOktaの機能が「Okta Org2Org」となります
Okta Integration Network(OIN)に、そのままの名前でアプリとして存在しています
SSO設定
プロビジョニング設定
Spokeアプリ作成
動作確認
まずは接続元となるSpoke側で「Okta Org2Org」のアプリケーション設定を行います
[Applications] → [Applications] → [Browse App Integration Catalog] から検索すると出てきます
Base Url:今回はプロビジョニングも行うので、Base Urlに接続先となる [Hub OktaのURL] を入力します
Application Visibility:このOrg2Orgアプリは接続用ですので、[Do not display~] にチェックを入れユーザーダッシュボードから見えないようにします
Sign on methodは [SAML2.0] を選択します
[View SAML setup Instructions] をクリックするとセットアップマニュアルが出てきますので、それに従っていきます
このセットアップマニュアルにコピペする設定値等含まれていますので、必ず開いておいてください
後の作業で画面下部の [Hub ACS URL] 等の入力作業が発生しますが、ゆっくり設定を行う場合はセッション切れ対策で一旦下部の [Done] を押すと安心です
次はHub側でAPIトークンを払い出す作業となります
Hub側で[Security]→[Identity Providers]から [Add Identity Provider] をクリックします
なんかいっぱい出てくるので、[SAML 2.0 IdP] を選びましょう
色々設定項目がありますが、本構成は連携する情報を変換しないパターンなので、その前提で設定していきます
セットアップマニュアルにある各種値をコピペやアップロードしていきます
IdPシングルサインオンURLは後の手順でも使うので、どこかにメモを取っておいてください
全て設定が完了するとこんな感じです
下部は全部デフォルトで問題ありません
最後にFinishを押しましょう!
無事にFinishが押せた場合、[Identity Providers] のトップ画面に戻ってきます
設定した項目を見つけたら🔽を押してみます
[Assertion Consumer Service URL] と [Audience URI] を次の手順で使うので、設定値が表示されるか確認しておきます
Spoke側のHubのSign Onの設定を行います
以上、Sign Onの設定が完了するので [Save]をクリックします
ここまでの手順でSSOの設定が完了となります
続いてプロビジョニングの設定を行なっていきます
接続先となるHub側で、API連携に必要なAPIトークンを払い出します
[Security] → [API] から [Create Token] をクリックします
任意の名前を入力し次へ進むと、トークンが払い出されますのでコピーします
※注意:この画面でしかトークンのコピーができません!
Spoke側でプロビジョニングの設定を行います
作成したOrg2Orgアプリの [Provisioning] → [Configure API Integration] をクリックしてください
Security token:先ほどコピーしておいたトークンをペースト
Prefer Username Over Email:今回はユーザー名で連携しているのでチェック
以上でプロビジョニングの設定が完了です
SpokeのグループをHubに同期させた方が何かと便利なのでやっておきましょう
作成したOrg2Orgアプリの [Push Groups] → [Push Groups] → [Find groups by name]をクリックしてください
まだ誰もアサインしていないので、[Push menberships~] はチェックをはずしておきます
[Save] をクリックし、[Push Status] が [Active] になることを確認してください
以上で、プロビジョニングの設定が完了となります
事前準備としてHub側にてSlackへ問題なくSSOできるアプリを作成しておいてください
Hub側Slackアプリの [General] → [App Embed Link] にあるURLを使うのでコピーしておきます
Spoke側で、Hubを経由してSlackへ接続するリレー用のアプリを作成します
[Applications] → [Browse App Catalog]から[Bookmark App] を見つけて追加します
https://[IdP Single Sign On URL(IdPのシングルサインオンURL)]?RelayState=[Hub側SlackアプリのApp Embed Link]
以上で全ての設定が完了です!!
早速動作確認してみましょう
作成したOrg2Orgアプリから [Assignments] → [Assign] にて任意のアサインを行なってください
今回はグループアサインをしてみます
問題なくアサインされていそうです
Hub側で問題なくユーザー・グループ作成が行われているか確認してみましょう
Groupsの項目にmode-groupが自動的に作成されており、次野さんがアサインされています
このグループをHubにあるSlackアプリへアサインして準備完了です
最後に次野さんのアカウントでユーザーダッシュボードにログインし、アプリのアイコンクリックで動作確認をしてみます
今回はアイコンがデフォのままですが、それっぽいアプリにしたい場合はきちんと設定をするとより美しいです
アプリクリック後は SpokeのOkta Org2Orgアプリへ接続する画面となります
その後、Hub側Oktaのログイン画面が表示され、自動的にログイン処理が行われます
無事に見てるだけでSlackの初期画面へ接続できました!
Hub & Spoke構成を使うと、ユーザー側の利便性をそのままに管理者目線で非常に効率的なテナント構成を組むことができます
初回設定は少し大変かもしれませんが、企業内で複数テナントを運用している方は是非導入の検討してみてください