このドキュメントでは、 Netskope Cloud Exchangeの User Risk Exchange モジュールと CyberArk の統合を構成する方法について説明します。
前提条件
この設定を完了するには、以下が必要です。
- Netskopeテナント(または、例えば本番環境と開発/テスト環境など、複数のテナント)。
- Netskope Cloud Exchangeテナントには、テナントプラグインとリスクエクスチェンジプラグインが既に設定済みです。
- アイデンティティ管理アクセス権を持つCyberArkアカウント。
- 以下のホストへの接続:CyberArkログインURL。
例:https://abd4143.id.cyberark.cloud/
CEバージョンの互換性
このプラグインは、Netskope CE のバージョンv4.2.0、v5.0.0と互換性があります。
CyberArkプラグインのサポート
URE CyberArkプラグインは CyberArkユーザーをCyberArkロールに追加または削除するためのものです。 このプラグインは、CyberArkからユーザー/ホストの危険度スコアを取得することをサポートしていません。
|
ユーザースコア取得 | サポートされていません |
|
ホストスコアプル |
サポートされていません |
| Actions |
|
マッピング
- NA
権限
以下は、CyberArk プラグインを使用するために必要な権限です。
- システム管理者権限(プラットフォームへのアクセス権限)。
- OAuthの機密クライアントです(プラグインの設定用)。
APIの詳細
使うAPI一覧
| APIエンドポイント | 方法 | 使うケース |
|---|---|---|
|
/oauth2/platformtoken | 役職 | Generate Auth Token |
|
/RedRock/query | 役職 |
すべての役割を取得する |
| /RedRock/query | 役職 |
ユーザー名でユーザーを検索する |
|
/RedRock/query | 役職 | 役割名で役割を検索する |
| /Roles/StoreRole | 役職 |
ロールを作成する |
|
/UserMgmt/GetUserInfo | 役職 | ユーザー情報を取得する |
| /SaasManage/AddUsersAndGroupsToRole | 役職 |
ユーザーをロールに追加する |
| /SaasManage/RemoveUsersAndGroupsFromRole | 役職 |
ユーザーをロールから削除する |
Generate Token
API Endpoint: /oauth2/platformtoken
Method: 役職
Data:
付与タイプ: クライアント認証情報
範囲: すべて
client_id: cyberark_service_user
client_secret: cyberark_service_password
Headers:
受け入れ: application/json
コンテンツタイプ: application/x-www-form-urlencoded
API Request Endpoint:
https://<tenant_url>/oauth2/platformtoken
Sample API Response:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkRDRTVENUI3MTBEMzc3MEYwNkNCRTUyQzY3RTVGRjY2QTA3MjZFNzUiLCJ4NXQiOiIzT1hWdHhEVGR3OEd5LVVzWi1YX1pxQnliblU*******************************************************************Ef1M6Frjux1pLS4FBFBfb4_IZYbUoA9oNvKN82nL2Wv3ErV7x87gOvmrc63liBYx5-BHH8fXIUN8kA",
"token_type": "Bearer",
"expires_in": 900,
"scope": "all"
}
すべての役割を取得する
API Endpoint: /RedRock/query
Method: 役職
Data:
{“Script”: “ロールからID、名前Select 、名前順に並べ替え”}
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/RedRock/query
Sample API Response:
{
"success": true,
"Result": {
"IsAggregate": false,
"Count": 13,
"Columns": [
{
"Name": "ID",
"IsHidden": false,
"DDName": "_ID",
"Title": "ID",
"DDTitle": "ID",
"Description": "Row Identifier (primary key)",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "Primary",
"ForeignKey": null,
"TableName": "Role"
},
{
"Name": "Name",
"IsHidden": false,
"DDName": "Name",
"Title": "Name",
"DDTitle": "Name",
"Description": null,
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "NotAKey",
"ForeignKey": null,
"TableName": "Role"
}
],
"FullCount": 2,
"Results": [
{
"Entities": [
{
"Type": "Role",
"Key": "d47336b0_d7bd_4a65_989e_95606e878cb7",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "roles",
"Name": "Add role to CE users",
"ID": "d47336b0_d7bd_4a65_989e_95606e878cb7"
}
},
{
"Entities": [
{
"Type": "Role",
"Key": "bbf1d29f_7f69_45af_8555_aca99ded577b",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "roles",
"Name": "testuser",
"ID": "bbf1d29f_7f69_45af_8555_aca99ded577b"
}
}
],
"ReturnID": ""
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
ユーザー名でユーザーを検索
API Endpoint: /RedRock/query
Method: 役職
Data:
{“Script”: “select ID, Username from Users where Username = <user>@<suffix>'”}
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/RedRock/query
Sample API Response:
{
"success": true,
"Result": {
"IsAggregate": false,
"Count": 1,
"Columns": [
{
"Name": "ID",
"IsHidden": false,
"DDName": "_ID",
"Title": "ID",
"DDTitle": "ID",
"Description": "Row Identifier (primary key)",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "Primary",
"ForeignKey": null,
"TableName": "User"
},
{
"Name": "Username",
"IsHidden": false,
"DDName": "Username",
"Title": "Username",
"DDTitle": "Username",
"Description": "User name.",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "NotAKey",
"ForeignKey": null,
"TableName": "User"
}
],
"FullCount": 1,
"Results": [
{
"Entities": [
{
"Type": "User",
"Key": "d3530f17-0e7f-4114-aeea-b8fbe678814e",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "users",
"ID": "d3530f17-0e7f-4114-aeea-b8fbe678814e",
"Username": "@"
}
}
],
"ReturnID": ""
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
役割名で役割を検索する
API Endpoint: /RedRock/query
Method: 役職
Data:
{“Script”: “select ID, Name from Role where Name = 'System Administrator'”}
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/RedRock/query
Sample API Response:
{
"success": true,
"Result": {
"IsAggregate": false,
"Count": 1,
"Columns": [
{
"Name": "ID",
"IsHidden": false,
"DDName": "_ID",
"Title": "ID",
"DDTitle": "ID",
"Description": "Row Identifier (primary key)",
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "Primary",
"ForeignKey": null,
"TableName": "Role"
},
{
"Name": "Name",
"IsHidden": false,
"DDName": "Name",
"Title": "Name",
"DDTitle": "Name",
"Description": null,
"Type": 12,
"Format": null,
"Width": 0,
"TableKey": "NotAKey",
"ForeignKey": null,
"TableName": "Role"
}
],
"FullCount": 1,
"Results": [
{
"Entities": [
{
"Type": "Role",
"Key": "sysadmin",
"IsForeignKey": false
}
],
"Row": {
"_TableName": "roles",
"Name": "System Administrator",
"ID": "sysadmin"
}
}
],
"ReturnID": ""
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
役割を作成する
API Endpoint: Roles/StoreRole
Method: 役職
Data:
{"デスクリプション": "Created From Netskop URE", "Name": <Role Name> }
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/Roles/StoreRole
Sample API Response:
{
"success": true,
"Result": {
"_RowKey": "8a67f7e2_a9f6_4a9a_bfbb_a11f673323b2"
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
ユーザー情報を取得する
API Endpoint: UserMgmt/GetUserInfo
Method: 役職
Data:
NA
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/UserMgmt/GetUserInfo
Sample API Response:
{
"success": true,
"Result": {
"TenantId": "ABD4143",
"Id": "6c32a200-010d-432a-9b72-f1bbf7b66dd7",
"ExternalUuid": "6c32a200-010d-432a-9b72-f1bbf7b66dd7",
"Name": "tanushree@crest_netskope",
"DisplayName": "tansuhree",
"EmailAddress": "tanushree.kurup@crestdatasys.com",
"MobileNumber": null,
"DirectoryServiceType": "CDS",
"DirectoryServiceId": "09B9A9B0-6CE8-465F-AB03-65766D33B05E",
"DirectoryServiceName": "CDS",
"DirectoryServiceLocalizedName": "CyberArk Cloud Directory",
"IsSysAdmin": true,
"CanChangePassword": true,
"PasswordExpDate": "/Date(253402300799999)/",
"LastPasswordChangeDate": "/Date(-62135596800000)/",
"ThirdPartyOathConfigured": false,
"SqEnabled": true,
"SecurityQuestion": null,
"SecurityQuestionsLastUpdate": null,
"PhonePinLastChangeDate": null,
"LastLoginDate": "/Date(1701671479876)/",
"LastLastLoginDate": "/Date(1701671164189)/",
"PasswordChangeSoftDays": 14,
"PasswordChangeHardHours": 48,
"PasswordResetFlag": 0,
"SelfUnlocked": false,
"HasPicture": false,
"Settings": {
"uisection": {
"doNotShowIdaptiveWelcomeWizard": true
}
},
"HasU2fDeviceWithFacetIdMatched": false,
"SecurityKeyConfigured": false,
"OnDeviceAuthenticatorConfigured": false,
"PreferredCulture": null,
"PreferredTimeZone": null,
"DisplayPreferredCulture": null,
"EnablePurchasedLicenseMenu": false,
"MfaSetupWizardSettings": {
"ShowYubikeyOtpInMfaSetupWizard": false,
"ShowMfaSetupWizard": false,
"ShowPasskeysInMfaSetupWizard": false,
"MobileNumberAttribute": "",
"ShowU2fInMfaSetupWizard": false,
"ShowSecurityQuestionInMfaSetupWizard": false,
"SaveMobileNumberToCloud": false,
"RequiredFactorSetupCount": 0,
"ShowSmsMessageInMfaSetupWizard": false,
"ShowOathPassCodeInMfaSetupWizard": false
},
"IsMobileAttributeConfigured": false,
"MobileDeviceAuthCapableCount": 0,
"SlackAuthEnabled": false,
"SlackMemberIdSet": false,
"YubikeyOtpConfigured": false,
"PasskeyConfigured": false
},
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
ユーザーをロールに追加する
API Endpoint: /SaasManage/AddUsersAndGroupsToRole
Method: 役職
Data:
{“ユーザー”: [“<user_id>”],”名前”: “<role_id>”}
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/SaasManage/AddUsersAndGroupsToRole
Sample API Response:
{
"success": true,
"Result": null,
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
ユーザーをロールから削除する
API Endpoint: SaasManage/RemoveUsersAndGroupsFromRole
Method: 役職
Data:
{“ユーザー”: [“<user_id>”],”名前”: “<role_id>”}
Headers:
認証: Bearer<bearer token>
API Request Endpoint:
https://<tenant_url>/SaasManage/RemoveUsersAndGroupsFromRole
Sample API Response:
{
"success": true,
"Result": null,
"Message": null,
"MessageID": null,
"Exception": null,
"ErrorID": null,
"ErrorCode": null,
"IsSoftError": false,
"InnerExceptions": null
}
パフォーマンスマトリックス
このパフォーマンス測定は、下記のVM仕様を持つ大規模スタックCE上で実施されました。
| スタックの詳細 | サイズ:L
RAM: 32 GB CPU: 16コア |
| ロールに追加/削除されたユーザー | ~ 70 per minute |
ユーザーエージェント
このプラグインに追加されたユーザーエージェントは、以下の形式です。
netskope-ce-5.0.0-ure-cyberark-v1.0.0
ワークフロー
- ユーザーにCyberArkへのAPI権限を追加する。
- Configure CyberArk plugin.
- ビジネスルールを追加します。
- SIEMマッピングを設定します。
- プラグインを検証してください。
再生ボタンをクリックして動画をご覧ください。
ユーザーにAPI権限を追加する
プラグインを正常に統合するために必要なAPI権限を追加するには、以下の手順に従ってください。
- CyberArkプラットフォームにログインして Admin Portalへ行ってください。

- 「ユーザー」に移動し、左側のパネルから「すべてのユーザー」をクリックします。

- プラグインを設定するユーザーをクリックします ステータスまでスクロールダウンし、ユーザーに「OAuth 機密クライアント」の権限を付与して、「保存」をクリックします。

CyberArkプラグインの設定
- Cloud ExchangeにログインしてSettings > Pluginsに移動してください。プラグインを設定するには、CyberArkのボックスを検索して選択してください。

- 以下の値を入力してください。
- 設定名:設定の名前を入力してください。
- 同期間隔:プラグインを同期する時間を入力してください。

- Nextをクリックしてください。
- 以下の値を入力してください。
- Tenant URL: URL of your CyberArk platform.
- ユーザー名: CyberArk プラットフォームにログインするときに使用するユーザー名。
- パスワード:CyberArkユーザー名に関連付けられたパスワード。

- NextをクリックしてからSaveをクリックしてください。

CyberArk のビジネスルールを追加する
アクションを実行したいユーザーをフィルタリングするためのビジネスルール。 ビジネスルールを設定するには、以下の手順に従ってください。
- User Risk Exchange > Business Ruleに移動してCreate New Groupをクリックしてください。
- 要件に基づいてフィルターを追加し、 Saveをクリックしてください。



アクションを追加
以下は、CyberArkプラグインで利用可能なアクションの一覧です。
役割に追加
アクションがトリガーされるたびに、このアクションは、アクション設定の作成時に指定されたロールにユーザーを追加します。
- User Risk Exchange > Actions に移動してAdd Action Configurationをクリックしてください。

- 追加したビジネスルールSelect 。
- 構成としてCyberArkプラグインSelect 。
- アクションとして「役割に追加」 Select 。

- ロール名ドロップダウンで既存ロールをSelectして、ユーザーを既存のロールに追加するか、Create new Roleを選択します。
- グループパラメータで「新しい役割を作成」オプションを選択した場合は、役割名を入力してください。
- Saveをクリックしてください。
役割から削除する
アクションがトリガーされるたびに、このアクションは、アクション設定の作成時に指定されたロールからユーザーを削除します。
- User Risk Exchange > Actionsに移動してAdd Action Configurationをクリックしてください。
- ビジネスルールSelect 。
- 構成としてCyberArkプラグインSelect 。
- アクションとしてRemove from the Role Select 。
- 「役割名」ドロップダウンから役割をSelect 、選択した役割から、ビジネスルールに一致するユーザーが削除されます。

- Saveをクリックしてください。

No Action
この操作は、ユーザーに対していかなる影響も及ぼしません。この操作を実行すると、 Netskope Ticket OrchestratorモジュールでUBAアラートを生成できます。
CyberArkプラグインの検証
Cloud Exchange
- User Risk Exchange > Loggingに移動して、CyberArk プラグインのログを検索してください。

サイバーアークでは
- CyberArk プラットフォームにログインし、管理ポータルに移動します。
- コアサービスの「役割」に移動し、アクションを設定する際に使用する役割を選択してください。 アクションを設定する際に使用します。

- メンバーに移動し、「役割に追加」および「役割から削除」アクションに基づいてメンバーにリストされているユーザーを確認します。

トラブルシューティング
「ロールに追加」アクションの設定中にロールを取得できませんでした
プラグインの設定中に、[ロールに追加] アクションでロールが取得されない場合、以下のいずれかの理由が考えられます。
- CyberArk プラットフォームでは利用できるロールがありません。
- ユーザーの権限が不足しています。
What to do:
最初の項目「CyberArk にロールがありません」については、以下の手順に従って、CyberArk にロールが存在するかどうかを確認してください。
- CyberArkにログインし、管理者ポータルにアクセスしてください。
- コアサービスの「役割」に移動し、役割の一覧を確認してください。
ロールがリストされていない場合は、プラットフォーム自体に利用可能なロールがないことを意味するため、CE 上で、または CyberArk プラットフォーム上で直接、新しいロールを使うアクション構成を作成します。
CyberArk上にロールが存在するにもかかわらず、アクション構成で取得されない場合、「ユーザーの権限が不十分」である可能性があります。そのためには、プラグインに必要なユーザー権限を確認してください。
ユーザーに対するアクションはスキップされました
以下は、当該アクションが実行されない場合のシナリオです。
- サイバーアーク上にユーザーは存在しません。
- CyberArk のロールには読み取り専用アクセス権限があります
- CyberArkのグループは動的な役割を担う
NOTE: ユーザーをロール/グループに追加する操作が正常に実行された場合、そのログがCEで受信されることが確認されています。しかし、ユーザーが実際にグループに追加されないのは、役割の種類が動的であるためかもしれません。グループに読み取り専用アクセス権限しかない場合も、この操作は実行されません。
グループが読み取り専用アクセス権限を持つ動的グループである場合、以下のスクリーンショットに示すようなエラーが表示されます。

また、CyberArk では以下のロールに対してアクションを実行することはできません。これらのロールは CyberArk および CE で利用可能ですが、静的で読み取り専用ではないにもかかわらず、これらのロールに対してアクションは実行されません。
- CyberArkリモートアクセス管理者ユーザー
- SWS Admin
- SWS監査役


What to do: CE の [ユーザー] ページからユーザーのドメインを確認し、CyberArk プラットフォームに追加されたサフィックスを確認します。 CyberArkプラグインは、CyberArkに既に存在するビジネスルールに一致するユーザーに対してのみ、ロールへの追加およびロールからの削除アクションを実行します。 ユーザーは、(ユーザー名+ドメイン)の組み合わせであるユーザー名に基づいて照合されます。したがって、ユーザーは、CyberArk 上に自身のドメインと同じドメイン (サフィックス) を作成する必要があります。 操作を実行するために。
CEでは、 Risk Exchange > User Risk Exchange > Usersへ移動してください。

CyberArkプラットフォームで「すべてのユーザー(Core Services > Users > All Users)」にリストされているユーザーをクリックしてください。

接尾辞を確認し、Netskope CE に存在するユーザーのドメインと比較してください。
例: Netskope CE で取得したユーザーの電子メール ID がabc@netskope.comのような場合、 サイバー プラットフォームで作成されるドメイン (サフィックス) はNetskope .comである必要があります。
ドメインとサフィックスが一致しない場合、そのユーザーはCyberArk上に存在しないとみなされ、アクションは実行されません。

