オンプレミスプロビジョニングのSCIMコネクターをテストする
Oktaでは、Okta Provisioning Connector SDKで構築されたSCIMコネクター、または任意のカスタムSCIMコネクターやSCIMサーバーをテストするためのユーティリティを提供しています。コネクターをテストするためにOktaやOkta Provisioning Agentに接続する必要はありません。
テストユーティリティはOkta Provisioning Connector SDKパッケージの一部で、Oktaダウンロードページで入手できます。Okta Provisioning Connector SDKパッケージを入手するには、Okta Admin Consoleにサインインし、[Settings(設定)]>[Download(ダウンロード)]を選択します。次に、Okta Provisioning Connector SDKの[Download(ダウンロード)]をクリックします。
テストユーティリティは、Okta Provisioning Connector SDKの「tester(テスター)」フォルダ内のscim-sdk-test.jarに含まれています。テストユーティリティの完全なドキュメントはtester/README.TXTファイルにあります。テストの主な目的は、SCIMコネクターまたはSCIMサーバーからの応答を検証することです。
テストデータ
テストデータは、tester/dataディレクトリの .jsonファイルにあります。これらのファイルを使用または変更して、コネクターをテストすることができます。テストはすべて、入力データが有効であることを前提としています。サンプルデータファイルの編集や作成は慎重に行ってください。
テストの実行
scim-sdk-tests.jarファイルを使用して、テストを実行します。すべての使用可能な引数を確認するには、引数なしでjarを実行します。
java -jar scim-sdk-tests.jar
呼び出し、応答、すべてのオプション、サンプル結果を含む完全なテスト情報は、tester/README.TXTファイルに表示されます。以下のコードは、非常に典型的なテスト呼び出しを示しています。最小限の数のパラメーターが渡されます。
- url:SCIMサーバーのベースURL
- メソッド:テストするOKTAプロビジョニングメソッド
- ファイル:入力データファイル
サンプルテスト呼び出し
以下は、テスト呼び出しのサンプルです。
java -jar scim-sdk-tests.jar -url http://localhost:8080 -method createNewUser -file data/createNewUser.json
テスターの使用
すべての使用可能な引数を確認するには、引数なしでjarを実行します。
java -jar scim-sdk-tests.jar
usage: scim-sdk-tests
渡すことのできる引数の詳細を以下の表に示します。
引数 | 説明 |
-arg <propertyName=propertyValue> | メソッドが使用する任意のプロパティ名と値のペアを渡します。 |
-expectResults <true|false> | 現在のメソッドでコネクターから結果が戻ってくるかどうか、テストの期待値を設定します。これは、checkUserExists、downloadUsers、downloadGroups、importUserProfileの各メソッドで使用できます。 |
-file <fileName> | 現在のメソッドの入力に使用するデータファイルです。サンプルファイルは、テストユーティリティパッケージのdataディレクトリから提供されています。 |
-header <headerName=headerValue> | SCIMサーバーに送信したい追加のHTTPヘッダーです。例えば、「X-Internal-AuthHeader=secret」などのように指定します。 |
-method <methodName> |
createNewUser 送信されたHTTPリクエスト: GET /Users?filter=userName=myemail@domain.com&startIndex=1&count=100 POST /Users OktaコネクターSDKを使用して構築されたコネクターをテストする場合、テスターはUserオブジェクトを渡し、コネクターを使用して新しいユーザーを作成します。コネクターメソッドSCIMService.createUserをテストします。 createPendingUser 送信されたHttpリクエスト: POST /Users OktaコネクターSDKを使用して構築されたコネクターをテストする場合、テスターはUserオブジェクトを渡し、コネクターを使用して保留中のユーザーを作成します。コネクターメソッドSCIMService.createUserをテストします。 downloadUsers 送信されたHTTPリクエスト: GET /Users?startIndex=1&count=100 OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターはユーザーの全リストを返すようにコネクターに対してクエリを実行します。コネクターメソッドSCIMService.getUsers(フィルターなし)をテストします。 checkUserExists 送信されたHTTPリクエスト: /Users?filter=userName=myemai@domain.com&startIndex=1&count=100 OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは、特定のユーザーがすでに存在するかどうか、コネクターに対してクエリを実行します。これには次の追加プロパティ(userIdFieldNameとuserIdFieldValue)が必要です。コネクターメソッドSCIMService.getUsers(フィルター使用)をテストします。 importUserProfile 送信されたHTTPリクエスト: GET /Users/<Id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは、ユーザーのIDを渡して1人のユーザーを返すようにコネクターに対してクエリを実行します。idという追加のプロパティが必要です。コネクターメソッドSCIMService.getUserをテストします。 activateUser 送信されたHTTPリクエスト: PUT /Users/<id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは既存のユーザーをアクティベートするためにコネクターに対してクエリを実行します。コネクターメソッドSCIMService.updateUserをテストします。 deactivateUser 送信されたHTTPリクエスト PUT /Users/<id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは既存のユーザーをディアクティベートするためにコネクターに対してクエリを実行します。コネクターメソッドSCIMService.updateUserをテストします。 reactivateUser 送信されたHTTPリクエスト: PUT /Users/<id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは既存のユーザーをリアクティベートするためにコネクターに対してクエリを実行します。コネクターメソッドSCIMService.updateUserをテストします。 pushPasswordUpdate 送信されたHTTPリクエスト: PUT /Users/<id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは既存のユーザーのパスワードを更新するためにコネクターに対してクエリを実行します。コネクターメソッドSCIMService.updateUser pushProfileUpdateをテストします。Oktaは既存のユーザーのプロパティを更新するようにコネクターに要求します。コネクターメソッドSCIMService.updateUserをテストします。 deleteGroup 送信されたHTTPリクエスト: DELETE /Groups/<id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターはグループを削除するために、コネクターに対してクエリを実行します。コネクターメソッドSCIMService.deleteGroupをテストします。 updateGroup 送信されたHTTPリクエスト: PUT /Groups/<id> OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターはグループを更新するために、コネクターに対してクエリを実行します。コネクターメソッドSCIMService.updateGroupをテストします。 createGroup 送信されたHTTPリクエスト: POST /Groups OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターはグループを作成するために、コネクターに対してクエリを実行します。コネクターメソッドSCIMService.createGroupをテストします。 getGroupById 送信されたHTTPリクエスト: OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターはIDに基づいてグループを返すために、コネクターに対してクエリを実行します。コネクターメソッドSCIMService.getGroupをテストします。 downloadGroups 送信されたHTTPリクエスト: GET /Groups?startIndex=1&count=100 OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターはグループの全リストを返すようにコネクターに要求します。コネクターメソッドSCIMService.getGroupsをテストします。 getImplementedUserManagementCapabilities 送信されたHTTPリクエスト: GET /ServiceProviderConfigs OktaコネクターSDKで構築されたコネクターをテストしている場合、テスターは、コネクターが実装しているUserManagementCapabilitiesのリストを返すようにコネクターに要求します。コネクターメソッドSCIMService.getImplementedUserManagementCapabilitiesをテストします。 |
-url <url> | 使用するSCIMサーバーのURLです。Example:http://acme.com:8080 |
例
Oktaが提供するデフォルトの実装では、appnameがonprem_appであり、以下の例とdataフォルダ内の入力データファイルがApp Userカスタムスキーマのカスタムスキーマ名(urn:okta:onprem_app:1.0:user)を使用していることを想定しています。コネクターを実装する際には、正しいappnameを使用する必要があります。

