コンテンツまでスキップ

【Okta】Hub & Spoke(Okta Org2Org)を構成したい -設定編-

はじめに


こんにちはこんばんは、Okta Hub & Spoke構成をこよなく愛するネクストモードのおはらふです

今回は、OktaのHub & Spoke構成について設定を行っていきたいと思います
基本的にはOkta公式ドキュメントに沿って設定すれば問題ないですが、一部補足が必要な部分もあったりするので参考にしていただけたらと思います

背景


Okta Hub & Spoke構成を導入する背景やメリット等は、前回のブログをご覧ください

実装するOkta Hub & Spoke構成


okta_hub_spoke

Spoke Oktaにユーザーを作成すると、Hub経由でSlackへプロビジョニングが行われる構成を実装してみたいと思います
ユーザー目線では、Spoke Oktaのダッシュボード上にあるSlackアプリをクリックすることで、Slackまで自動的にログインさせます

Okta公式ドキュメントを参照し実装していきましょう!

Okta Org2Orgアプリ


Hub & Spoke構成を構築するために利用するOktaの機能が「Okta Org2Org」となります
Okta Integration Network(OIN)に、そのままの名前でアプリとして存在しています

Okta_integration_network

手順概要


SSO設定

  • Spoke:Okta Org2Orgのアプリ設定 その1
  • Hub:IDプロバイダーの設定
  • Spoke:Okta Org2Orgのアプリ設定 つづき

プロビジョニング設定

  • Hub:APIトークンの発行
  • Spoke:プロビジョニング設定
  • Spoke:(任意)グループプッシュ

Spokeアプリ作成

  • Spoke:SSO用アプリ作成

動作確認

  • Spoke:アプリケーションへアサイン

Spoke側SSO設定:Okta Org2Orgのアプリ設定 その1


まずは接続元となるSpoke側で「Okta Org2Org」のアプリケーション設定を行います
[Applications] → [Applications] → [Browse App Integration Catalog] から検索すると出てきます

General settings・Required

  • Base Url:今回はプロビジョニングも行うので、Base Urlに接続先となる [Hub OktaのURL] を入力します

  • Application Visibility:このOrg2Orgアプリは接続用ですので、[Do not display~] にチェックを入れユーザーダッシュボードから見えないようにします

Okta_org2org

Sign-On Options· Required

Okta_org2org

Sign on methodは [SAML2.0] を選択します

[View SAML setup Instructions] をクリックするとセットアップマニュアルが出てきますので、それに従っていきます
このセットアップマニュアルにコピペする設定値等含まれていますので、必ず開いておいてください

後の作業で画面下部の [Hub ACS URL] 等の入力作業が発生しますが、ゆっくり設定を行う場合はセッション切れ対策で一旦下部の [Done] を押すと安心です

次はHub側でAPIトークンを払い出す作業となります

Hub側SSO設定:IDプロバイダーの設定


Hub側で[Security]→[Identity Providers]から [Add Identity Provider] をクリックします
なんかいっぱい出てくるので、[SAML 2.0 IdP] を選びましょうOkta_identity_provider

色々設定項目がありますが、本構成は連携する情報を変換しないパターンなので、その前提で設定していきます

General Settings

  • Name:判別しやすい名前をお好きにどうぞ

Authentication Settings

  • IdP username:ドメイン変換等行わない場合は [idpuser.subjectNameId] でOKです
  • Match against:ユーザーの突合を何で行うかを設定します。基本的には [Okta Username] で問題ないです
  • Account Link Policy:突合した結果、アカウントの紐付けを行うかなので [Automatic] にします
  • Auto-Link Restrictions:特定のグループの制限は設定しないので [None] にします

JIT Settings

  • Update attributes for existing users:既存ユーザーの属性アップデートを行うかの設定です。アップデートしたい場合、各種設定にチェックを入れてください

SAML Protocol Settings

セットアップマニュアルにある各種値をコピペやアップロードしていきます
IdPシングルサインオンURLは後の手順でも使うので、どこかにメモを取っておいてください

全て設定が完了するとこんな感じです
Okta_saml_settings

下部は全部デフォルトで問題ありません
最後にFinishを押しましょう!

ACS URL等の確認

無事にFinishが押せた場合、[Identity Providers] のトップ画面に戻ってきます
設定した項目を見つけたら🔽を押してみます
[Assertion Consumer Service URL] と [Audience URI] を次の手順で使うので、設定値が表示されるか確認しておきますOkta_identity_provider

