カスタム・クライアント・アプリケーションのアダプティブ・リスク分析
クラウドに移行する顧客は、IAMアイデンティティ・ドメイン適応機能を利用して、Oracle Access Manager (OAM)やクライアント・アプリケーションなどのオンプレミス・アクセス管理システムのリスクベースの分析を満たすことができます。
アイデンティティ・ドメインは、これらのオンプレミス・アクセス管理システムまたはクライアント・アプリケーションがアイデンティティ・ドメイン・リスクベース・エンジンを使用して、ユーザーの認証アクティビティを評価できるようにするための適応REST APIインタフェースを提供します。
たとえば、John DoeはOAMアイデンティティ・ストアおよびアイデンティティ・ドメイン内のユーザーです。Johnは、OAMによって保護されている財務アプリケーションにアクセスします。OAMサーバーは、認証のためにOAMサインイン・ページにリダイレクトします。John Doeが資格証明を発行するとともに、OAMサーバーは、アイデンティティ・ドメイン適応型リスク・ベース・エンジンによって返されたリスク・スコアに基づいて、2番目のファクタを使用してユーザーの認証を試みる場合があります。リスク・スコアが高い場合、OAMはJohnのアクセスを拒否し、サインインに失敗したことを示すメッセージを表示します。
-
リスクの移入:
/admin/v1/sdk/adaptive/PopulateRisks
-
リスク情報のフェッチ:
/admin/v1/sdk/adaptive/FetchRisks
-
リスクの軽減:
/admin/v1/sdk/adaptive/MitigateRisks
アダプティブREST APIインタフェースでは、ユーザーID、ユーザーがサインインに使用するデバイスの情報、クライアントの実際のIPアドレスなどの情報をクライアント・アプリケーションが送信する必要があります。
アクセス管理システムでデバイス・フィンガープリントJavaScriptファイルを使用する必要があるデバイス情報を収集します。デバイス・フィンガープリントJavaScriptファイルは、アイデンティティ・ドメイン・コンソールからダウンロードできます。
- アプリケーション管理者としてアイデンティティ・ドメイン・コンソールにサインインします。
- 「Navigation Drawer」を展開し、「Settings」→「Downloads」をクリックします。
- 「ダウンロード」ページで、Identity Cloud Serviceデバイス・フィンガープリント・ユーティリティをダウンロードします。
ダウンロードするファイルは、圧縮(zip)ファイルです。zipファイル内には、アクセス管理システムのサインイン・ページまたはクライアント・アプリケーション自体がフィンガープリント情報を収集するためにロードする必要があるJavaScriptファイルがあります。次に、getFingerprint()
関数を使用して、アイデンティティ・ドメイン適応型REST APIインタフェースに送信するユーザーのデバイス・フィンガープリントを収集します。
カスタム・サインイン・ページの不明なデバイス・イベントに対するアクセスの有効化も参照してください。
リスクの移入
このエンドポイントを使用して、リスク・データをアイデンティティ・ドメインに送信し、ユーザーのリスク・スコアを向上させます。
curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/PopulateRisks'
-H 'Authorization: Bearer <Access_Token>'
-H 'Accept:application/json'
-d '<Request_Body>'
{
"userName": "<User_Name>",
"data": [
{
"name": "device",
"value": "<result_of_the_devicefingerprint_javascript_file>"
},
{
"name": "client-ip",
"value": "<ip_address_of_the_user_browser>"
}
],
"event": "MAX_PASSWORD_FAILED_ATTEMPTS"
}
event
属性はオプションです。リクエストに存在しない場合、すべてのリスク・イベントがリスク・スコアの評価に使用されます。MAX_MFA_FAILED_ATTEMPTS
値またはMAX_PASSWORD_FAILED_ATTEMPTS
値を使用できます。
10.11.12.13
からアクセス管理システムにサインインしようとするJohn Doeのリスクを評価するリクエスト本文の例を示します。デバイス・フィンガープリントおよびIPアドレスは、アイデンティティ・ドメイン内の有効なすべてのリスク・イベントに対して検証されます。 curl -k -X POST https://<domainURL>/v1/sdk/adaptive/PopulateRisks \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Access_Token>' \
-d '{
"userName": "johndoe@example.com",
"data": [
{
"name": "device",
"value": "{\"currentTime\":\"Wed Nov 13 2019 16:57:34 GMT-0700 (Pacific Daylight Time)\",\"screenWidth\":1920,\"screenHeight\":1080,\"screenColorDepth\":24,\"screenPixelDepth\":24,\"windowPixelRatio\":1,\"language\":\"en-US\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0\"}"
},
{
"name": "client-ip",
"value": "10.11.12.13"
}
]
}'
{
"userName": "johndoe@example.com",
"riskLevel": "LOW",
"riskScores": [
{
"lastUpdateTimestamp": "2022-11-12T10:41:57.997Z",
"score": 15,
"riskLevel": "LOW",
"value": "ORACLE_IDCS",
"status": "ACTIVE",
"source": "Default Risk Provider",
"$ref": "https://<domainURL>/admin/v1/RiskProviderProfiles/ORACLE_IDCS"
}
]
}
リスク情報のフェッチ
このエンドポイントを使用すると、単一ユーザー、複数のユーザーまたはアイデンティティ・ドメイン内のすべてのユーザーの現在のリスク情報をクライアントが取得できます。
curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/FetchRisks' -H 'Authorization: Bearer <Access_Token>' -H 'Accept:application/json' -d '<Request_Body>'
{
"userNames": [
"<user_name>"
]
}
{
"userNames": [
"<user_name_1>",
"<user_name_2>"
]
}
{}
curl -k -X POST https://<domainURL>/admin/v1/sdk/adaptive/FetchRisks \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <Access_Token>' \
-d '{
"userNames": [
"johndoe@example.com"
]
}'
{
"totalResults": 1,
"resources": [
{
"userName": "johndoe@example.com",
"riskLevel": "LOW",
"riskScores": [
{
"lastUpdateTimestamp": "2022-11-13T18:41:57.997Z",
"score": 15,
"riskLevel": "LOW",
"value": "ORACLE_IDCS",
"status": "ACTIVE",
"source": "Default Risk Provider",
"$ref": "https://<domainURL>/admin/v1/RiskProviderProfiles/ORACLE_IDCS"
}
]
}
],
"startIndex": 1,
"itemsPerPage": 50
}
リスクの軽減
このエンドポイントを使用すると、ユーザーがログインまたはパスワードのリセットに成功したため、クライアント・アプリケーションはユーザーのリスク・スコアの軽減をリクエストできます。
curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/MitigateRisks' -H 'Authorization: Bearer <Access_Token>' -H 'Accept:application/json' -d '<Request_Body>'
{
"userName": "<User_Name>",
"data": [
{
"name": "device",
"value": "<result_of_the_devicefingerprint_javascript_file>"
},
{
"name": "client-ip",
"value": "<ip_address_of_the_user_browser>"
}
],
"event": "SSO_THREAT_MITIGATION_SUCCESS"
}
event
属性は、次の複数の値を取得できます:- ユーザー・サインインを成功させるには、
SSO_THREAT_MITIGATION_SUCCESS
を指定します。 - ユーザー・パスワードのリセットを成功させるには、
ADMIN_ME_PASSWORD_CHANGE_SUCCESS
を指定します。
10.11.12.13
からアクセス管理システムに正常にサインインしたため、John Doeのリスクの軽減エンドポイントへのリクエスト本文の例を次に示します。 curl -X POST \
https://<domainURL>/admin/v1/sdk/adaptive/MitigateRisks \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Access_Token>' \
-d '{
"userName": "johndoe@example.com",
"data": [
{
"name": "device",
"value": "{\"currentTime\":\"Thu Nov 14 2019 10:11:18 GMT-0700 (Pacific Daylight Time)\",\"screenWidth\":1440,\"screenHeight\":900,\"screenColorDepth\":24,\"screenPixelDepth\":24,\"windowPixelRatio\":2,\"language\":\"en-US\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36\"}"
},
{
"name": "client-ip",
"value": "10.11.12.13"
}
],
"event": "SSO_THREAT_MITIGATION_SUCCESS"
}'
{
"userName": "johndoe@example.com",
"riskLevel": "LOW",
"riskScores": [
{
"lastUpdateTimestamp": 1574726401582,
"score": 10,
"riskLevel": "LOW",
"providerId": "ORACLE_IDCS",
"providerStatus": "ACTIVE",
"providerDescription": "Default Risk Provider",
"reference": "https://<domainURL>/admin/v1/RiskProviderProfiles/ORACLE_IDCS"
}
]
}