createNewUserはコネクターを使用して新しいユーザーを作成するために、SCIM Userオブジェクトを渡します。コネクターSDKメソッドSCIMService.createUserをテストします。2つのサンプルデータファイルが用意されているので、それを使ってテストします。
以下のテストでは、createNewUser.jsonファイルで定義されたSCIMユーザーをSCIMコネクターに送信しています。コネクターから返されたユーザーに対して、基本的な検証がいくつか行われます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method createNewUser -file data/createNewUser.json
レスポンス:
[ 04-10-2013 13:23:01.258 ] [ INFO] - making POST request to http://localhost:8080/Users
[ 04-10-2013 13:23:01.449 ] [ INFO] - Okta will use the ID 103 to identify this User in the future.
[ 04-10-2013 13:23:01.450 ] [ INFO] - User returned from connector:
schemas: "urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0"
phoneNumbers:
value: "123-444-5555"
type: "mobile"
userName: "myemail@domain.com"
name:
familyName: "LastName"
givenName: "FirstName"
active: true
emails:
primary: true
value: "myemail@domain.com"
type: "primary"
primary: false
value: "mypersonalemail@domain.com"
type: "secondary"
password: "verySecure"
id: "103"
[ 04-10-2013 13:23:01.450 ] [ INFO] - OK!

