SCIM2ClientUtil - スコープ指定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:5分
  • SCIM2ClientUtil API は、外部プロバイダーシステムの一意の識別子を取得し、SCIM2Client API を呼び出すときにその情報を使用するためのユーティリティメソッドを提供します。

    この API は sn_auth 名前空間で実行されます。API にアクセスするには、SCIM v2 - ServiceNow Cross-domain Identity Management Client (com.snc.integration.scim2.client) プラグインがインストールされている必要があります。

    SCIM の詳細については、「 クロスドメイン ID 管理システム (SCIM)」を参照してください。

    SCIM2ClientUtil - getProviderIdByFilter(文字列 provider, 文字列 resourceName, 文字列 filter)

    目的のリソースを記述するフィルター式を使用して、ServiceNow インスタンス内の一意のリソース ID に対して、指定された外部プロバイダーシステムから指定されたリソースの一意の識別子を返します。

    この API は、外部プロバイダーシステムのリソース識別子が必要な SCIM フィールドに ServiceNow フィールドをマッピングする場合に便利です。このメソッドを呼び出す前に、SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルにあるシステム属性マップ内のリソースに対して一意のフィールドを定義する必要があります。

    プロバイダーリソースマッピングの詳細については、「 Create a SCIM Provider Resource Mapping」を参照してください。

    表 : 1. パラメーター
    名前 タイプ 説明
    provider 文字列 設定された SCIM サービスプロバイダーの名前。

    テーブル:SCIM プロバイダー [sys_scim_provider] テーブルの名前フィールド。

    resourceName 文字列 ユーザーやグループなどのリソースタイプの名前。

    テーブル:SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルの [resource_name] フィールド。

    フィルター 文字列 返される結果に適用するフィルター式。

    使用可能なフィルターパラメーターとその関連形式の詳細については、インターネットエンジニアリングタスクフォースのドキュメント「System for Cross-domain Identity Management: Protocol」を参照してください。

    https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.2

    表 : 2. 返される内容
    タイプ 説明
    文字列 外部サービスプロバイダーによって使用されるリソースの一意の識別子。

    情報のフェッチ中に問題が発生した場合は例外をスローします。

    次の例は、'username eq "abel.tuter"' というフィルターを使用してユーザーのリソース識別子を取得する方法を示しています。

    var response = sn_auth.SCIM2ClientUtil.getProviderIdByFilter('SNOW Provider','User','username eq "abel.tuter"'); 
    gs.info('response: ' + response);

    出力:

    
     "005d500b536073005e0addeeff7b12f4"
    

    次の例は、'userName eq "' + manager + '"' というフィルターを用いてマネージャーのリソース識別子を取得するスクリプトを使用する方法を示しています。

    (function getValue(resourceGR) {
      try {
        var manager = resourceGR.manager.user_name;
        return sn_auth.SCIM2ClientUtil.getProviderIdByFilter('SCIM Provider Demo', 'User', 'userName eq "' + manager + '"');
      } catch (e) {
        gs.error('Unable to get attribute value using script' + e);
        // Handle failure scenario here
      }
    })(resourceGR);

    出力:

    
      "125d500b535973005e0addeeff8c12a2"

    SCIM2ClientUtil - getProviderIdByResourceId(文字列 provider, 文字列 resourceName, 文字列 resourceId)

    ServiceNow インスタンス内の一意のリソース ID に対して、指定された外部プロバイダーシステムから指定されたリソースの一意の識別子を返します。

    この API は、外部プロバイダーシステムのリソース識別子が必要な SCIM フィールドに ServiceNow フィールドをマッピングする場合に便利です。このメソッドを呼び出す前に、SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルにあるシステム属性マップ内のリソースに対して一意のフィールドを定義する必要があります。

    プロバイダーリソースマッピングの詳細については、「 Create a SCIM Provider Resource Mapping」を参照してください。

    表 : 3. パラメーター
    名前 タイプ 説明
    provider 文字列 設定された SCIM サービスプロバイダーの名前。

    テーブル:SCIM プロバイダー [sys_scim_provider] テーブルの名前フィールド。

    resourceName 文字列 ユーザーやグループなどのリソースタイプの名前。

    テーブル:SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルの [resource_name] フィールド。

    resourceId 文字列 ServiceNow インスタンス (クライアント) に保存されているリソースの sys_id。

    テーブル:SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルの [primary_table] フィールド。

    表 : 4. 戻り値
    タイプ 説明
    文字列 外部サービスプロバイダーによって使用されるリソースの一意の識別子。

    情報のフェッチ中に問題が発生した場合は例外をスローします。

    次の例は、sys_id が f282abf03710200044e0bfc8bcbe5d12 のユーザーのリソース識別子を取得する方法を示しています。

    var response = sn_auth.SCIM2ClientUtil.getProviderIdByResourceId('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12'); 
    gs.info('response: ' + response);

    出力:

    
      "005d500b536073005e0addeeff7b12f4"