Analyse adaptative des risques pour les applications client personnalisées
Les clients qui passent au cloud peuvent tirer parti des fonctionnalités adaptatives du domaine d'identité IAM pour répondre aux analyses basées sur les risques de leur système de gestion des accès sur site, tel qu'Oracle Access Manager (OAM), ou des applications client.
Les domaines d'identité fournissent une interface d'API REST adaptative permettant à ces systèmes de gestion des accès sur site ou applications client d'utiliser un moteur basé sur les risques de domaine d'identité pour évaluer les activités d'authentification des utilisateurs.
Par exemple, John Doe est un utilisateur de la banque d'identités OAM et d'un domaine d'identité. John accède à une application financière protégée par OAM. Le serveur OAM le redirige vers la page de connexion OAM à des fins d'authentification. John Doe soumet ses informations d'identification et, sur la base du score de risque renvoyé par le moteur adaptatif basé sur les risques du domaine d'identité, le serveur OAM peut interroger l'utilisateur avec un second facteur. Si le score de risque est élevé, OAM peut refuser l'accès à John et lui présenter un message indiquant que sa tentative de connexion a échoué.
-
Alimenter le risque :
/admin/v1/sdk/adaptive/PopulateRisks
-
Extraire les informations sur le risque :
/admin/v1/sdk/adaptive/FetchRisks
-
Atténuer les risques :
/admin/v1/sdk/adaptive/MitigateRisks
Pour obtenir un jeton d'accès, reportez-vous à Utilisation de OAuth 2 pour accéder à l'API REST.
L'interface d'API REST adaptative requiert que l'application client envoie des informations telles que l'identification de l'utilisateur, les informations du périphérique que l'utilisateur utilise pour se connecter et l'adresse IP réelle du client.
Pour collecter les informations de périphérique dont votre système de gestion des accès a besoin, utilisez un fichier JavaScript d'empreinte de périphérique. Vous pouvez télécharger le fichier JavaScript d'empreinte de périphérique à partir de la console du domaine d'identité.
- Connectez-vous à la console de domaine d'identité en tant qu'administrateur d'application.
- Développez le volet de navigation, cliquez sur Paramètres, puis sur Téléchargements.
- Sur la page Téléchargements, téléchargez l'utilitaire d'empreintes de périphérique Identity Cloud Service.
Le fichier que vous téléchargez est un fichier compressé (zip). Le fichier ZIP contient un fichier JavaScript que la page de connexion au système de gestion des accès ou l'application client elle-même doit charger pour collecter des informations d'empreinte. Utilisez ensuite la fonction getFingerprint()
pour collecter l'empreinte de périphérique de l'utilisateur à envoyer à l'interface d'API REST adaptative des domaines d'identité.
Voir aussi Activer l'accès pour un événement d'appareil inconnu pour une page de connexion personnalisée.
Renseigner le risque
Cette adresse est utilisée pour soumettre des données de risque à un domaine d'identité afin d'augmenter le score de risque de l'utilisateur.
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"
}
L'attribut event
est facultatif. S'il n'est pas présent dans la demande, tous les événements de risque seront utilisés pour évaluer le score de risque. Vous pouvez utiliser les valeurs MAX_MFA_FAILED_ATTEMPTS
ou MAX_PASSWORD_FAILED_ATTEMPTS
.
10.11.12.13
. L'empreinte de périphérique et l'adresse IP seront validées par rapport à tous les événements à risque activés dans un domaine d'identité. 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"
}
]
}
Extraire les informations sur le risque
Cette adresse permet aux clients d'obtenir des informations sur les risques en cours pour un seul utilisateur, plusieurs utilisateurs ou tous les utilisateurs d'un domaine d'identité.
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
}
Atténuer les risques
Cette adresse permet aux applications client de demander l'atténuation du score de risque d'un utilisateur car l'utilisateur s'est connecté ou a réinitialisé son mot de passe.
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
du corps de la demande peut recevoir plusieurs valeurs :- Pour une connexion utilisateur réussie, indiquez
SSO_THREAT_MITIGATION_SUCCESS
. - Pour que la réinitialisation du mot de passe utilisateur réussisse, indiquez
ADMIN_ME_PASSWORD_CHANGE_SUCCESS
.
10.11.12.13
. 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"
}
]
}