Workspace ONE Intelligence および ServiceNow サービスを使用して、アプリケーションのインストールを要求し、承認します。ServiceNow での構成を開始し、Workspace ONE Intelligence で ServiceNow 接続に情報を追加し、Workspace ONE UEM でのアプリ割り当ての編集で終了します。
前提条件
アプリ承認を使用する前に、リストされた統合、システム、および構成された設定を用意します。
- Workspace ONE UEM v1910 以降を使用します。
- Workspace ONE Intelligence で Workspace ONE UEM の登録 を行います。
- ServiceNow インスタンスを ServiceNow Integration Hub プラグインとともに用意し、Workspace ONE Intelligence で ServiceNow の登録 を行います。
- Hub サービスを使用し、アプリ カタログとして Intelligent Hub アプリを使用します。
- Windows 10 デバイスを使用します。
- Workspace ONE UEM で管理されているネイティブ アプリ(内部、パブリック、および購入済み)を使用します。
- Workspace ONE UEM でのアプリ割り当てについて知っておきます。アプリ割り当てについては、「アプリケーションに割り当てと除外を追加する」を参照してください。
手順
- 受信するアプリ要求を処理するように ServiceNow を設定します。これにより、インスタンスおよび承認ポリシーをカスタマイズできるようになります。このプロセスでは、ServiceNow の Scripted REST API 機能を使用します。
要求プロセスを開始するために、 Workspace ONE Intelligence は、サンプル コードのような要求を ServiceNow に送信します。要求には、ユーザー、デバイス、およびインストールが要求されたアプリケーションに関する詳細が含まれます。
{ "RequestId": "bffb4469-56fb-4141-9ab0-0897f65143ba", "RequestFor": { "UserId": "15", "UserAttributes": { "user_name": "username", "last_name": "user", "first_name": "name", "email": "username@example.com" } }, "Domain": "${domain}", "DeviceId": 123, "DeviceProperties": { "name": "Device Name", "device_udid": "F11C43E8307092418D7D5B0D9B48F235", "platform": "Windows 10" }, "Notes": "Notes", "CatalogItem": { "Id": "267", "Name": "App Name", "Categories": null, "Properties": { "package_id": "{12345A78-40C1-2702-0000-000004000000}", "version": "9.20.0", "platform": "WinRT" } }, "DueDate": 1568989813956, "Links": { "ApprovalNotify": { "Url": "<CallbackURL>" } } }
- ServiceNow にログインし、Scripted REST API を検索します。
- [Scripted REST API] を追加します。
- [名前] テキスト ボックスに、Workspace ONE App Approval などわかりやすい名前を入力します。
- appapproval のような [API ID] を入力し、[API の名前空間]を記録します。これは、このプロセスの後で Workspace ONE Intelligence に入力するためです。
- [リソース] セクションに移動し、[リソース] を追加します。
- Request として [リソース名] を入力します。
- [HTTP メソッド] には [POST] を使用します。
- [相対パス] が /request であることを確認します。
リソース パスは /api/<namespace>/appapproval/request のように表示されます。重要: パスがこの形式でない場合、要求が失敗します。解決するには、Scripted REST API とリソースに正しい名前があることを確認します。
- 環境に合わせてスクリプトを構成します。
ServiceNow 要求の一部として値を保存します。値を保存すると、要求チケットが承認または拒否された後に送信 API 要求がコンパイルされます。
サンプル コードを目的の展開用にカスタマイズできます。要求内でカート アイテムを作成することも、ユーザー名をシステムの SYSID にリンクすることもできます。
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) { var RequestID = request.body.data.RequestId; var CallbackURL = request.body.data.Links.ApprovalNotify.Url; var DeviceID = request.body.data.DeviceId; var Notes = request.body.data.Notes; var AppName = request.body.data.CatalogItem.Name; var UserID = request.body.data.RequestFor.UserId; var UserName = request.body.data.RequestFor.UserAttributes.user_name; var FirstName = request.body.data.RequestFor.UserAttributes.first_name; var LastName = request.body.data.RequestFor.UserAttributes.last_name; gs.info("Request Recieved"); var create = new GlideRecord('sc_request'); create.initialize(); create.setValue('short_description',"Request for Installation of " + AppName); create.setValue('description',FirstName + " " + LastName + " Requests Installation of " + AppName); create.setValue('u_uem_callback_url',CallbackURL); create.setValue('u_uem_notes',Notes); create.setValue('u_uem_device_id',DeviceID); create.setValue('u_uem_request_id',RequestID); create.setValue('u_uem_user_id',UserID); create.setValue('u_requesting_user',UserName); create.insert(); response.setStatus(200); })(request, response);
- ServiceNow のテーブルを使用して、要求チケットにカスタム フィールドを追加します。カスタム フィールドは、Workspace ONE Intelligence に送信する承認および拒否 API 要求をコンパイルするのに役立ちます。
- ServiceNow ナビゲーション バーでテーブルを検索し、[システム定義] > [テーブル] の順に選択します。
- [テーブル名] sc_request を検索し、開いて列の詳細を表示します。
テーブル ラベルで検索する場合、テーブルのラベルは 要求 です。
- 列を追加します。
- システムが Workspace ONE Intelligence に返す必要な値を追加し、API 要求でそれぞれの値を追加します。
- ApprovalNotify.URL = UEM コールバック URL
- DeviceId = UEM デバイス ID
- RequestId = UEM 要求 ID
- オプションの値を追加します。
- UserId = UEM ユーザー ID
- user_name = 要求しているユーザー
- Notes = UEM メモ
タイプ 列ラベル 列名 最大長 String UEM コールバック URL u_uem_callback_url 2048 整数 UEM デバイス ID u_uem_device_id 該当なし String UEM 要求 ID u_uem_request_id 40 整数 UEM ユーザー ID u_uem_user_id 該当なし String 要求しているユーザー u_requesting_user 40 String UEM Notes u_uem_notes 4000 注: 既定の [列名] を変更した場合は、更新された列名を使用するようにスクリプトを更新します。 - システムが Workspace ONE Intelligence に返す必要な値を追加し、API 要求でそれぞれの値を追加します。
- [更新] を選択し、テーブルを保存します。
- 必要に応じて、[システム UI] の [フォーム セクション] を使用して、ユーザー インターフェイスの列および値を非表示にすることもできます。列および値を非表示にすると、それらは API 要求でのみ使用されるように設定されます。
- ServiceNow で、[フロー デザイナー] > [新規] > [アクション] の順に移動して、ワークフローのアクションを構成します。
ServiceNow ワークフローにより、承認または拒否応答が Workspace ONE Intelligence に送信されます。
- [アクションのプロパティ] で、名前とメタデータを入力します。
- アクションの [入力] を定義します。
- Request ID
- Device ID
- Updated By
- Notes
- Updated At
- Callback URL
- Approval
- [アクションのアウトライン] セクションのプラス記号 ([+]) を選択して、[スクリプト ステップ] を追加します。次に、[ユーティリティ] > [スクリプト ステップ] の順に移動します。スクリプト ステップは、API 呼び出しを準備するために承認状態文字列を大文字に変換します。
- 入力変数を
approval_status
として定義し、承認値にドラッグします。 - 承認状態を大文字に変換するこのサンプル コードを追加します。
(function execute(inputs, outputs) { var approval_lc = inputs.approval_status; outputs.ApprovalStatus = approval_lc.toUpperCase(); })(inputs, outputs);
- 出力変数を
ApprovalStatus
として定義します。
- 入力変数を
- アクションに [REST ステップ] を追加します。
- Base URL 値として Callback URL 変数を使用します。
- [HTTP メソッド] として POST を使用します。
- ヘッダー Content-Type =application/json を追加します。
- Request Type を Text として定義します。
- サンプル コードのような [要求本文] ペイロードを入力します。サンプル コード内の値は使用するデータ変数に置き換えてください。
{ "data":{ "request_id": "action-Request ID", "device_id": "action-Device ID", "approval_status": "step-Script step-ApprovalStatus", "updated_by": "action-Updated By", "notes" : "action-Notes", "updated_at" : "action-Updated At" } }
- アクションを保存します。
- [アクションのプロパティ] で、名前とメタデータを入力します。
- ServiceNow で、組織の承認ポリシーに応じて、承認アクションを含むワークフローを作成します。
- [フロー デザイナー] で、[新規] を選択します。
- [フロー]、[アプリケーション]、[別のユーザーとして実行] のプロパティを含むメタデータを入力します。
- トリガを作成するために、[更新済み] を使用してチケットの状態の変更を見つけます。
- [テーブル] として [要求 [sc_request]] を選択します。
- [条件] を [[承認 - 次のいずれか - 承認済み、拒否] および [UEM コールバック URL - が空でない]] として定義します。
- [トリガの実行] に [1 回] を選択します。
- [AppApproval] アクションを追加します。
- 要求テーブルから、必要なアクションの入力と一致する適切な値を追加します。
- ワークフローを保存し、アクティブ化します。
- Workspace ONE Intelligence で、Scripted REST API の名前空間を追加します。
- Workspace ONE Intelligence で、[設定] > [統合] > [ServiceNow] の順に移動します。
- 接続を編集して、[API の名前空間] を含めます。
この値は、ServiceNow に Scripted REST API を追加しているときに記録したものです。
- 承認を要求するために、Workspace ONE UEM でアプリ割り当てを編集します。
承認を要求するようにアプリ割り当てを編集すると、ユーザーは、 Workspace ONE Intelligent Hub でアプリを Windows 10 デバイスにインストールすることを要求できます。
- Workspace ONE UEM Console で、適切なアプリに移動し、割り当てを編集します。
- [インストールするには承認が必要] を有効にします。