SCIM2Client - スコープ指定
SCIM2Client API は、クロスドメイン ID 管理システム (SCIM) プロバイダー (サーバーロール) を呼び出して、サービスプロバイダー (SP) 内のデータを作成、更新、または削除するメソッドを提供します。
SCIM は、クライアントとサーバーのロールを定義する REST および JSON ベースのプロトコルです。クライアントは通常、ユーザー ID の堅牢なディレクトリを含む ID プロバイダー (IDP) Oktaです。SP は通常、Box や Slack などのSaaSアプリケーションであり、これらの ID からの情報のサブセットを必要とします。IDP で作成、更新、削除などの ID の変更が行われると、SCIM プロトコルに従って自動的に SP に同期されます。
次の画像は、サービスプロバイダーデータを操作するための一般的な API 呼び出しフローを示しています。
この API は sn_auth 名前空間で実行され、API にアクセスするには SCIM v2 - ServiceNow クロスドメイン ID 管理クライアント (com.snc.integration.scim2.client) プラグインをインストールする必要があります。
各 SCIM メソッド呼び出しの結果は、SCIM クライアントログ [sys_scim_client_logs] テーブルにあります。
SCIM の詳細については、「 クロスドメイン ID 管理システム (SCIM)」を参照してください。
SCIM2Client - executeDelete (文字列プロバイダー、文字列 resourceName、文字列 providerResourceId)
指定されたリソースを外部サービスプロバイダーシステムから削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| プロバイダー | 文字列 | 必須。構成された SCIM サービスプロバイダーの名前。サービスプロバイダー名は、SCIM プロバイダー [sys_scim_provider] テーブルの名前フィールドで定義されます。 |
| resourceName | 文字列 | 必須。ユーザーやグループなどのリソースタイプの名前。 テーブル:SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルの [resource_name] フィールド。 |
| providerResourceId | 文字列 | 必須。外部サービスプロバイダーシステム上の関連リソースの一意の識別子。 |
| タイプ | 説明 |
|---|---|
| メッセージ | statusが「成功」の場合、エンドポイントは REST SCIM API で定義された応答本文を返します。 データタイプ:文字列 |
| ステータス | 要求のステータス。 可能な値:
データタイプ:文字列 |
次の例は、SNOW プロバイダーシステムでユーザーリソースを削除する方法を示しています。
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.executeDelete('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
出力:
// Example of a successful response
{
"status":"SUCCESS",
"message":null
}
// Example of a failed response
{
"status":"FAILURE",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:api:messages:2.0:Error\"
],
\"status\":\"404\",
\"detail\":\"Invalid user id 3985e598876989103fa711f83cbb35ae1\"
}"
}
SCIM2Client - executeGet (文字列プロバイダー、文字列 resourceName、文字列 queryParams)
指定された外部プロバイダーシステムから、合格した基準に一致するすべてのリソースを返します。
この情報は、対応する SCIM サービスプロバイダー API を呼び出すために使用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| プロバイダー | 文字列 | 必須。構成された SCIM サービスプロバイダーの名前。サービスプロバイダー名は、SCIM プロバイダー [sys_scim_provider] テーブルの名前フィールドで定義されます。 |
| resourceName | 文字列 | 必須。ユーザーやグループなどのリソースタイプの名前。 テーブル:SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルの [resource_name] フィールド。 |
| queryParams | 文字列 | 必須。外部 SCIM サービスプロバイダーエンドポイントに渡される SCIM 準拠のクエリパラメーター。 使用可能なクエリーパラメーターとそれに関連する形式の詳細については、インターネットエンジニアリングタスクフォースのドキュメントの次のセクションを参照してください。 クロスドメイン ID 管理システム:プロトコル |
| タイプ | 説明 |
|---|---|
| メッセージ | statusが「成功」の場合、エンドポイントは REST SCIM API で定義された応答本文を返します。 データタイプ:文字列 |
| ステータス | 要求のステータス。 可能な値:
データタイプ:文字列 |
次の例は、仕事用メールに lucius.bagnoli が含まれている snow テストサービスプロバイダーから利用可能なすべてのユーザーを取得する方法を示しています。
var scimClient = new sn_auth.SCIM2Client();
var queryParams = {};
queryParams['filter'] = 'emails[type eq \"work\" and value co \"lucius.bagnoli\"]';
var response = scimClient.executeGet('SCIM Provider Demo','User', queryParams);
gs.info('response for get with filter: ' + response);
応答:
//Example of a successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:api:messages:2.0:ListResponse\"
],
\"totalResults\":647,
\"Resources\":[
{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"005d500b536073005e0addeeff7b12f4\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2019-04-05T21:09:12Z\",
\"lastModified\":\"2021-10-10T19:38:36Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/005d500b536073005e0addeeff7b12f4\"
},
\"userName\":\"survey.user\",
\"name\":{
\"familyName\":\"user\",
\"givenName\":\"survey\"
},
\"displayName\":\"survey user\",
\"active\":true,
\"emails\":[
{
\"value\":\"survey.user@email.com\",
\"type\":\"work\"
}
]
},
{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"02826bf03710200044e0bfc8bcbe5d3f\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:49Z\",
\"lastModified\":\"2021-10-10T19:38:36Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/02826bf03710200044e0bfc8bcbe5d3f\"
},
\"userName\":\"lucius.bagnoli\",
\"name\":{
\"familyName\":\"Bagnoli\",
\"givenName\":\"Lucius\"
},
\"displayName\":\"Lucius Bagnoli\",
\"active\":true,
\"emails\":[
{
\"value\":\"lucius.bagnoli@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"gender\":\"Male\",
\"costCenter\":{
\"value\":\"91e8bbf43710200044e0bfc8bcbe5daa\",
\"name\":\"Customer Support\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/91e8bbf43710200044e0bfc8bcbe5daa\"
},
\"company\":{
\"value\":\"81fd65ecac1d55eb42a426568fc87a63\",
\"name\":\"ACME Japan\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/81fd65ecac1d55eb42a426568fc87a63\"
},
\"department\":{
\"value\":\"5d7f17f03710200044e0bfc8bcbe5d43\",
\"name\":\"Customer Support\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/5d7f17f03710200044e0bfc8bcbe5d43\"
},
\"manager\":{
\"value\":\"02826bf03710200044e0bfc8bcbe5d88\",
\"displayName\":\"Billie Cowley\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Users/02826bf03710200044e0bfc8bcbe5d88\"
},
\"location\":{
\"value\":\"0002c0a93790200044e0bfc8bcbe5df5\",
\"name\":\"2-10-1 Yurakucho, Chiyoda-ku, Tokyo\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/0002c0a93790200044e0bfc8bcbe5df5\"
}
}
}
],
\"startIndex\":1,
\"itemsPerPage\":2}"}
// Example of a failure response
{
"status":"FAILURE",
"message":"SCIM Provider rest message is not configured properly"
}
SCIM2Client - executeGetById (文字列プロバイダー、文字列 resourceName、文字列 providerResourceId、 Map<String、文字列> queryParams)
指定された一意のリソース ID を持つ外部プロバイダーシステムからリソースを返します。
この情報は、対応する SCIM サービスプロバイダー API を呼び出すために使用されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| プロバイダー | 文字列 | 必須。構成された SCIM サービスプロバイダーの名前。サービスプロバイダー名は、SCIM プロバイダー [sys_scim_provider] テーブルの名前フィールドで定義されます。 |
| providerResourceId | 文字列 | 必須。外部サービスプロバイダーシステム上の関連リソースの一意の識別子。 |
| queryParams | 文字列 | 必須。外部 SCIM サービスプロバイダーエンドポイントに渡される SCIM 準拠のクエリパラメーター。 使用可能なクエリーパラメーターとそれに関連する形式の詳細については、インターネットエンジニアリングタスクフォースのドキュメントの次のセクションを参照してください。 クロスドメイン ID 管理システム:プロトコル |
| タイプ | 説明 |
|---|---|
| メッセージ | statusが「成功」の場合、エンドポイントは REST SCIM API で定義された応答本文を返します。 データタイプ:文字列 |
| ステータス | 要求のステータス。 可能な値:
データタイプ:文字列 |
この例では、外部プロバイダーシステムの「snow test」から指定されたリソースを取得する方法を示します。
var scimClient = new sn_auth.SCIM2Client();
var queryParams = {};
var response = scimClient.executeGetById('snow test','User', 'f282abf03710200044e0bfc8bcbe5d12', queryParams);
gs.info('response for simple getById: ' + response);
出力:
// Example of a successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"f282abf03710200044e0bfc8bcbe5d12\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:53Z\",
\"lastModified\":\"2021-10-10T19:38:37Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/f282abf03710200044e0bfc8bcbe5d12\"
},
\"userName\":\"tia.neumaier\",
\"name\":{
\"givenName\":\"Tia\"
},
\"displayName\":\"Tia Neumaier\",
\"active\":true,
\"emails\":[
{
\"value\":\"tia.neumaier@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"costCenter\":{
\"value\":\"7fb1cc99c0a80a6d30c04574d14c0acf\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/7fb1cc99c0a80a6d30c04574d14c0acf\"
},
\"company\":{
\"value\":\"227cdfb03710200044e0bfc8bcbe5d6b\",
\"name\":\"ACME South America\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/227cdfb03710200044e0bfc8bcbe5d6b\"
},
\"department\":{
\"value\":\"221db0edc611228401760aec06c9d929\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/221db0edc611228401760aec06c9d929\"
},
\"location\":{
\"value\":\"25b4c23b0a0a0bb30054836629537509\",
\"name\":\"Carretera Cancun-Chetumal KM 22, Cancun\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/25b4c23b0a0a0bb30054836629537509\"
}
}
}"
}
// Example of a failed response
{
"status":"FAILURE",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:api:messages:2.0:Error\"
],
\"status\":\"404\",
\"detail\":\"User not found f282abf03710200044e0bfc8bcbe5d121\"
}"
}
SCIM2Client - プロビジョニング (文字列プロバイダー、文字列 resourceName、文字列 resourceId)
指定されたsys_idの外部サービスプロバイダーシステムでリソースを作成または更新します。
たとえば、 ServiceNow インスタンスでユーザーを作成または更新する場合、このメソッドを使用して、外部サービスプロバイダーシステムで同じリソースを作成または更新できます。SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルでマッピングされているフィールドのみを、対応するリソースで作成または更新できます。
プロバイダーリソースマッピングの詳細については、「 SCIM プロバイダーリソースマッピングの作成」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| プロバイダー | 文字列 | 必須。構成された 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] フィールド。 |
| タイプ | 説明 |
|---|---|
| メッセージ | statusが「成功」の場合、エンドポイントは REST SCIM API で定義された応答本文を返します。 データタイプ:文字列 |
| ステータス | 要求のステータス。 可能な値:
データタイプ:文字列 |
次の例は、Snow プロバイダーでユーザーをプロビジョニングする方法を示しています。
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provision('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
出力:
// Example of successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"f282abf03710200044e0bfc8bcbe5d12\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:53Z\",
\"lastModified\":\"2021-10-10T19:38:37Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/f282abf03710200044e0bfc8bcbe5d12\"
},
\"userName\":\"tia.neumaier\",
\"name\":{
\"familyName\":\"Neumaier\",
\"givenName\":\"Tia\"
},
\"displayName\":\"Tia Neumaier\",
\"active\":true,
\"emails\":[
{
\"value\":\"tia.neumaier@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"gender\":\"Female\",
\"costCenter\":{
\"value\":\"7fb1cc99c0a80a6d30c04574d14c0acf\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/7fb1cc99c0a80a6d30c04574d14c0acf\"
},
\"company\":{
\"value\":\"227cdfb03710200044e0bfc8bcbe5d6b\",
\"name\":\"ACME South America\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/227cdfb03710200044e0bfc8bcbe5d6b\"
},
\"department\":{
\"value\":\"221db0edc611228401760aec06c9d929\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/221db0edc611228401760aec06c9d929\"
},
\"location\":{
\"value\":\"25b4c23b0a0a0bb30054836629537509\",
\"name\":\"Carretera Cancun-Chetumal KM 22, Cancun\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/25b4c23b0a0a0bb30054836629537509\"
}
}
}"
}
// Example of failure response
{
"status":"FAILURE",
"message":"SCIM client attribute or provider resource mapping is not configured properly ,
No provider resource mapping id found for provider name: SNOW Provider and resource name: User"
}
SCIM2Client - provisionNew (文字列プロバイダー、文字列 resourceName、文字列 resourceId)
指定されたsys_idの外部サービスプロバイダーシステムに新しいリソースを作成します。
たとえば、 ServiceNow インスタンスで新しいユーザーを作成する場合、この方法を使用して外部サービスプロバイダーシステム上に同じリソースを作成できます。SCIM プロバイダーリソースマッピング [sys_scim_provider_resource_mapping] テーブルでマッピングされているフィールドのみを、対応する外部サービスプロバイダーシステムに作成できます。リソースが外部サービスプロバイダーシステムに既に存在する場合は、エラー応答が返されます。
プロバイダーリソースマッピングの詳細については、「 SCIM プロバイダーリソースマッピングの作成」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| プロバイダー | 文字列 | 必須。構成された 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] フィールド。 |
| タイプ | 説明 |
|---|---|
| メッセージ | statusが「成功」の場合、エンドポイントは REST SCIM API で定義された応答本文を返します。 データタイプ:文字列 |
| ステータス | 要求のステータス。 可能な値:
データタイプ:文字列 |
次の例は、外部サービスプロバイダーである SNOW プロバイダーで新しいユーザーを作成する方法を示しています。
var scimClient = new sn_auth.SCIM2Client();
var response = scimClient.provisionNew('SNOW Provider','User','f282abf03710200044e0bfc8bcbe5d12');
gs.info('response: ' + response);
出力:
// Example of successful response
{
"status":"SUCCESS",
"message":"{
\"schemas\":[
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\",
\"urn:ietf:params:scim:schemas:core:2.0:User\"
],
\"id\":\"f282abf03710200044e0bfc8bcbe5d12\",
\"meta\":{
\"resourceType\":\"User\",
\"created\":\"2012-02-18T03:04:53Z\",
\"lastModified\":\"2021-10-10T19:38:37Z\",
\"location\":\"https://empiamsd1.service-now.com/api/now/scim/Users/f282abf03710200044e0bfc8bcbe5d12\"
},
\"userName\":\"tia.neumaier\",
\"name\":{
\"familyName\":\"Neumaier\",
\"givenName\":\"Tia\"
},
\"displayName\":\"Tia Neumaier\",
\"active\":true,
\"emails\":[
{
\"value\":\"tia.neumaier@example.com\",
\"type\":\"work\"
}
],
\"urn:ietf:params:scim:schemas:extension:servicenow:2.0:User\":{
\"gender\":\"Female\",
\"costCenter\":{
\"value\":\"7fb1cc99c0a80a6d30c04574d14c0acf\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/CostCenters/7fb1cc99c0a80a6d30c04574d14c0acf\"
},
\"company\":{
\"value\":\"227cdfb03710200044e0bfc8bcbe5d6b\",
\"name\":\"ACME South America\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Companies/227cdfb03710200044e0bfc8bcbe5d6b\"
},
\"department\":{
\"value\":\"221db0edc611228401760aec06c9d929\",
\"name\":\"Sales\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Departments/221db0edc611228401760aec06c9d929\"
},
\"location\":{
\"value\":\"25b4c23b0a0a0bb30054836629537509\",
\"name\":\"Carretera Cancun-Chetumal KM 22, Cancun\",
\"$ref\":\"https://empiamsd1.service-now.com/api/now/scim/Locations/25b4c23b0a0a0bb30054836629537509\"
}
}
}"
}
// Example of failure response
{
"status":"FAILURE",
"message":"SCIM client attribute or provider resource mapping is not configured properly ,
No provider resource mapping id found for provider name: SNOW Provider and resource name: User"
}