createPendingUserはコネクターを使用して保留中のユーザーを作成するために、SCIM Userオブジェクトを渡します。コネクターSDKメソッドSCIMService.createUserをテストします。2つのサンプルデータファイルが用意されているので、それを使ってテストします。
createPendingUserは、すべてのユーザーのアクティブフィールドが「false」になることを除けば、createNewUserとほぼ同じです。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method createPendingUser -file data/createPendingUser-withCustomExtension.json

downloadUsersは、ユーザーの全リストを返すようにコネクターに要求します。SCIMService.getUsersコネクターメソッドにフィルターを渡さずにテストします。
以下のテストでは、SCIMコネクターにすべてのユーザーを求めるリクエストを行い、返されたユーザーはディスクにログ記録されます。ユーザーの複数のページが存在する場合、テストはコネクターに対して複数のリクエストを行う可能性があります。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method downloadUsers
レスポンス:
[ 04-10-2013 14:14:18.888 ] [ INFO] - making GET request to http://localhost:8080/Users?startIndex=1&count=100
[ 04-10-2013 14:14:19.003 ] [ INFO] - downloadUsers: 3 Users returned.
[ 04-10-2013 14:14:19.007 ] [ INFO] - downloadUsers: Users returned from connector logged to downloadUsers-20131004-141419.txt

checkUserExistsは、特定のユーザーがすでに存在するかどうかをコネクターに問い合わせます。SCIMService.getUsersコネクターメソッドにフィルターを渡してテストします。追加プロパティ(userIdFieldNameとuserIdFieldValue)が必要です。
以下のテストでは、提供されたプロパティを使用して、SCIMコネクターにリクエストを行います。このテストでは、SCIMコネクターが「userName myemail@domain.com」を持つユーザーを見つけられないことを想定しています。
出力は以下のようになります。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method checkUserExists -arg userIdFieldName=userName -arg userIdFieldValue=myemail@domain.com -expectResults false
レスポンス:
[ 03-10-2013 14:54:16.741 ] [ INFO] - making GET request to http://localhost:8080/Users?filter=userName%20eq%20%22myemail%40dom...
[ 03-10-2013 14:54:16.846 ] [ INFO] - checkUserExists: No users returned from server. This should be expected.
[ 03-10-2013 14:54:16.846 ] [ INFO] - OK!
使用状況
以下のコードを実行すると(-expectResults引数は除く)、テストが失敗します。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method checkUserExists -arg userIdFieldName=userName -arg userIdFieldValue=myemail@domain.com
レスポンス:
[ 03-10-2013 14:57:41.218 ] [ INFO] - making GET request to http://localhost:8080/Users?filter=userName%20eq%20%22myemail%40dom...
[ 03-10-2013 14:57:41.319 ] [ ERROR] - Expected results from checkUserExists but did not get anything.
コネクターがユーザーを見つけると、Oktaのデバッグ情報に加えて、ユーザーデータが出力されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method checkUserExists -arg userIdFieldName=id -arg userIdFieldValue=102
レスポンス:
[ 03-10-2013 15:01:14.095 ] [ INFO] - making GET request to http://localhost:8080/Users?filter=id%20eq%20%22102%22&startInd...
[ 03-10-2013 15:01:14.217 ] [ INFO] - checkUserExists: 1 users returned.
[ 03-10-2013 15:01:14.217 ] [ INFO] - checkUserExists: User returned from Connector:
schemas: "urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0", "urn:okta:onprem_app:1.0:user"
id: "102"
userName: "admin"
name:
formatted: "SCIM firstname2 SCIM lastname2"
givenName: "SCIM first2"
familyName: "SCIM last2"
middleName: "SCIM middle2"
emails:
value: "SCIM_admin@okta.com"
primary: true
type: "work"
active: false
password: "god"
グループ:
value: "1002"
display: "secondGroup"
urn:okta:onprem_app:1.0:user:
isAdmin: true
isOkta: false
departmentName: "Administration"
[ 03-10-2013 15:01:14.217 ] [ INFO] - checkUserExists: The ID 102 will be used as the id for this user in Okta
[ 03-10-2013 15:01:14.217 ] [ INFO] - checkUserExists: The user will be returned as INACTIVE
[ 03-10-2013 15:01:14.218 ] [ INFO] - OK!
ユースケース
ファーストネームでユーザーを検索する方法
java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method checkUserExists -arg userIdFieldName=name.givenName -arg userIdFieldValue="SCIM first"
カスタムスキーマ拡張機能プロパティでユーザーを検索する方法
java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method checkUserExists -arg userIdFieldName=urn:okta:onprem_app:1.0:user:departmentName -arg userIdFieldValue="Cloud Service"