Spoke側SSO設定:Okta Org2Orgのアプリ設定 つづき


Spoke側のHubのSign Onの設定を行います

Advanced Sign-on Settings

  • Hub ACS URL:上記 [Assertion Consumer Service URL] の値を入力します
  • Audience URI:上記 [Audience URI] の値を入力します

Credentials Details

  • Application username format:ユーザー名で連携したいので [Oktaユーザー名]
  • Update application username on:ユーザー名の更新もしておきたいので [作成および更新]

以上、Sign Onの設定が完了するので [Save]をクリックします
ここまでの手順でSSOの設定が完了となります

Hub側プロビ設定:APIトークンの発行


続いてプロビジョニングの設定を行なっていきます

接続先となるHub側で、API連携に必要なAPIトークンを払い出します
[Security] → [API] から [Create Token] をクリックします
任意の名前を入力し次へ進むと、トークンが払い出されますのでコピーします

※注意:この画面でしかトークンのコピーができません!Okta_create_token

Spoke側プロビ設定:プロビジョニング設定


Spoke側でプロビジョニングの設定を行います

作成したOrg2Orgアプリの [Provisioning] → [Configure API Integration] をクリックしてください

Integration

  • Security token:先ほどコピーしておいたトークンをペースト

  • Prefer Username Over Email:今回はユーザー名で連携しているのでチェック

  • Import Groups:グループのインポートはしたくないのでチェックしないことにします

Okta_provisioning


以上でプロビジョニングの設定が完了です

Spoke側プロビ設定 :(任意)グループプッシュ


SpokeのグループをHubに同期させた方が何かと便利なのでやっておきましょう

作成したOrg2Orgアプリの [Push Groups] → [Push Groups] → [Find groups by name]をクリックしてください
まだ誰もアサインしていないので、[Push menberships~] はチェックをはずしておきます
[Save] をクリックし、[Push Status] が [Active] になることを確認してくださいOkta_push_groups

以上で、プロビジョニングの設定が完了となります

Spoke側アプリ作成 :SSO用アプリ作成


事前準備としてHub側にてSlackへ問題なくSSOできるアプリを作成しておいてください
Hub側Slackアプリの [General] → [App Embed Link] にあるURLを使うのでコピーしておきますOkta_hubs_poke2-11

Spoke側で、Hubを経由してSlackへ接続するリレー用のアプリを作成します
[Applications] → [Browse App Catalog]から[Bookmark App] を見つけて追加します

General settings· Required

  • Application label:任意の名前をつけてください
  • URL:以下の書式で作成します。IdPシングルサインオンURLは、SAMLのセットアップマニュアルに記載があります
https://[IdP Single Sign On URL(IdPのシングルサインオンURL)]?RelayState=[Hub側SlackアプリのApp Embed Link]

以上で全ての設定が完了です!!

Spoke側動作確認 :アプリケーションへのアサイン


早速動作確認してみましょう

作成したOrg2Orgアプリから [Assignments] → [Assign] にて任意のアサインを行なってください
今回はグループアサインをしてみますOkta_org2org

問題なくアサインされていそうです

Hub側動作確認 :ユーザー確認、アサイン


Hub側で問題なくユーザー・グループ作成が行われているか確認してみましょう

Groupsの項目にmode-groupが自動的に作成されており、次野さんがアサインされています
このグループをHubにあるSlackアプリへアサインして準備完了ですOkta_org2org

Spoke側動作確認 :SSO確認


最後に次野さんのアカウントでユーザーダッシュボードにログインし、アプリのアイコンクリックで動作確認をしてみます

今回はアイコンがデフォのままですが、それっぽいアプリにしたい場合はきちんと設定をするとより美しいですOkta_dashboard

アプリクリック後は SpokeのOkta Org2Orgアプリへ接続する画面となりますOkta_org2org

その後、Hub側Oktaのログイン画面が表示され、自動的にログイン処理が行われますOkta_login

無事に見てるだけでSlackの初期画面へ接続できました!slack_login

おわりに


Hub & Spoke構成を使うと、ユーザー側の利便性をそのままに管理者目線で非常に効率的なテナント構成を組むことができます

初回設定は少し大変かもしれませんが、企業内で複数テナントを運用している方は是非導入の検討してみてください