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-Premise-Zugriffsmanagementsystem, wie Oracle Access Manager (OAM), oder Clientanwendungen zu erfüllen.

Identitätsdomains bieten eine adaptive REST-API-Schnittstelle, mit der diese On-Premise-Zugriffsmanagementsysteme 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 durch OAM geschützte Finanzanwendung zu. Der OAM-Server leitet ihn zur Authentifizierung zur OAM-Anmeldeseite um. John Doe übermittelt seine Zugangsdaten und 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 Nachricht übermitteln, die angibt, dass sein Anmeldeversuch 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 für diese Endpunkte durchzuführen, benötigt Ihr Zugriffsmanagementsystem oder Ihre benutzerdefinierte Anwendung ein Zugriffstoken von einer Clientzugangsdatenanwendung, die in einer Identitätsdomain registriert ist.
Hinweis

Informationen zum Abrufen eines Zugriffstokens finden Sie unter Zugriff auf die REST-API mit OAuth 2 verwenden.

Die adaptive REST-API-Schnittstelle erfordert, dass die Clientanwendung Informationen wie Benutzeridentifikation, Informationen über das Gerät, mit dem sich der Benutzer anmeldet, und die wahre IP-Adresse des Clients sendet.

Um Geräteinformationen zu erfassen, die Ihr Zugriffsverwaltungssystem mit einer JavaScript-Datei für den Gerätefingerprint verwenden muss. Sie können die Datei JavaScript für den Gerätefingerprint von der Identitätsdomainkonsole herunterladen.

  1. Melden Sie sich als Anwendungsadministrator bei der Identitätsdomainkonsole an.
  2. Blenden Sie das Navigations-Drawer ein, wählen Sie Einstellungen und dann Downloads aus.
  3. Laden Sie auf der Seite Downloads das Identity Cloud Service Device Fingerprint-Utility 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 Fingerabdruckinformationen zu erfassen. Verwenden Sie dann die Funktion getFingerprint(), um den Geräte-Fingerprint 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 zum Weiterleiten von Risikodaten an eine Identitätsdomain verwendet, 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>'
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 Risikoscore 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, um das Risiko für John Doe zu bewerten, der versucht, sich von der IP-Adresse 10.11.12.13 aus 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 Endpunkts "Risiko 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"
        }
    ]
}

Risikoinfo 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 wird die Struktur des Anforderungstextes für den cURL-Befehl "Risikoinfo abrufen" beschrieben.
{
    "userNames": [
        "<user_name>"
    ]
}
Sie können den Endpunkt für das Abrufen von Risikoinformationen für mehrere Benutzer aufrufen. Verwenden Sie dazu die folgende Anforderungstextstruktur 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 Informationsendpunkts "Risiko 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 Minderung des Risikoscores eines Benutzers anfordern, weil der Benutzer sich 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 wird die Struktur des Anforderungsbodys für den cURL-Befehl "Risikominderung" beschrieben.
{
    "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 Anforderungsbodys kann mehrere Werte empfangen:
  • Geben Sie für eine erfolgreiche Benutzeranmeldung 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 für den Endpunkt "Risikominderung" für John Doe, weil er sich von der IP-Adresse 10.11.12.13 aus 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 Endpunkts "Risiko auffü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"
        }
    ]
}