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

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 AccessでOpenID Connect連携

Workspace ONE Accessはその名の通りSaaSなどへのアクセス管理をすることができる製品ですが、Identity Providerの役割を果たすことも可能で、以下のフェデレーションプロトコルに対応しています。  -WS-Federation  -SAML  -OpenID Connect WS-FederationはOffice365と連携する際などに利用したりするヤツですね。 個人的な感覚では、クラウドサービスはSAML認証に対応しているものが多いのでWorkspace ONE Accessと認証連携する場合、SAMLを利用するケースが一番多い気がします。 また、設定ガイド( SAML ベース SSO 統合のドキュメント センター )なんかも公開されており、連携のハードルは比較的低いと思います。 一方で、OpenID Connectの利用に関してはかなり情報が少ない気がしてます... ただ、OpenID Connectも認証連携の仕組みとしては代表的なものの一つではありますので、今回はOpenID Connectを使用してWorkspace ONE Accessと認証連携をしてみたいと思います。(連携先のサービスにはRedmineを使用します。) まずはWorkspace ONE Accessの管理コンソールでの作業です。 カタログ>Webアプリケーション とクリックして、Workspace ONE Accessのアプリカタログに載せるWebアプリの一覧を開き、「 新規 」をクリックします。 「 名前 」に入力した値はそのままユーザーのアプリカタログに表示されるので、わかりやすい名称にします。入力したら次に進みます。 【補足】 いくつかのサービスは連携用のテンプレートがあり、「 またはカタログから参照 」をクリックすることで利用が可能です。今回使用するRedmineについても、SAML連携であればテンプレートがあるので比較的カンタンに設定できると思います。 まずは、「認証タイプ」で「 OpenID 接続 」を選びます。(おそらくOpenID Connectが訳されているのでしょうが、何か違うような...) すると、OpenID Connect連携用の設定項目が現れるので、各設定を入れていきます。 「 クライアントID 」と「 クライアント シークレ

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]をテキストエディタで開いておきます。 証明書の一覧画面で、[New]をクリックします。 Nameに[SAML 2.0]と入力して下にスクロールします。 PEM Certificateに先ほどテキストエディタで開い