はじめに
皆様、こんにちは!
ネットワールド SEの福村です。
今回はOkta Org2Orgを用いてOktaテナント間連携の検証ブログになります。
Okta Org2Orgとは複数のOktaテナント間を連携し、Hub&Spoke構成を可能にするアプリケーションになります。例えば、部門ごとで個別のOktaテナントを用いている場合や、会社の合併等で元は別々だったOktaテナントを連携したい場合に用います。詳しい内容については以下のドキュメントをご確認下さい。
検証概要
検証環境として以下の2つのOktaテナントを用意しました。
- A:Spokeテナント
- B:Hubテナント
やりたいこと:Okta Org2Orgアプリケーションログイン時にAからBのテナントへジャストインタイム(JIT)プロビジョニングによってBのテナントにアカウントが生成されることを確認します。
ジャストインタイム(JIT)プロビジョニング:ユーザーがSSO(シングルサインオン)で初めてアプリにログインした際に、事前作成することなく自動的にアカウントを生成する仕組み

検証範囲としては枠線内になります。
今回は実施していませんが、HubテナントからM365等のアプリケーションへ連携したログインすることも可能です。
手順概要
Spoke側とHub側で設定を交互に実施するような形になります。
シングルサインオン(SSO)の設定
- Spoke側:Okta Org2Orgのアプリ初期設定(途中まで)
- Hub側:IDプロバイダーの設定
- Spoke側:Okta Org2Orgのアプリ初期設定(つづき)
プロビジョニング設定
- Hub側:APIトークンの発行
- Spoke側:プロビジョニング設定
ユーザーアサイン
- Spoke側:ユーザーをアプリケーションにアサイン
シングルサインオン(SSO)の設定
Okta Org2Orgのアプリ初期設定(途中まで)
接続元となるSpoke側でOkta Org2Orgの設定を実施します。。アプリケーションのカタログからOkta Org2Orgを選択し、追加します。

アプリケーションラベルは任意の名前を設定します。
アプリケーションベースURLについては接続先となるHubのURLを設定します。

設定手順を表示して手順に従って設定を実行します。

以下の項目をコピーしておきます。
- IdP発行者のURI
- IdPのシングルサインオンURL

またURLをクリックしIdP証明書をダウンロードしておきます。

IDプロバイダーの設定
IDプロバイダーをHub側で追加します。
セキュリティ→IDプロバイダーから IDプロバイダーを追加で、SAML 2.0 IdPを追加します。

Spoke側で開いた設定書を基に設定を実施します。
- 名前:任意の名前を設定
- IdPの用途:SSO
- IdPユーザー名:特に要件なければ 一番上の項目を選択

- 自動リンク:有効化
Hub側とSpoke側のSAMLの値を自動的に紐づけます。
(セキュリティ上既定では無効になっています)
https://support.okta.com/help/s/article/new-idp-authentication-flow-shows-general-nonsuccess-or-400-bad-request?language=en_US

Spoke側からコピーした以下の内容を貼り付けします。
- IdP発行者URI
- IdPシングルサインオンURL

Spoke側からダウンロードしたIdP電子証明書をアップロードします。


Okta Org2Orgのアプリ初期設定(つづき)
IDプロバイダーの設定完了後に以下の内容をHub側からSpoke側へコピーします。
- Hub ACS URL
- オーディエンス URI


プロビジョニング設定
APIトークンの発行
Hub側のAPIのトークンからトークンの作成を選択し、以下の内容でAPIトークンを発行します。
- 名前:任意の名前
- 条件:任意のIP(検証用途のため)


生成されたトークンをコピーします。

プロビジョニング設定
アプリの設定画面からAPI統合を構成を選択します。

以下の設定を実施し、API資格情報をテストを実施し、OKであることを確認した後保存します。
- 認証スキーム:トークン
- セキュリティトークン:Hub側でコピーしたトークンを貼り付け

アプリに対して以下のプロビジョニングの権限を有効化し保存します。
- ユーザーを作成
- ユーザー属性を更新
- ユーザーの非アクティブ化

ユーザーアサイン
Org2Orgアプリの割り当てから対象のユーザー(グループでも可)を割り当てます。

割り当てから対象のユーザーを選択します。

動作確認
テストユーザーでSpoke側のOktaテナントにログインし、アプリをクリックします。

ログイン処理が走ります。

Hub側のOktaテナントへログインできました!

Hub側のOktaテナントでもテストアカウントが生成されていることを確認できました!

免責事項
- 本ブログ(以降:本書)の記載にあたりまして、細心の注意を払っておりますが、正確性・完全性を保証するものではありません。
- 本書の利用によって生じたあらゆる損害に関して、一切の責任を負いかねます。