Workspace ONE Intelligence および ServiceNow サービスを使用して、アプリケーションのインストールを要求し、承認します。ServiceNow での構成を開始し、Workspace ONE Intelligence で ServiceNow 接続に情報を追加し、Workspace ONE UEM でのアプリ割り当ての編集で終了します。

前提条件

アプリ承認を使用する前に、リストされた統合、システム、および構成された設定を用意します。

手順

  1. 受信するアプリ要求を処理するように 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>"
        }
      }
    }
    1. ServiceNow にログインし、Scripted REST API を検索します。
    2. [Scripted REST API] を追加します。
    3. [名前] テキスト ボックスに、Workspace ONE App Approval などわかりやすい名前を入力します。
    4. appapproval のような [API ID] を入力し、[API の名前空間]を記録します。これは、このプロセスの後で Workspace ONE Intelligence に入力するためです。

    5. [リソース] セクションに移動し、[リソース] を追加します。
    6. Request として [リソース名] を入力します。
    7. [HTTP メソッド] には [POST] を使用します。
    8. [相対パス]/request であることを確認します。
      リソース パスは /api/<namespace>/appapproval/request のように表示されます。
      重要: パスがこの形式でない場合、要求が失敗します。解決するには、Scripted REST API とリソースに正しい名前があることを確認します。
    9. 環境に合わせてスクリプトを構成します。

      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);
  2. ServiceNow のテーブルを使用して、要求チケットにカスタム フィールドを追加します。カスタム フィールドは、Workspace ONE Intelligence に送信する承認および拒否 API 要求をコンパイルするのに役立ちます。
    1. ServiceNow ナビゲーション バーでテーブルを検索し、[システム定義] > [テーブル] の順に選択します。
    2. [テーブル名] sc_request を検索し、開いて列の詳細を表示します。
      テーブル ラベルで検索する場合、テーブルのラベルは 要求 です。
    3. 列を追加します。
      • システムが 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
      注: 既定の [列名] を変更した場合は、更新された列名を使用するようにスクリプトを更新します。
    4. [更新] を選択し、テーブルを保存します。
    5. 必要に応じて、[システム UI][フォーム セクション] を使用して、ユーザー インターフェイスの列および値を非表示にすることもできます。列および値を非表示にすると、それらは API 要求でのみ使用されるように設定されます。
  3. ServiceNow で、[フロー デザイナー] > [新規] > [アクション] の順に移動して、ワークフローのアクションを構成します。
    ServiceNow ワークフローにより、承認または拒否応答が Workspace ONE Intelligence に送信されます。
    1. [アクションのプロパティ] で、名前とメタデータを入力します。

    2. アクションの [入力] を定義します。
      • Request ID
      • Device ID
      • Updated By
      • Notes
      • Updated At
      • Callback URL
      • Approval

    3. [アクションのアウトライン] セクションのプラス記号 ([+]) を選択して、[スクリプト ステップ] を追加します。次に、[ユーティリティ] > [スクリプト ステップ] の順に移動します。スクリプト ステップは、API 呼び出しを準備するために承認状態文字列を大文字に変換します。
      1. 入力変数を approval_status として定義し、承認値にドラッグします。
      2. 承認状態を大文字に変換するこのサンプル コードを追加します。
        (function execute(inputs, outputs) {
        var  approval_lc = inputs.approval_status;
         
        outputs.ApprovalStatus = approval_lc.toUpperCase();
        })(inputs, outputs);
      3. 出力変数を ApprovalStatus として定義します。

    4. アクションに [REST ステップ] を追加します。
      1. Base URL 値として Callback URL 変数を使用します。
      2. [HTTP メソッド] として POST を使用します。
      3. ヘッダー Content-Type =application/json を追加します。
      4. Request TypeText として定義します。
      5. サンプル コードのような [要求本文] ペイロードを入力します。サンプル コード内の値は使用するデータ変数に置き換えてください。
        {
        "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"
            }
        }

    5. アクションを保存します。
  4. ServiceNow で、組織の承認ポリシーに応じて、承認アクションを含むワークフローを作成します。
    1. [フロー デザイナー] で、[新規] を選択します。
    2. [フロー][アプリケーション][別のユーザーとして実行] のプロパティを含むメタデータを入力します。

    3. トリガを作成するために、[更新済み] を使用してチケットの状態の変更を見つけます。

    4. [テーブル] として [要求 [sc_request]] を選択します。
    5. [条件][[承認 - 次のいずれか - 承認済み、拒否] および [UEM コールバック URL - が空でない]] として定義します。
    6. [トリガの実行][1 回] を選択します。

    7. [AppApproval] アクションを追加します。

    8. 要求テーブルから、必要なアクションの入力と一致する適切な値を追加します。

    9. ワークフローを保存し、アクティブ化します。
  5. Workspace ONE Intelligence で、Scripted REST API の名前空間を追加します。
    1. Workspace ONE Intelligence で、[設定] > [統合] > [ServiceNow] の順に移動します。
    2. 接続を編集して、[API の名前空間] を含めます。
      この値は、ServiceNow に Scripted REST API を追加しているときに記録したものです。

  6. 承認を要求するために、Workspace ONE UEM でアプリ割り当てを編集します。
    承認を要求するようにアプリ割り当てを編集すると、ユーザーは、 Workspace ONE Intelligent Hub でアプリを Windows 10 デバイスにインストールすることを要求できます。
    1. Workspace ONE UEM Console で、適切なアプリに移動し、割り当てを編集します。
    2. [インストールするには承認が必要] を有効にします。