スキップしてメイン コンテンツに移動

Workspace ONE Accessのディレクトリ同期をAPIで実行

 

今回はWorkspace ONE Accessのディレクトリ同期をAPIで実行してみます。

WS1 Accessに連携したディレクトリはビルトインの機能で定期的に自動同期させるように設定することができます。例えば1日に一回などといった形です。

ただ、自動同期は最短で1時間に1回なので、AD側での情報更新後即時にWS1 Accessにも変更を反映したい場合は手動で同期を実行する必要があり、Omnissa Communityでもそういうことをやりたいといった質問があったため、今回APIで同期を実行する方法を検証してみました。

WS1 Accessで利用できるAPIは以下のURLに明記されています。
今回実施するAD連携設定の変更は上記のURLには記載が無さそうので、実施は自己責任です。


大まかな流れは以下の通りです。
    1.WS1 Access管理コンソールを操作してAPIの情報を収集
    2.Postmanの設定
    3.動作確認


1.WS1 Access管理コンソールを操作してAPIの情報を収集

WebブラウザでWorkspace ONE Accessの管理コンソールにログインし、[統合]>[ディレクトリ] をクリック後、同期を実施したい対象のディレクトリ名のリンクをクリックします。


次に、裏で動いているAPI情報を取得するためにブラウザのデベロッパーツールを開きます。Chromeの場合、[右上のオプション]>[その他のツール]>[デベロッパーツール]をクリックします。


デベロッパーツールの[Application]タブを開き、左の[Cookies]を展開し、URLをクリックすると使用されているCookieを確認することができます。
Name列が[HZN]のレコードをクリックし、[Cookie Value]の値を控えておきます。
これは後程PostmanからAPIを実行する際の認証情報として使用します。


次の手順でAccessの管理コンソール上で手動でAD同期を実行するのですが、その時に裏で動くAPIの情報をキャプチャするため、デベロッパーツールの[Network]タブを開いておきます。


Accessのコンソールに戻り、[同期]>[セーフガードを使用しない同期]をクリックします。


デベロッパーツールのNetworkタブで[Name]が[v2?locale=ja]のレコードをクリックすると、ディレクトリ同期実行時に実行されたAPIを確認することができます。
PostmanでのAPI実行に使うため、[Request URL:]の値をコピーしておきます。
また、[Request Method:]がPOSTであることも覚えておきます。


API実行時のパラメータとして必要になるため、[Accept:]の値もコピーしておきます。
application/vnd.vmware.horizon.manager.connector.management.directory.sync.trigger.v2+json


【補足】
同期実行のAPIのURLはディレクトリIDを含んでいるため、別のディレクトリに対して同期を実行したい場合は別途取得が必要になりますが、管理コンソールでディレクトリ詳細画面を開き、URLを見ることで簡単に取得することができます。




2.Postmanの設定

Postmanを起動して新しいクエリを作成後、URL欄に以下を設定します。
 -URL:前の手順で取得したRequest URLの値
 -Method:POST


次に認証情報を設定します。Postmanの「Authorization」タブで以下のように設定します。
 -Type:Bearer Token
 -Token:Cookieから取得したHZNの値(画像内で言うと「eyJ0…」という文字列)
【補足】
今回はワンタイムの実行なので手軽に実行するためブラウザのCookieから認証情報を取得しましたが、ちゃんとやるならOAuthを利用したほうがいいですね。詳しくは以下を参照。


次に「Headers」タブをクリック後、以下を設定します。
 -Accept:1.の手順で取得したAcceptの値


[Body]タブにて[raw]にチェック入れ、入力欄には以下を入力します。
{"ignoreSafeguards":true}
【補足】
これは「セーフガードを無視するか否か」という設定なので、[true]であればセーフガードを無視して同期、[false]を指定するとセーフガードを有効化した同期が実行されます。
trueにしろfalseにしろ、どちらか設定しないと同期は実行できません。



3.動作確認

対象ディレクトリの「ログの同期」タブを開くと、同期実行のログを見ることができます。APIでの同期実行の事前確認として、直近の同期のタイムスタンプを見ておきます。


前章まででPostmanの設定は整っているので、「Send」をクリックしていざAD同期のAPIを実行します。
実行後、結果が[200 OK]であることを確認します。


新しい同期ログが表示されたので無事同期は完了したようです。特にGUIで実行した場合や自動同期で実行された場合とログの見え方的には変わりは無いようです。



今回はPostmanによるAPI実行方法を紹介しました。
この処理を何らかの形で自動化したり、スクリプト化したりすることで、Accessの機能としての自動同期以外の任意のタイミングでディレクトリ同期を実行させることが可能になるかと思います。




コメント

このブログの人気の投稿

Workspace ONE Accessに証明書認証でログイン

