Analisi adattiva del rischio 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 in locale o alle applicazioni client di utilizzare un motore basato sul rischio 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 adattivo basato sul rischio del dominio di Identity, il server OAM può 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 il suo tentativo di accesso non riuscito.

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

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

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

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

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

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

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

  1. Connettersi alla console del dominio di Identity come amministratore dell'applicazione.
  2. Espandere il Cassetto navigazione, selezionare Impostazioni e quindi Download.
  3. Nella pagina Download, scaricare la utility impronta dispositivo di 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 le informazioni sull'impronta digitale. Utilizzare quindi la funzione getFingerprint() per raccogliere l'impronta del dispositivo dell'utente da inviare all'interfaccia API REST adattiva dei domini di identità.

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

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 del comando 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 Popola 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 organismo di 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 del dispositivo e l'indirizzo IP 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 popolamento del rischio.
{
    "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 del comando 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 Fetch Risk Info cURL.
{
    "userNames": [
        "<user_name>"
    ]
}
È possibile chiamare l'endpoint delle informazioni sul rischio di recupero per più utenti. A tale scopo, utilizzare la struttura del corpo della richiesta seguente 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 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 delle informazioni sul rischio di recupero.
{
    "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 i rischi

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

La struttura del comando 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 Mitigate Risk 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 eseguire correttamente l'accesso utente, fornire SSO_THREAT_MITIGATION_SUCCESS.
  • Per reimpostare correttamente la password utente, fornire ADMIN_ME_PASSWORD_CHANGE_SUCCESS.
Di seguito è riportato un esempio di corpo della richiesta all'endpoint Mitigate Risk per John Doe perché 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 popolamento del rischio.
{
    "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"
        }
    ]
}