前回の「Workspace ONEとOktaの連携 – はじめに」では、Workspace ONEとOktaの連携の概要についてご紹介しました。今回のブログから、具体的に設定内容を確認していきます。
今回は、Oktaで管理しているID情報をWorkspace ONE Accessへプロビジョニングします。SCIM を使ってIDプロビジョニングをするための設定についてご紹介します。
■環境イメージ
本ブログで設定する構成のイメージは以下です。(赤枠の部分です)
検証に使用した環境ですが、Workspace ONEはvExpertの特典で使用できるTestDriveのサンドボックス環境を使用します。
vExpertの特典以外にも、VMwareのパートナー企業であれば、指定のVTSPを取得すれば利用可能になります。エンドユーザーの場合はパートナー企業やVMware社員から招待があれば期間限定ですが利用可能になります。また、VMUG Advantage メンバーの方も使えるようです。
・Getting Started with TestDrive
Oktaは、無償で30日間の評価が可能なトライアル環境をWEBから申請して使用しました。
事前にOktaにはテスト用のユーザーを10個ほど作成しています。
また、テスト用ユーザーが所属するグループも複数作成しています。
また、この設定を有効化するためには、Workspace ONE Accessに対してAPIでの操作が必要になるため、今回はPostmanを作業用のPCに事前インストールしています。
■設定作業の流れ
OktaからWorkspace ONE AccessへのSCIM Provisioning設定は、以下の流れで設定します。
- Workspace ONE AccessのAPIアクセストークンを生成
- Workspace ONE AccessでOtherタイプのディレクトリを作成
- OktaにWorkspace ONE Accessアプリを登録する
- Oktaのユーザー・グループがWorkspace ONE Accessに同期されることを確認
では順番に設定していきます。
■Workspace ONE AccessのAPIアクセストークンを生成
まず、Workspace ONE AccessでAPIアクセス用のクライアントを作成します。
Workspace ONE Accessの管理画面を開き、[設定]-[ OAuth 2.0 管理]を開き、[クライアントの追加]をクリックします。
※このブログを作成するときに、Workspace ONE AccessがClarity Designの新UIで表示できるようになっていたので、新しいUI表示で設定しています。旧UIだと、[カタログ]タブの矢印から[設定]-[リモートアプリアクセス]から開きます。アクセスタイプの項目で、[サービスクライアントトークン]を指定し、ID欄に任意の値(今回は”OktaSCIM”)を入力します。アクセストークンの有効期間を必要に応じて変更し、[保存]をクリックします。
(有効期限を長くすると、OktaとのIDプロビジョニング連携構成の更新頻度が下がります)
クライアント情報が保存され、共有シークレットキーが作成されます。クライアントIDと共有シークレットの[コピー]をクリックして、キーをメモしておきます。
次に、Postmanを使用して、OAuthベアラートークンを生成します。
Postmanを開き、[Authorization]タブを開きます。 “Type”の選択で、[OAuth 2.0]をクリックします。
右側に表示された欄の” Configure New Token”の下部に以下値をそれぞれ入力します。入力後、[Request Token]をクリックしてトークンを要求します。
- Token Name…Workspace ONE(任意の値)
- Grant Type…Client Credentials
- Access Token URL…以下記述
https://<Workspace ONE AccessのテナントURL>/SAAS/auth/oauthtoken
- Client ID…先ほどWorkspace ONE Accessの管理画面で作成しコピーしたクライアントID
- Client Secret…先ほどWorkspace ONE Accessの管理画面で作成しコピーしたシークレットキー
- Scope…admin
アクセストークンの取得に成功すると、以下のような画面が表示され、トークンが表示されます。後ほどトークンを使う為、トークンの文字列をコピーしておきます。
[Use Token]をクリックして閉じます。
[Authorization]タブの”Add authorization data to”で[Request Headers]を選択しておきます。
■Workspace ONE AccessでOtherタイプのディレクトリを作成
次にAPIの操作で、Workspace ONE AccessにOtherタイプのディレクトリを作成します。
PostmanのURL欄に下記値を入力します。
- HTTP方式…POST
- URL…以下記述
https://<Workspace ONE AccessのテナントURL>/SAAS/jersey/manager/api/connectormanagement/directoryconfigs
[Headers]タブを開き、下記のキーと値を入力します。
- Key…Content-Type
- VALUE…以下の値
application/vnd.vmware.horizon.manager.connector.management.directory.other+json
次に、[Body]タブを開き、[raw]を選択して下記値を入力します。最後に、[Send]をクリックしてOtherタイプのディレクトリ作成を実行します。
{
"type":"OTHER_DIRECTORY",
"domains":["<ドメイン名>"],
"name":"Okta Universal Directory"
}
リクエストに成功すると、結果のBodyに以下の様なテキストが表示されます。
Workspace ONE Accessの管理画面を開き[コンポーネント]-[ディレクトリ]を確認すると、” Okta Universal Directory”という名前のディレクトリが追加されていることが確認できます。また、クリックして開くと、指定したドメインで構成されていることがわかります。
これで、Otherタイプのディレクトリ作成は完了です。
■OktaにWorkspace ONE Accessアプリを登録する
次に、Okta側にWorkspace ONE Accessアプリを登録します。
Oktaの管理コンソールを開き[Applications]-[Applications]の順に開き、[Browse App Catalog]をクリックします。
検索窓に”VMware Workspace ONE”と入力し、検索結果の[VMware Workspace ONE]を選択します。[Add] をクリックします。
Workspace ONE Accessの設定を追加していきます。
“Base URL”にWorkspace ONE AccessのテナントURLを入力します。[Done]をクリックします。
[Provisioning]タブをクリックし、[Configure API Integration]をクリックします。
[Enable API integration]を有効にし、”API Token”欄にPostmanで作成したアクセストークンの値を貼り付けます。
[Test API Credentials ]をクリックし、接続が問題ないことを確認します。問題なければ[Save]をクリックして保存します。
次に、IDプロビジョニング、変更の動作を指定します。
[To App]の[Edit]をクリックし、” Create Users(ユーザーの作成)”” Update User Attributes(属性の更新)”” Deactivate Users(非アクティブ化)”をそれぞれ有効化し、[Save]をクリックします。
プロビジョニングの設定画面を下部にスクロールし、マッピングする属性情報を指定します。適宜、編集ボタンをクリックして変更します。
環境に合わせて設定する必要がありますが、少なくとも”domain”属性はデフォルトで”okta.com”になっているため、Workspace ONE Accessに作成したOtherタイプのディレクトリのドメインの一致させる必要があります。
以上で、OktaへのWorkspace ONE Accessアプリ登録設定は完了です。
■Oktaのユーザー・グループがWorkspace ONE Accessに同期されることを確認
Oktaの管理コンソールからユーザーにWorkspace ONEアプリを割り当て、Workspace ONE AccessへIDがプロビジョニングされることを確認します。
Oktaの管理コンソールを開き、VMware Workspace ONEアプリの[Assignments]を開きます。[Assign]をクリックし、IDをプロビジョニングしたいすべてのユーザーが含まれているグループを追加します。
Workspace ONE Accessの管理コンソールを開き、[アカウント]タブを開くと、ユーザーが追加されていることが確認できました。
次に、Oktaで作成・管理しているグループをWorkspace ONE Accessへ同期します。
Oktaの管理コンソールを開き、VMware Workspace ONEアプリの[Push Groups]を開きます。同期したいグループを選択、追加します。
しばらくしてWorkspace ONE Accessの管理コンソールを開き、[アカウント]-[ユーザーグループ]を開くと、グループが追加されていることが確認できました。また、各グループのユーザー所属情報は、Okta側で構成している情報と同じ状態になっています。
また、試しにOkta側でユーザーを無効にした場合の動作も確認しました。Okta側で無効にすると、すぐにWorkspace ONE Access側のユーザー状態も無効状態になることが確認できました。
以上のように、Oktaのユーザー・グループがWorkspace ONE Accessに同期されることを確認できました。
■おわりに
今回の記事では、OktaからWorkspace ONE AccessへのIDプロビジョニングの設定をご紹介しました。Workspace ONE AccessのGUI操作で設定できない項目があるため、Postmanを使ってのAPI操作が必要になるのがちょっと躓きポイントかと思いました。
次回は、このWorkspace ONE Accessに同期されたユーザーを、Workspace ONE UEMに同期する際の設定手順を確認したいと思います。
<参考ドキュメント>