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

Workspace ONE Intelligenceのレポート取得をAPIで実行

 

Workspace ONE IntelligenceはWorkspace ONEの中で自動化やレポーティングなどを行うことができるコンポーネントです。

ひとつ前の投稿でWS1 AccessをAPIでいじり倒すということをやってみましたが、今回はWS1 IntelligenceのAPIを叩くことでレポートを取得するということをやってみます。


大まかな流れは以下の通りです。
    1.Intelligenceでレポート作成
    2.スクリプト実行用Intelligenceのサービスアカウント作成
    3.サービスアカウントにレポートを共有
    4.スクリプトの実行


1.Intelligenceでレポート作成

まずは、Intelligenceの管理コンソールでレポートを作成します。

WebブラウザでIntelligenceの管理コンソールにログイン、[ワークスペース]>[レポート]>[追加]>[カスタムレポート] をクリックします。


今回はレポートの内容自体は特にこだわらないので、[カテゴリ]>[Workspace ONE UEM]>[デバイス]でも設定しておきます。何か取得したい特定の情報がある場合は、適切なカテゴリを選択する必要があります。

【補足】
レポートの内容をカスタマイズしたい場合は列を追加することもできます。



2.スクリプト実行用Intelligenceのサービスアカウント作成

次にIntelligenceの管理コンソール上でサービスアカウントを作成します。
このアカウントは後程APIを実行するスクリプトの認証に使います。

[アカウント]>[サービスアカウント]>[追加]をクリックします。


名前を適当につけて、「クライアントシークレットを生成」をクリックします。


ここで表示される、"クライアント ID"や"クライアントシークレット"の値がスクリプト実行時に必要になります。この画面で手動でコピーすることも可能ですが、すべての情報が含まれるJSONファイルのダウンロードが自動的に実行されるため、ダウンロードされたJSONを開いて確認することも可能です。



3.サービスアカウントにレポートを共有

先ほど作成したサービスアカウントに対して、初めに作成したレポートのアクセス権を付与するために「共有」という操作を行います。

レポートの一覧画面で対象のレポートの左端の3点アイコンをクリック後、「共有」をクリックします。


[ユーザーを追加]欄で先ほど作成したサービスアカウントを選択して、「保存」をクリックします。


保存後、「編集可能」権限を付与します。



4.スクリプトの実行

ここまでで事前の準備は完了したので、APIを叩くスクリプトを実行してレポートが取得できることを確認します。

まずは以下のURLからIntelligenceのレポート生成とダウンロードを実行するスクリプトを取得します。


Powershellを起動し、スクリプト保存したフォルダに移動後以下コマンドを実行します。
.\Intelligence_report_download.ps1 -Region "リージョン" -ReportId "レポートID" -ClientId "IntelligenceサービスアカウントのクライアントID" -ClientSecret "Intelligenceサービスアカウントのクライアントシークレット" -OutFile "[CSVファイルに付与する任意の名前]_$(Get-Date -Format "yyyyMMddHHmmss").csv"

【補足】
レポートIDはレポートの詳細画面を開いた際のURLで確認可能です。


スクリプトの実行によりCSVファイルがダウンロードされています。



今回のレポート取得は、APIを使用しない通常の方法であれば、①管理コンソールにログインし、②対象のレポートの画面を開いて、③レポートの生成を実行し、④生成されたレポートをダウンロードする、というように何ステップか踏まないといけません。

今回使ったようなスクリプトを、例えばWindowsのタスクスケジューラなどに仕込めば、自動的かつ定期的にレポートをローカルディスクに保存しておくことが可能になるので、運用の簡素化につなげることができるのではないかと思います。


コメント

このブログの人気の投稿

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に先ほどテキストエディタで開い