importUserProfileは、ユーザーのIDを渡して単一のユーザーを返すようにコネクターに要求します。コネクターメソッドSCIMService.getUserをテストします。idという追加のプロパティが必要です。
以下のテストでは、SCIMコネクターに101というIDのユーザーを求めるリクエストを行います。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method importUserProfile -arg id=101
レスポンス:
[ 04-10-2013 13:57:54.092 ] [ INFO] - making GET request to http://localhost:8080/Users/101
[ 04-10-2013 13:57:54.203 ] [ INFO] - importUserProfile: User returned from Connector:
schemas: "urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0", "urn:okta:onprem_app:1.0:user"
id: "101"
userName: "okta"
name:
formatted: "SCIM firstname SCIM lastname"
givenName: "SCIM first"
familyName: "SCIM last"
middleName: "SCIM middle"
emails:
value: "SCIM_okta@okta.com"
primary: true
type: "work"
active: true
password: "inSecure"
グループ:
value: "1001"
display: "firstGroup"
value: "1002"
display: "secondGroup"
urn:okta:onprem_app:1.0:user:
isAdmin: false
isOkta: true
departmentName: "Cloud Service"
[ 04-10-2013 13:57:54.204 ] [ INFO] - importUserProfile: The ID 101 will be used as the id for this user in Okta
[ 04-10-2013 13:57:54.204 ] [ INFO] - OK!
ユースケース
以下は、存在しないと思われるユーザーを検索する方法です。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method importUserProfile -arg id=invalidExternalId -expectResults false
レスポンス:
[ 04-10-2013 14:00:01.081 ] [ INFO] - making GET request to http://localhost:8080/Users/invalidExternalId
[ 04-10-2013 14:00:01.245 ] [ WARN] - error status of 404 received from http://localhost:8080/Users/invalidExternalId
[ 04-10-2013 14:00:01.245 ] [ INFO] - importUserProfile: No users returned from server. This should be expected.
[ 04-10-2013 14:00:01.246 ] [ INFO] - OK!
以下は、存在すると思われるユーザーを検索しても、実際には何も返ってこない場合の例です。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method importUserProfile -arg id=103
レスポンス:
[ 04-10-2013 14:00:52.096 ] [ INFO] - making GET request to http://localhost:8080/Users/103
[ 04-10-2013 14:00:52.191 ] [ WARN] - error status of 404 received from http://localhost:8080/Users/103
[ 04-10-2013 14:00:52.191 ] [ ERROR] - Expected results from importUserProfile but did not get anything.

activateUserは、既存のユーザーをアクティベートするようにコネクターに要求します。コネクターメソッドSCIMService.updateUserをテストします。
以下のテストでは、SCIMコネクターにユーザーのアップデートを要求します。これはユーザーをアクティベートするためのテストなので、アクティブフィールドは常にtrueになります。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method activateUser -file data/activateUser.json
レスポンス:
[ 10-10-2013 14:29:00.211 ] [ INFO] - making PUT request to http://localhost:8080/Users/101
[ 10-10-2013 14:29:00.598 ] [ INFO] - activateUser: will return to Okta that the user's active state is: true
[ 10-10-2013 14:29:00.598 ] [ INFO] - OK!

deactivateUserは、既存のユーザーをディアクティベートするようにコネクターに要求します。コネクターメソッドSCIMService.updateUserをテストします。
以下のテストでは、SCIMコネクターにユーザーのアップデートを要求します。これはユーザーをディアクティベートするためのテストなので、アクティブフィールドは常にfalseになります。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method deactivateUser -file data/deactivateUser.json
レスポンス:
[ 10-10-2013 14:32:51.211 ] [ INFO] - making PUT request to http://localhost:8080/Users/101
[ 10-10-2013 14:32:52.171 ] [ INFO] - NOTE: deactivateUser does not send the user returned from the connector back to Okta.Oktaは、コネクターからのNon-errorレスポンスは、deactivateUserメソッドが成功したことを意味すると仮定します。
[ 10-10-2013 14:32:52.598 ] [ INFO] - OK!