Workspace ONE AccessではSaaSなどのサービスへのアクセス管理ができますが、クライアント証明書認証の機能も備わっています。 ここでは、Workspace ONE UEMから配信した証明書を使用して、Workspace ONE Accessに証明書認証でログインする、ということをやってみます。 まずは、Workspace ONE UEMコンソールでの作業です。 すべての設定>システム>エンタープライズ統合>Workspace ONE Access>構成 へ移動し、「 エクスポート 」をクリックしてAirWatch認証局のルート証明書をエクスポートします。 次に、Windows向けにWorkspace ONE Access認証用証明書プロファイルを作成してデバイスに対して配信します。 SCEPペイロードを選択し、「 資格情報ソース 」は「 AirWatch認証局 」を選択します。証明書テンプレートは「 証明書(クラウド展開) 」です。 【補足】 上記のプロファイルで配信した証明書は 秘密キーのエクスポートができない ようになっているため、使い回しを防ぐことができます。つまり、私用のデバイスにインポートし直してログインしてしまおう...ということはできない仕組みになっているワケですね。 次はWorkspace ONE Accessの管理コンソールでの作業です。 IDとアクセス管理>管理>認証方法をクリックし、「 証明書(クラウドデプロイ) 」の設定を変更します。(UEMのプロファイルで選択した証明書テンプレートと同じ名前ですね。若干の誤差はありますが...) 始めに、「 証明書アダプタを有効にする 」にチェックを入れ、「 ルートおよび中間CA証明書 」のところには先ほどWorkspace ONE UEMからエクスポートした証明書をアップロードし、「 証明書の失効を有効にする 」にもチェックを入れておきます。 【補足】 公的認証局であっても、ここでルート証明書をアップロードしない限り証明書認証はできないので、今回の例では Workspace ONE UEM内部の認証局から発行されている証明書以外では認証できない 構成にすることができます。 少し下にスクロールして「 OCSPの失効を有効にする 」にチェックを入れ、「 OCSPレスポンダの署名証明書 」には...

自分のデバイスは自分で管理

Workspace ONE UENにはセルフサービスポータル(SSP)という機能があります。 名前の通りセルフサービスで自身に紐付いているデバイスに対して色々できるポータルで、デバイスのステータスを確認したり、位置情報を確認してみたり、コマンドを実行したりと様々なことができます。 色々できるとなると、逆に誤操作などでデバイスワイプを実行してしまい意図せず初期化してしまったりするのではないか...という懸念が出てきますが、WS1 UEMのセルフサービスポータルではユーザーが実施可能な操作をカスタマイズできます。 例えば、あくまで情報参照用とするためにデバイス情報の表示の権限だけ与えておいたり、紛失したときの対策のために加入解除操作はできるようにしておく、など運用要件によりカスタマイズして利用できるというワケです。 ここでは、加入解除のみを実行できるようにカスタマイズしたSSPにログインし、ユーザー目線で実際に自分のデバイスを加入解除する、ということをやってみます。 実際にありそうなシーンと言えば、あまり考えたくありませんが、夜中に会社支給のデバイスの紛失に気付いてしまったときとかですかね... まずは、Workspace ONE UEMのSSPにログインします。 WebブラウザでWorkspace ONE UEMコンソールのURLの末尾にmydeviceを付けてEnterキーを押します。「https://cnXXX.awmdm.com/mydevice」みたいな感じです。 アクセス後は、ログイン方法などを選択後次ヘ進み、ユーザー名パスワードを入力してログインします。 今回は事前に権限を極限まで絞っているため「 企業情報ワイプ 」のみ表示されていますので、これをクリックします。 【補足】 画像に映っている通り、自分に紐付くデバイスが複数存在する場合もすべてSSPから管理できます。 すると、対象のデバイスで加入解除が実行され、企業データが削除されます。 ちなみに、上記の動作確認ではSSPの権限をかなり限定して企業情報ワイプしかできないようにしてますが、特に権限を限定しなければ「 企業情報ワイプ 」以外にも「 デバイスの位置情報を確認 」など様々なオプションが実行できますし、「 詳細に進む 」をクリックすると... デバイスの順守状態や適切にプロファイルが適用されているか、...

Workspace ONE AccessからServiceNowにシングルサインオン(SAML)

以前、Workspace ONEと他システム間で、 OpenID Connect で連携する内容をポストしましたが、今回は SAML を利用したシングルサインオンの構成を検証してみました。 ServiceNow と SAML連携 して、WS1のポータルからシングルサインオンする構成を試してみます。 大枠の流れとしては以下の通りです。      1.ServiceNow(SP)のSAML認証設定          1.1. WS1 AccessからSAML連携に必要な情報を取得           1.2.SAML認証設定      2.WS1 Access(IDP)でSAML認証設定      3.動作確認 1.ServiceNow側(SP)でSAML認証設定 まずは、今回の構成ではSP(Service Provider)となるServiceNow側でSAMLによるシングルサインオンを可能とするように構成します。 1.1.WS1 Accessから S AML連携に必要な情報を取得 まずは、WS1 AccessのIDPメタデータのURLを取得します。 [カタログ]>[Webアプリケーション]をクリック後、[設定]をクリックします。 左ペインから[SAMLメタデータ]をクリック後、IDPメタデータの[URLをコピー]をクリックします。 クリップボードにコピーされるので、テキストエディタにでも貼り付けておきます。 次に、WS1 AccessのIDP署名証明書を取得します。 左ペインから、[SAMLメタデータ]をクリック後、署名証明書の[ダウンロード]をクリックします。 こんなファイルがダウンロードされます。 1.2.SAML認証設定 続いて、ServiceNow側のSAML認証設定を行います。 ServiceNowの管理コンソールにログインし、検索バーに[saml]と入力後、[SAML2 Single Sign-On]配下の[Certificate]をクリックします。 後で、使用するため先ほどダウンロードした、[signingCertificate.cer]をテキストエデ...