Analyse adaptative des risques pour les applications client personnalisées
Les clients qui passent au nuage peuvent tirer parti des capacités adaptatives du domaine d'identité IAM pour répondre aux analyses basées sur le risque de leur système de gestion des accès sur place, comme Oracle Access Manager (OAM) ou les applications clients.
Les domaines d'identité fournissent une interface d'API REST adaptative pour permettre à ces systèmes de gestion des accès sur place ou à ces applications clients d'utiliser un moteur basé sur le risque du domaine d'identité pour évaluer les activités d'authentification des utilisateurs.
Par exemple, John Doe est un utilisateur du magasin 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 pour authentification. John Doe soumet ses données d'identification et, en fonction de la note de risque retournée par le moteur basé sur le risque adaptatif du domaine d'identité, le serveur OAM peut défier l'utilisateur avec un deuxième 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
L'interface API REST adaptative nécessite que l'application client envoie des informations telles que l'identification de l'utilisateur, les informations sur l'appareil utilisé par l'utilisateur pour se connecter et l'adresse IP réelle du client.
Pour collecter les informations sur l'appareil dont votre système de gestion des accès a besoin pour utiliser un fichier JavaScript d'empreinte numérique de l'appareil. Vous pouvez télécharger le fichier d'empreinte numérique JavaScript de l'appareil à partir de la console du domaine d'identité.
- Connectez-vous à la console du domaine d'identité en tant qu'administrateur d'application.
- Développez le tiroir de navigation, sélectionnez Paramètres, puis Téléchargements.
- Dans la page Téléchargements, téléchargez l'utilitaire d'empreinte numérique de l'appareil Identity Cloud Service.
Le fichier que vous téléchargez est un fichier compressé (zip). Dans le fichier zip, il y a 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 les informations d'empreinte numérique. Utilisez ensuite la fonction getFingerprint()
pour collecter l'empreinte numérique de l'appareil de l'utilisateur à envoyer à l'interface 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.
Alimenter le risque
Ce point d'extrémité est utilisé pour soumettre des données de risque à un domaine d'identité afin d'augmenter la note 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 la note de risque. Vous pouvez utiliser les valeurs MAX_MFA_FAILED_ATTEMPTS
ou MAX_PASSWORD_FAILED_ATTEMPTS
.
10.11.12.13
. L'empreinte numérique et l'adresse IP de l'appareil seront validées par rapport à tous les événements de 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
Ce point d'extrémité permet aux clients d'obtenir des informations de risque courantes pour un seul utilisateur, plusieurs utilisateurs ou pour 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 le risque
Ce point d'extrémité permet aux applications client de demander une atténuation de la note de risque d'un utilisateur, car celui-ci 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, fournissez
SSO_THREAT_MITIGATION_SUCCESS
. - Pour réinitialiser le mot de passe de l'utilisateur, fournissez
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"
}
]
}