reactivateUserは、以前にディアクティベートされたユーザーをアクティベートするようにコネクターに要求します。コネクターメソッドSCIMService.updateUserをテストします。
以下のテストでは、SCIMコネクターにユーザーのアップデートを要求します。これはユーザーをリアクティベートするためのテストなので、アクティブフィールドは常にtrueになります。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method reactivateUser -file data/reactivateUser.json
レスポンス:
[ 10-10-2013 14:35:04.704 ] [ INFO] - making PUT request to http://localhost:8080/Users/101
[ 10-10-2013 14:35:04.828 ] [ INFO] - NOTE: reactivateUser does not send the user returned from the connector back to Okta.Oktaは、コネクターからのNon-errorレスポンスは、reactivateUserメソッドが成功したことを意味すると仮定します。
[ 10-10-2013 14:35:04.828 ] [ INFO] - OK!

pushPasswordUpdateは、既存のユーザーのパスワードをアップデートするようにコネクターに要求します。コネクターメソッドSCIMService.updateUserをテストします。
以下のテストでは、SCIMコネクターにユーザーのアップデートを要求します。パスワードが変更になっても、ユーザーオブジェクト全体が提供されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method pushPasswordUpdate -file data/pushPasswordUpdate.json
レスポンス:
[ 10-10-2013 14:36:52.029 ] [ INFO] - making PUT request to http://localhost:8080/Users/101
[ 10-10-2013 14:36:52.124 ] [ INFO] - NOTE: pushPasswordUpdate does not send the user returned from the connector back to Okta.Oktaは、コネクターからのNon-errorレスポンスは、pushPasswordUpdateメソッドが成功したことを意味すると仮定します。
[ 10-10-2013 14:36:52.124 ] [ INFO] - OK!

pushProfileUpdateは、既存のユーザーのプロパティをアップデートするようにコネクターに要求します。コネクターメソッドSCIMService.updateUserをテストします。
以下のテストでは、SCIMコネクターにユーザーのアップデートを要求します。変更されたフィールドのみを含むオブジェクトではなく、ユーザーオブジェクト全体が提供されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080/ -method pushProfileUpdate -file data/pushProfileUpdate.json
レスポンス:
[ 10-10-2013 14:39:44.693 ] [ INFO] - making PUT request to http://localhost:8080/Users/101
[ 10-10-2013 14:39:44.785 ] [ INFO] - NOTE: pushProfileUpdate does not send the user returned from the connector back to Okta.Oktaは、コネクターからのNon-errorレスポンスは、pushProfileUpdateメソッドが成功したことを意味すると仮定します。
[ 10-10-2013 14:39:44.786 ] [ INFO] - OK!

downloadGroupsは、グループの全リストを返すようにコネクターに要求します。コネクターメソッドSCIMService.getGroupsをテストします。
以下のテストでは、SCIMコネクターにすべてのグループを求めるリクエストを行い、返されたグループはディスクにログ記録されます。グループの複数のページが存在する場合、テストはコネクターに対して複数のリクエストを行う可能性があります。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method downloadGroups
レスポンス:
[ 10-10-2013 14:40:55.598 ] [ INFO] - making GET request to http://localhost:8080/Groups?startIndex=1&count=100
[ 10-10-2013 14:40:55.816 ] [ INFO] - downloadGroups: 2 Groups returned.
[ 10-10-2013 14:40:55.819 ] [ INFO] - downloadGroups: Groups returned from connector logged to downloadGroups-20131010-144055.txt
[ 10-10-2013 14:40:55.820 ] [ INFO] - OK!

getGroupByIdは、指定されたIDに基づいてグループを返すようにコネクターに要求します。コネクターメソッドSCIMService.getGroupをテストします。idという追加のプロパティが必要です。
以下のテストでは、SCIMコネクターにグループを返すことを要求します。グループのすべてのプロパティが印刷されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method getGroupById -arg id=1002
レスポンス:
[ 17-10-2013 18:03:17.270 ] [ INFO] - making GET request to http://localhost:8080/Groups/1002
[ 17-10-2013 18:03:17.381 ] [ INFO] - getGroupById : Group returned from connector:
schemas: "urn:scim:schemas:core:1.0", "urn:okta:custom:group:1.0"
id: "1002"
members:
value: "User-001"
display: "First User"
value: "User-002"
display: "Second User"
displayName: "AppGroup-Changed"
urn:okta:custom:group:1.0:
description: "This is the changed first group"
[ 17-10-2013 18:03:17.381 ] [ INFO] - OK!
そのIDに対応するグループが見つからない場合は、以下のような出力が表示されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method getGroupById -arg id=3455
レスポンス:
[ 18-10-2013 10:22:40.733 ] [ INFO] - making GET request to http://localhost:8080/Groups/3455
[ 18-10-2013 10:22:40.833 ] [ WARN] - error status of 404 received from http://localhost:8080/Groups/3455
[ 18-10-2013 10:22:40.833 ] [ ERROR] - Expected results from getGroupById but did not get anything.

