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

Workspace ONE AccessのAPIをいじり倒す


Workspace ONE関連のコンポーネントではAPIでいろいろとできることがありますが、Workspace ONE AccessでもAPIで出来ることがいくつかあります。
サポートされているAPIは以下で公開されています。


上記以外にもAPIで実施できることはあるようでして、以下のページでは上記に記載の無いAPI実行の手段が記載されています。


ただ、上記ページにも記載されている通りサポートされているのは「https://developer.vmware.com/apis/57」に記載されているものですので、ここに記載の無いものについては、使うことはできるものの利用は自己責任ということになると思います。


APIを使うことができれば何らかの運用操作を機械的に実施できる可能性が広がると思いますので、あくまで自己責任の範囲で利用することでよりWS1 Accessを使いこなせるのではないか、ということで今回はWS1 AccessのAPIを使い倒して設定を行ってみます。


大まかな流れは以下の通りです。
    1.WS1 AccessをGUI操作してAPIの情報を取得
    2.Postmanの設定
    3.動作確認
        3.1.ディレクトリ設定を取得
        3.2.ディレクトリ設定の更新を実行



1.WS1 AccessをGUI操作してAPIの情報を取得

まずはWebブラウザを使用して管理コンソールをGUI操作することによって裏で動いているAPIなどの情報をかき集めます。今回の目的はディレクトリ設定をAPIで行うことなので、GUIでディレクトリ設定周りを見ていきます。


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


[同期設定]をクリックします。


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


[Application]タブを開き、左の[Cookies]を展開し、URLをクリックすると使用されているCookieを確認することができます。
Name列が「HZN」のものをクリックし「Cookie Value」の値を控えておきます。


デベロッパーツールの[Network]タブを開いておきます。


WS1 Accessの管理コンソールに戻って「ユーザー」タブをクリックするとデベロッパーツールにいくつか表示されるので、Name列が「syncprofile」のものをクリックします。
すると、開発者ツール右側の[Header]タブに何やらずらずらと表示されるので、以下の値をコピーしておきます。

Content-type:

application/vnd.vmware.horizon.manager.connector.management.directory.sync.profile.users+json

Accept:

application/vnd.vmware.horizon.manager.connector.management.directory.sync.profile.users+json

Request URL:

https://[WS1 Access FQDN]/SAAS/jeasey/manager/api/connectormanagement/directoryconfigs/[Directory ID]/syncprofile





これで事前の情報収集は完了なので、次にAPI実行ツールの設定を行います。


2.Postmanの設定

APIを実行することのできるツールであるPostmanを使用します。
Postmanを起動し、URL欄に以下の値を入力します。
URL:前の手順で取得した「Request URL」の値


次に認証情報を設定します。Postmanの「Authorization」タブで以下のように設定します。
Type:Bearer Token
Token:Cookieから取得した「HZN」の値(画像内で言うと「eyJ0…」という文字列)


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



3.動作確認

3.1.ディレクトリ設定を取得
URL欄の左横のMethodの選択で「GET」を指定し「Send」をクリックします。


するとResponse欄に以下のような値が表示されます。
これはGUIの管理コンソール画面でいうと、ディレクトリ設定内の「ユーザー」タブの情報を取得して表示しています。

GUIで言うとここに相当します。



3.2.ディレクトリ設定の更新
続いて、先ほど取得した設定値を基に更新も実施してみます。
更新時は「Body」タブへの入力が必要になるので「Body」タブをクリック後、「raw」にチェックを入れます。


Bodyには以下のような形式で値を入力します。
以下画像の例では、青枠内は元々設定されていた「lab-user01」と「administrator」で、それに加えてオレンジ枠内の「user02」というアカウントを追加しようとしている様子です。


URL欄の左横のMethodの選択で「PUT」を指定して「Send」をクリックします。


するとResponse欄に以下のような値が表示されます。


GUIの方でもディレクトリ設定を開きなおしてみると、Postmanで追加した「user02」が追加されていることが確認できます。



今回はPostmanというツールを使用して手動で実行をしましたが、WS1 Accessを運用する中で何らかの操作を自動化したい場合、APIを活用することで対応できる可能性は広がるのではないかと思います。



コメント

このブログの人気の投稿

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 UEMでWindowsデバイスのログ収集

WS1 UEM管理下のWindowsデバイスのトラブルシューティング時などに有用なログ収集の方法を紹介します。 また、実際のトラブルシュート時の小技なども紹介したいと思います。 大まかな流れは以下の通りです。      1.WS1 UEM管理コンソールからリモートでログ取得     2 .取得したログの確認     3 .小技 1.WS1 UEM管理コンソールからリモートでログ取得 ログ収集を行う際、管理者目線で言うと、可能であればユーザー側の操作なしにリモートでかつサイレントで収集できることが望ましいと思います。 WS1 UEMではリモートでログ収集を行う機能が備わっているため、その機能を利用します。 WebブラウザでWorkspace ONE UEMの管理コンソールにログインし、ログ取得対象のデバイス詳細画面で[その他のアクション]>[デバイスログを要求]をクリックします。 [デバイスログを要求]画面で、[HUB]を選択した状態で[保存]をクリックします。 同じ手順を繰り返し、次は[システム]を選択した状態で[保存]をクリックします。 【補足】 [HUB]の方は文字通りIntelligent Hubのログの収集で、[システム]の方はOSレベルのログを一部収集することができます。 2.取得したログの確認 次に実際に取得されたログを確認してみます。 先ほどログ取得を実行したデバイスの詳細画面で[その他]>[添付ファイル]をクリックします。 [ファイル]タブをクリックすると収集されたログの一覧が表示されます。 ファイル名の接頭辞部分(Hub_とかSystem_の部分)は、ログ取得実行時に選択した種別に対応したものになります。 [spanned]という文字列が含まれているファイルはサイズの関係で複数のファイルに分割された状態になっているログです。 ファイル名のリンクをクリックするとダウンロードができます。 【補足】 ファイル分割はされないような機能改善がどこかのバージョンで実施されたため今後は不要かもしれません。分割されていても次の手順で対応が可能です。 [spanned]が名前に含まれるファイルはそのままだと中身を見ることができないため一手間必要になります。 まずは、末尾にzXXを含むファ...