Analisi del rischio adattivo per applicazioni client personalizzate

I clienti che passano al cloud possono sfruttare le funzionalità adattive del dominio di Identity IAM per soddisfare l'analisi basata sul rischio per il proprio sistema di gestione degli accessi on-premise, come Oracle Access Manager (OAM) o le applicazioni client.

I domini di Identity forniscono un'interfaccia API REST adattiva per consentire a questi sistemi di gestione degli accessi o alle applicazioni client in locale di utilizzare un motore basato sui rischi del dominio di Identity per valutare le attività di autenticazione per gli utenti.

Ad esempio, John Doe è un utente nell'area di memorizzazione delle identità OAM e in un dominio di Identity. John accede a un'applicazione Finance protetta da OAM. Il server OAM lo reindirizza alla pagina di accesso OAM per l'autenticazione. John Doe sottomette le proprie credenziali e, in base al punteggio di rischio restituito dal motore basato sul rischio adattivo del dominio di Identity, il server OAM potrebbe sfidare l'utente con un secondo fattore. Se il punteggio di rischio è alto, OAM può negare l'accesso a John e presentargli un messaggio che indica che il suo tentativo di accesso non è riuscito.

L'interfaccia API REST adattiva implementa tre casi d'uso sotto forma di endpoint corrispondenti:
  • Inserisci i rischi: /admin/v1/sdk/adaptive/PopulateRisks

  • Recupera informazioni rischio: /admin/v1/sdk/adaptive/FetchRisks

  • Ridurre i rischi: /admin/v1/sdk/adaptive/MitigateRisks

Per effettuare chiamate API REST a questi endpoint, il sistema di gestione degli accessi o l'applicazione personalizzata deve disporre di un token di accesso da un'applicazione di credenziali client registrata in un dominio di Identity.
Nota

Per ottenere un token di accesso, vedere Utilizzo di OAuth 2 per accedere all'API REST.

L'interfaccia API REST adattiva richiede che l'applicazione client invii informazioni quali l'identificazione dell'utente, le informazioni del dispositivo utilizzato dall'utente per accedere e il vero indirizzo IP del client.

Per raccogliere le informazioni sul dispositivo necessarie per il sistema di gestione degli accessi, utilizzare un file fingerprint JavaScript. È possibile scaricare il file JavaScript dell'impronta del dispositivo dalla console del dominio di Identity.

  1. Eseguire l'accesso alla console del dominio di Identity come amministratore dell'applicazione.
  2. Espandere il cassetto di navigazione, selezionare Impostazioni, quindi selezionare Download.
  3. Nella pagina Download scaricare la utility per l'impronta del dispositivo Identity Cloud Service.

Il file scaricato è un file compresso (zip). All'interno del file zip c'è un file JavaScript che la pagina di accesso al sistema di gestione degli accessi o l'applicazione client stessa deve caricare per raccogliere informazioni sulle impronte digitali. Utilizzare quindi la funzione getFingerprint() per raccogliere l'impronta del dispositivo dell'utente da inviare all'interfaccia API REST adattiva dei domini di Identity.

Vedere anche Abilitazione dell'accesso per un evento dispositivo sconosciuto per una pagina di accesso personalizzata.

Popola rischio

Questo endpoint viene utilizzato per sottomettere i dati di rischio a un dominio di Identity per aumentare il punteggio di rischio dell'utente.

La struttura dei comandi cURL è:
   curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/PopulateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
Di seguito è riportata la struttura del corpo della richiesta per l'endpoint Inserisci dati rischio.
{
    "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'attributo event è facoltativo. Se non è presente nella richiesta, tutti gli eventi di rischio verranno utilizzati per valutare il punteggio di rischio. È possibile utilizzare i valori MAX_MFA_FAILED_ATTEMPTS o MAX_PASSWORD_FAILED_ATTEMPTS.

Di seguito è riportato un esempio di un corpo della richiesta per valutare il rischio per John Doe che tenta di accedere al sistema di gestione degli accessi dall'indirizzo IP 10.11.12.13. L'impronta digitale e l'indirizzo IP del dispositivo verranno convalidati in base a tutti gli eventi di rischio abilitati in un dominio di Identity.
   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"
        }
    ]
}'
Di seguito è riportato un esempio di corpo della risposta dell'endpoint di rischio di popolamento.
{
    "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"
        }
    ]
}

Recupera informazioni rischio

Questo endpoint consente ai client di ottenere le informazioni sui rischi correnti per un singolo utente, più utenti o per tutti gli utenti in un dominio di Identity.

La struttura dei comandi cURL è:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/FetchRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
Di seguito è riportata la struttura del corpo della richiesta per il comando cURL Recupera informazioni rischio.
{
    "userNames": [
        "<user_name>"
    ]
}
È possibile chiamare l'endpoint di recupero informazioni rischio per più utenti. A tale scopo, utilizzare la seguente struttura del corpo della richiesta con il comando cURL.
{
    "userNames": [
        "<user_name_1>",
        "<user_name_2>"
    ]
}
Se si desidera recuperare le informazioni sul rischio per tutti gli utenti in un dominio di Identity, utilizzare la struttura del corpo della richiesta seguente con il comando cURL.
{}
Di seguito è riportato un esempio di un corpo della richiesta per recuperare le informazioni sul rischio per John Doe.
   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"
    ]
}'
Di seguito è riportato un esempio di corpo della risposta dell'endpoint di recupero delle informazioni sul rischio.
{
    "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
}

Riduci rischio

Questo endpoint consente alle applicazioni client di richiedere la mitigazione del punteggio di rischio di un utente perché l'utente ha eseguito il login o reimpostato correttamente la password.

La struttura dei comandi cURL è:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/MitigateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
    -d '<Request_Body>'
Di seguito è riportata la struttura del corpo della richiesta per il comando Mitiga rischio cURL.
{
    "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"
}
L'attributo event del corpo della richiesta può ricevere più valori:
  • Per un accesso utente corretto, fornire SSO_THREAT_MITIGATION_SUCCESS.
  • Per reimpostare correttamente la password utente, fornire ADMIN_ME_PASSWORD_CHANGE_SUCCESS.
Di seguito è riportato un esempio di un corpo della richiesta per l'endpoint Mitigate Risk per John Doe poiché ha eseguito correttamente l'accesso al sistema di gestione degli accessi dall'indirizzo IP 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"
}'
Di seguito è riportato un esempio di corpo della risposta dell'endpoint di rischio di popolamento.
{
    "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"
        }
    ]
}