createGroupは、グループを作成できるようにコネクターにグループを送信します。コネクターメソッドSCIMService.createGroupをテストします。
同じグループがシステムに存在する場合は、DuplicateGroupExceptionをスローする必要があります。
以下のテストでは、SCIMコネクターにグループを作成して返すことを要求します。グループのすべてのプロパティが印刷されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method createGroup -file data/createGroup.json
レスポンス:
[ 17-10-2013 18:09:02.457 ] [ INFO] - making POST request to http://localhost:8080/Groups
[ 17-10-2013 18:09:02.564 ] [ INFO] - Okta will use the ID 1004 to identify this Group in the future.
[ 17-10-2013 18:09:02.564 ] [ INFO] - Group returned from connector:
schemas: "urn:scim:schemas:core:1.0", "urn:okta:custom:group:1.0"
id: "1004"
members:
value: "User-003"
display: "Third User"
value: "User-004"
display: "Fourth User"
value: "User-005"
display: "Fifth User"
displayName: "AppGroup-02"
urn:okta:custom:group:1.0:
description: "This is the second group"
[ 17-10-2013 18:09:02.565 ] [ INFO] - OK!
グループの作成を求められたときに、コネクターがDuplicateGroupExceptionをスローすると、次のような出力が表示されます。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method createGroup -file data/createGroup.json
レスポンス:
[ 18-10-2013 10:29:49.473 ] [ INFO] - making POST request to http://localhost:8080/Groups
[ 18-10-2013 10:29:49.576 ] [ WARN] - error status of 409 received from http://localhost:8080/Groups
[ 18-10-2013 10:29:49.577 ] [ ERROR] - Cannot create the group [{
"schemas": ["urn:scim:schemas:core:1.0", "urn:okta:custom:group:1.0"],
"displayName": "AppGroup-02",
"id": "1004",
"members" : [{"value": "User-003", "display": "Third User"},{"value": "User-004", "display": "Fourth User"},{"value": "User-005", "display": "Fifth User"}],
"urn:okta:custom:group:1.0":{
"description":"This is the second group"
}
}]. It already exists
[ 18-10-2013 10:29:49.577 ] [ ERROR] - Duplicate group found. Cannot create the group

updateGroupは、グループをアップデートできるようにコネクターにグループを送信します。コネクターメソッドSCIMService.updateGroupをテストします。
以下のテストでは、SCIMコネクターにグループをアップデートして返すことを要求します。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method updateGroup -file data/updateGroup.json
レスポンス:
[ 17-10-2013 18:11:11.842 ] [ INFO] - making PUT request to http://localhost:8080/Groups/1002
[ 17-10-2013 18:11:11.939 ] [ INFO] - NOTE: updateGroup does not send the group returned from the connector back to Okta.Oktaは、コネクターからのNon-errorレスポンスは、updateGroupメソッドが成功したことを意味すると仮定します。
[ 17-10-2013 18:11:11.939 ] [ INFO] - OK!

deleteGroupはIDをコネクターに送信し、そのIDを持つグループを削除できるようにします。コネクターメソッドSCIMService.deleteGroupをテストします。idという追加のプロパティが必要です。
そのIDを持つグループが存在しない場合は、EntityNotFoundExceptionをスローする必要があります。
以下のテストでは、SCIMコネクターにグループを削除することを要求します。
$ java -jar scim-sdk-tests.jar -url http://localhost:8080 -method deleteGroup -arg id=1003
レスポンス:
[ 17-10-2013 18:16:27.553 ] [ INFO] - making DELETE request to http://localhost:8080/Groups/1003
[ 17-10-2013 18:16:27.646 ] [ INFO] - NOTE: deleteGroup does not send any data back to Okta.Oktaは、コネクターからのNon-errorレスポンスは、deleteGroupが成功し、ID 1003のグループが削除されたことを意味すると仮定します。
[ 17-10-2013 18:16:27.646 ] [ INFO] - OK!