Análisis de riesgos adaptable para aplicaciones cliente personalizadas

Los clientes que se trasladan a la nube pueden aprovechar las capacidades adaptativas del dominio de identidad de IAM para cumplir con los análisis basados en riesgos de su sistema de gestión de acceso local, como Oracle Access Manager (OAM) o las aplicaciones de cliente.

Los dominios de identidad proporcionan una interfaz de API de REST adaptable para permitir que estos sistemas de gestión de acceso locales o aplicaciones cliente utilicen un motor basado en riesgos de dominio de identidad para evaluar las actividades de autenticación de los usuarios.

Por ejemplo, John Doe es un usuario del almacén de identidades de OAM y de un dominio de identidad. John accede a una aplicación financiera protegida por OAM. El servidor de OAM lo redirige a la página de conexión de OAM para la autenticación. John Doe envía sus credenciales y, en función de la puntuación de riesgo devuelta por el motor basado en el riesgo adaptativo del dominio de identidad, el servidor OAM puede desafiar al usuario con un segundo factor. Si la puntuación de riesgo es alta, OAM puede denegar el acceso a John y presentarle un mensaje que indique que su intento de iniciar sesión ha fallado.

La interfaz de la API de REST adaptable implanta tres casos de uso en forma de los puntos finales correspondientes:
  • Rellenar riesgo: /admin/v1/sdk/adaptive/PopulateRisks

  • Recuperar información de riesgo: /admin/v1/sdk/adaptive/FetchRisks

  • Mitigue el riesgo: /admin/v1/sdk/adaptive/MitigateRisks

Para realizar llamadas de API de REST a estos puntos finales, su sistema de gestión de acceso o aplicación personalizada necesita un token de acceso de una aplicación de credencial de cliente registrada en un dominio de identidad.
Nota

Para obtener un token de acceso, consulte Uso de OAuth 2 para acceder a la API de REST.

La interfaz adaptativa de la API de REST requiere que la aplicación cliente envíe información como la identificación del usuario, la información del dispositivo que el usuario utiliza para conectarse y la dirección IP real del cliente.

Para recopilar información de dispositivo que el sistema de gestión de acceso necesita para utilizar un archivo JavaScript de huella de dispositivo. Puede descargar el archivo de huella de dispositivo JavaScript desde la consola del dominio de identidad.

  1. Conéctese a la consola del dominio de identidad como administrador de aplicaciones.
  2. Expanda el Cajón de navegación, seleccione Configuración y, a continuación, seleccione Descargas.
  3. En la página Descargas, descargue la utilidad de huella de dispositivo de Identity Cloud Service.

El archivo que descarga es un archivo comprimido (zip). Dentro del archivo zip hay un archivo JavaScript que la página de conexión del sistema de gestión de acceso o la propia aplicación cliente deben cargar para recopilar información de huella. A continuación, utilice la función getFingerprint() para recopilar la huella del dispositivo del usuario para enviarla a la interfaz de API de REST adaptable de los dominios de identidad.

Consulte también Activación del acceso para un evento de dispositivo desconocido para una página de conexión personalizada.

Rellenar riesgo

Este punto final se utiliza para enviar datos de riesgo a un dominio de identidad a fin de aumentar la puntuación de riesgo del usuario.

La estructura de comandos de cURL es:
   curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/PopulateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
A continuación se muestra la estructura del cuerpo de la solicitud para el punto final Rellenar riesgo.
{
    "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"
}

El atributo event es opcional. Si no está presente en la solicitud, todos los eventos de riesgo se utilizarán para evaluar la puntuación de riesgo. Puede utilizar los valores MAX_MFA_FAILED_ATTEMPTS o MAX_PASSWORD_FAILED_ATTEMPTS.

A continuación se muestra un ejemplo de un cuerpo de solicitud para evaluar el riesgo de que John Doe intente iniciar sesión en el sistema de gestión de acceso desde la dirección IP 10.11.12.13. La huella del dispositivo y la dirección IP se validarán en todos los eventos de riesgo activados en un dominio de identidad.
   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"
        }
    ]
}'
A continuación, se muestra un ejemplo del cuerpo de respuesta del punto final de riesgo de relleno.
{
    "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"
        }
    ]
}

Recuperar información de riesgo

Este punto final permite a los clientes obtener información de riesgo actual para un solo usuario, varios usuarios o para todos los usuarios de un dominio de identidad.

La estructura de comandos de cURL es:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/FetchRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
A continuación se muestra la estructura del cuerpo de la solicitud para el comando cURL de recuperación de información de riesgo.
{
    "userNames": [
        "<user_name>"
    ]
}
Puede llamar al punto final de información de riesgo de recuperación para varios usuarios. Para ello, utilice la siguiente estructura de cuerpo de solicitud con el comando cURL.
{
    "userNames": [
        "<user_name_1>",
        "<user_name_2>"
    ]
}
Si desea recuperar la información de riesgo para todos los usuarios de un dominio de identidad, utilice la siguiente estructura de cuerpo de solicitud con el comando cURL.
{}
A continuación se muestra un ejemplo de un cuerpo de solicitud para obtener información de riesgo para 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"
    ]
}'
A continuación se muestra un ejemplo del cuerpo de respuesta del punto final de información de riesgo de recuperación.
{
    "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
}

Mitigar riesgo

Este punto final permite a las aplicaciones cliente solicitar la mitigación de la puntuación de riesgo de un usuario porque el usuario se ha conectado o ha restablecido su contraseña correctamente.

La estructura de comandos de cURL es:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/MitigateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
    -d '<Request_Body>'
A continuación se muestra la estructura del cuerpo de la solicitud para el 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"
}
El atributo event del cuerpo de la solicitud puede recibir varios valores:
  • Para una conexión de usuario correcta, proporcione SSO_THREAT_MITIGATION_SUCCESS.
  • Para restablecer correctamente la contraseña de usuario, proporcione ADMIN_ME_PASSWORD_CHANGE_SUCCESS.
A continuación se muestra un ejemplo de un cuerpo de solicitud para el punto final Mitigate Risk de John Doe porque se ha conectado correctamente al sistema de gestión de acceso desde la dirección 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"
}'
A continuación se muestra un ejemplo del cuerpo de respuesta del punto final de riesgo de relleno:
{
    "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"
        }
    ]
}