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で確認可能です。
今回のレポート取得は、APIを使用しない通常の方法であれば、①管理コンソールにログインし、②対象のレポートの画面を開いて、③レポートの生成を実行し、④生成されたレポートをダウンロードする、というように何ステップか踏まないといけません。
今回使ったようなスクリプトを、例えばWindowsのタスクスケジューラなどに仕込めば、自動的かつ定期的にレポートをローカルディスクに保存しておくことが可能になるので、運用の簡素化につなげることができるのではないかと思います。
コメント
コメントを投稿