SCIM2ClientUtil - スコープ指定
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] テーブルにあるシステム属性マップ内のリソースに対して一意のフィールドを定義する必要があります。
プロバイダーリソースマッピングの詳細については、「 SCIM プロバイダーリソースマッピングの作成」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| provider | 文字列 | 必須です。設定された SCIM サービスプロバイダーの名前。サービスプロバイダー名は、SCIM プロバイダー [sys_scim_provider] テーブルの名前フィールドで定義されます。 |
| resourceName | 文字列 | 必須です。ユーザーやグループなどのリソースタイプの名前。この値は、SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルの resource_name フィールドにあります。 |
| filter | 文字列 | 必須です。返される結果に適用するフィルター式。 使用可能なフィルターパラメーターとその関連形式の詳細については、インターネットエンジニアリングタスクフォースのドキュメント「System for Cross-domain Identity Management: Protocol」を参照してください。 https://datatracker.ietf.org/doc/html/rfc7644#section-3.4.2.2 |
| タイプ | 説明 |
|---|---|
| 文字列 | 外部サービスプロバイダーによって使用されるリソースの一意の識別子。 情報のフェッチ中に問題が発生した場合は例外をスローします。 |
次の例は、'username eq "abel.tuter"' というフィルターを使用してユーザーのリソース識別子を取得する方法を示しています。
var response = sn_auth.SCIM2ClientUtil.getProviderIdByFilter('SNOW Provider','User','username eq "abel.tuter"');
gs.info('response: ' + response);
応答:
// Example of a successful 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);
応答:
// Example of a successful response
{
"125d500b535973005e0addeeff8c12a2"
}
SCIM2ClientUtil - getProviderIdByResourceId(文字列 provider, 文字列 resourceName, 文字列 resourceId)
ServiceNow インスタンス内の一意のリソース ID に対して、指定された外部プロバイダーシステムから指定されたリソースの一意の識別子を返します。
この API は、外部プロバイダーシステムのリソース識別子が必要な SCIM フィールドに ServiceNow フィールドをマッピングする場合に便利です。このメソッドを呼び出す前に、SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルにあるシステム属性マップ内のリソースに対して一意のフィールドを定義する必要があります。
プロバイダーリソースマッピングの詳細については、「 SCIM プロバイダーリソースマッピングの作成」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| 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 フィールドにあります。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 外部サービスプロバイダーによって使用されるリソースの一意の識別子。 情報のフェッチ中に問題が発生した場合は例外をスローします。 |
次の例は、sys_id が f282abf03710200044e0bfc8bcbe5d12 のユーザーのリソース識別子を取得する方法を示しています。
var response = sn_auth.SCIM2ClientUtil.getProviderIdByResourceId('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
応答:
// Example of a successful response
{
"005d500b536073005e0addeeff7b12f4"
}