Adaptive Risikoanalyse für benutzerdefinierte Clientanwendungen

Kunden, die in die Cloud wechseln, können die adaptiven Funktionen der IAM-Identitätsdomain nutzen, um risikobasierte Analysen für ihr On-Premises-Zugriffsmanagementsystem wie Oracle Access Manager (OAM) oder Clientanwendungen zu erfüllen.

Identitätsdomains bieten eine adaptive REST-API-Schnittstelle, mit der diese On-Premise-Zugriffsverwaltungssysteme oder Clientanwendungen eine risikobasierte Engine der Identitätsdomain verwenden können, um Authentifizierungsaktivitäten für Benutzer zu bewerten.

Beispiel: John Doe ist ein Benutzer im OAM-Identitätsspeicher und in einer Identitätsdomain. John greift auf eine Finanzanwendung zu, die durch OAM geschützt ist. Der OAM-Server leitet ihn zur Authentifizierung zur OAM-Anmeldeseite um. John Doe gibt seine Zugangsdaten weiter. Basierend auf dem Risikoscore, der von der adaptiven risikobasierten Engine der Identitätsdomain zurückgegeben wird, kann der OAM-Server den Benutzer mit einem zweiten Faktor herausfordern. Wenn der Risikoscore hoch ist, kann OAM den Zugriff auf John verweigern und ihm eine Meldung mit dem Hinweis übermitteln, dass sein Versuch, sich anzumelden, fehlgeschlagen ist.

Die adaptive REST-API-Schnittstelle implementiert drei Anwendungsfälle in Form der entsprechenden Endpunkte:
  • Risiko auffüllen: /admin/v1/sdk/adaptive/PopulateRisks

  • Risikoinformationen abrufen: /admin/v1/sdk/adaptive/FetchRisks

  • Risiko mindern: /admin/v1/sdk/adaptive/MitigateRisks

Um REST-API-Aufrufe an diese Endpunkte auszuführen, benötigt Ihr Zugriffsmanagementsystem oder Ihre benutzerdefinierte Anwendung ein Zugriffstoken aus einer Clientzugangsdatenanwendung, die in einer Identitätsdomain registriert ist.
Hinweis

Informationen zum Abrufen eines Zugriffstokens finden Sie unter REST-API mit OAuth 2 aufrufen.

Die adaptive REST-API-Schnittstelle erfordert, dass die Clientanwendung Informationen wie Benutzeridentifizierung, Informationen des Geräts, das der Benutzer für die Anmeldung verwendet, und die echte IP-Adresse des Clients sendet.

Um Geräteinformationen zu erfassen, die Ihr Zugriffsverwaltungssystem benötigt, verwenden Sie eine JavaScript-Datei mit Gerätefingerabdruck. Sie können die Datei mit dem Gerätefingerprint JavaScript von der Identitätsdomainkonsole herunterladen.

  1. Melden Sie sich als Anwendungsadministrator bei der Identitätsdomainkonsole an.
  2. Blenden Sie die Navigationsleiste ein, wählen Sie Einstellungen und dann Downloads aus.
  3. Laden Sie auf der Seite Downloads das Identity Cloud Service-Dienstprogramm für Gerätefingerprinting herunter.

Die heruntergeladene Datei ist eine komprimierte (ZIP) Datei. Innerhalb der ZIP-Datei befindet sich eine JavaScript-Datei, die von der Anmeldeseite des Zugriffsverwaltungssystems oder der Clientanwendung selbst geladen werden muss, um Fingerprintinformationen zu erfassen. Verwenden Sie dann die Funktion getFingerprint(), um den Gerätefingerprint des Benutzers zu erfassen und an die adaptive REST-API-Schnittstelle der Identitätsdomains zu senden.

Siehe auch Zugriff für ein unbekanntes Geräteereignis für eine benutzerdefinierte Anmeldeseite aktivieren.

Risiko auffüllen

Dieser Endpunkt wird verwendet, um Risikodaten an eine Identitätsdomain weiterzuleiten, um den Risikoscore des Benutzers zu erhöhen.

Die cURL-Befehlsstruktur lautet:
   curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/PopulateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
Folgendes ist die Struktur des Anforderungsbodys für den Endpunkt "Risiko auffüllen".
{
    "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"
}

Das Attribut event ist optional. Wenn die Anforderung nicht vorhanden ist, werden alle Risikoereignisse zur Bewertung des Risikoscores verwendet. Sie können MAX_MFA_FAILED_ATTEMPTS- oder MAX_PASSWORD_FAILED_ATTEMPTS-Werte verwenden.

Im Folgenden finden Sie ein Beispiel für einen Anforderungsbody, der das Risiko für John Doe bewertet, der versucht, sich über die IP-Adresse 10.11.12.13 beim Zugriffsmanagementsystem anzumelden. Der Gerätefingerprint und die IP-Adresse werden anhand aller aktivierten Risikoereignisse in einer Identitätsdomain validiert.
   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"
        }
    ]
}'
Im Folgenden finden Sie ein Beispiel für den Antwortbody des Risikoendpunkts "Auffüllen".
{
    "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"
        }
    ]
}

Risikoinformationen abrufen

Mit diesem Endpunkt können Clients aktuelle Risikoinformationen für einen einzelnen Benutzer, mehrere Benutzer oder für alle Benutzer in einer Identitätsdomain abrufen.

Die cURL-Befehlsstruktur lautet:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/FetchRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
Im Folgenden ist die Struktur des Anforderungsbodys für den cURL-Befehl "Risikoinformationen abrufen" aufgeführt.
{
    "userNames": [
        "<user_name>"
    ]
}
Sie können den Endpunkt "Risikoinformationen abrufen" für mehrere Benutzer aufrufen. Verwenden Sie dazu die folgende Anforderungsbodystruktur mit dem cURL-Befehl.
{
    "userNames": [
        "<user_name_1>",
        "<user_name_2>"
    ]
}
Wenn Sie Risikoinformationen für alle Benutzer in einer Identitätsdomain abrufen möchten, verwenden Sie die folgende Anforderungsbodystruktur mit dem cURL-Befehl.
{}
Im Folgenden finden Sie ein Beispiel für einen Anforderungsbody zum Abrufen von Risikoinformationen für 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"
    ]
}'
Im Folgenden finden Sie ein Beispiel für den Antwortbody des Endpunkts "Risikoinformationen abrufen".
{
    "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
}

Risiko mindern

Mit diesem Endpunkt können Clientanwendungen die Risikominderung eines Benutzers anfordern, weil sich der Benutzer erfolgreich angemeldet oder sein Kennwort zurückgesetzt hat.

Die cURL-Befehlsstruktur lautet:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/MitigateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
    -d '<Request_Body>'
Im Folgenden ist die Struktur des Anforderungsbodys für den cURL-Befehl "Risiko mindern" aufgeführt.
{
    "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"
}
Das Attribut event des Anforderungstextes kann mehrere Werte empfangen:
  • Für eine erfolgreiche Benutzeranmeldung geben Sie SSO_THREAT_MITIGATION_SUCCESS an.
  • Um das Benutzerkennwort erfolgreich zurückzusetzen, geben Sie ADMIN_ME_PASSWORD_CHANGE_SUCCESS an.
Im Folgenden finden Sie ein Beispiel für einen Anforderungsbody zum Endpunkt "Risiko mindern" für John Doe, weil er sich über die IP-Adresse 10.11.12.13 erfolgreich beim Zugriffsmanagementsystem angemeldet hat.
   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"
}'
Im Folgenden finden Sie ein Beispiel für den Antwortbody des Risikoendpunkts "Befüllen":
{
    "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"
        }
    ]
}