Análise de Risco Adaptável para Aplicativos de Cliente Personalizados

Os clientes que estão migrando para a Nuvem podem aproveitar os recursos adaptáveis do domínio de identidades do IAM para atender à análise baseada em risco para seu sistema de gerenciamento de acesso on-premises, como o Oracle Access Manager (OAM) ou aplicativos clientes.

Os domínios de identidades fornecem uma interface de API REST adaptável para permitir que esses sistemas de gerenciamento de acesso on-premises ou aplicativos cliente usem um mecanismo baseado em risco de domínio de identidades para avaliar atividades de autenticação para usuários.

Por exemplo, John Doe é um usuário no armazenamento de identidades do OAM e em um domínio de identidades. John acessa um aplicativo financeiro protegido pelo OAM. O servidor OAM o redireciona para a página de acesso do OAM para autenticação. John Doe envia suas credenciais e, com base na pontuação de risco retornada pelo mecanismo baseado em risco adaptativo do domínio de identidades, o servidor OAM pode desafiar o usuário com um segundo fator. Se a pontuação de risco for alta, o OAM poderá negar acesso a John e apresentar a ele uma mensagem indicando que sua tentativa de entrar falhou.

A interface da API REST adaptável implementa três casos de uso na forma dos pontos finais correspondentes:
  • Preencher Risco: /admin/v1/sdk/adaptive/PopulateRisks

  • Extrair Informações de Risco: /admin/v1/sdk/adaptive/FetchRisks

  • Mitigar Riscos: /admin/v1/sdk/adaptive/MitigateRisks

Para fazer chamadas de API REST para esses pontos finais, seu sistema de gerenciamento de acesso ou aplicativo personalizado precisa de um token de acesso de um aplicativo de credencial do cliente registrado em um domínio de identidades.
Observação

Para obter um token de acesso, consulte Usando o OAuth 2 para Acessar a API REST.

A interface da API REST adaptável exige que o aplicativo cliente envie informações como identificação do usuário, informações do dispositivo que o usuário usa para acessar e o endereço IP verdadeiro do cliente.

Para coletar informações do dispositivo que seu sistema de gerenciamento de acesso precisa para usar um arquivo JavaScript de impressão digital do dispositivo. Você pode fazer download do arquivo JavaScript de impressão digital do dispositivo na console do domínio de identidades.

  1. Acesse a Console do domínio de identidades como administrador de aplicativos.
  2. Expanda a Gaveta de Navegação, selecione Configurações e Downloads.
  3. Na página Downloads, faça download do Utilitário de Impressão Digital do Dispositivo do Identity Cloud Service.

O arquivo que você baixar é um arquivo compactado (zip). Dentro do arquivo zip há um arquivo JavaScript que a página de acesso ao sistema de gerenciamento ou o próprio aplicativo cliente precisa carregar para coletar informações de impressão digital. Em seguida, use a função getFingerprint() para coletar a impressão digital do dispositivo do usuário para enviar à interface da API REST adaptável dos domínios de identidades.

Consulte também Ativar o Acesso para um Evento de dispositivo desconhecido para uma Página de Acesso Personalizada.

Preencher Risco

Esse ponto final é usado para enviar dados de risco para um domínio de identidades para aumentar a pontuação de risco do usuário.

A estrutura de comandos cURL é:
   curl -k -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/PopulateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
Veja a seguir a estrutura do corpo da solicitação para o ponto final Preencher risco.
{
    "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"
}

O atributo event é opcional. Se não estiver presente na solicitação, todos os eventos de risco serão usados para avaliar a pontuação de risco. Você pode usar valores MAX_MFA_FAILED_ATTEMPTS ou MAX_PASSWORD_FAILED_ATTEMPTS.

A seguir, um exemplo de um corpo de solicitação para avaliar o risco de John Doe tentar acessar o sistema de gerenciamento de acesso pelo endereço IP 10.11.12.13. A impressão digital e o endereço IP do dispositivo serão validados em relação a todos os eventos de risco ativados em um domínio de identidades.
   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"
        }
    ]
}'
Veja a seguir um exemplo de corpo da resposta do ponto final de risco de preenchimento.
{
    "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"
        }
    ]
}

Obter Informações de Risco

Esse ponto final permite que os clientes obtenham informações de risco atuais para um único usuário, vários usuários ou para todos os usuários em um domínio de identidades.

A estrutura de comandos cURL é:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/FetchRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
   -d '<Request_Body>'
A seguir está a estrutura do Corpo da Solicitação para o comando cURL Extrair Informações de Risco.
{
    "userNames": [
        "<user_name>"
    ]
}
Você pode chamar o ponto final de informações de risco de extração para vários usuários. Para isso, use a seguinte estrutura de corpo de solicitação com o comando cURL.
{
    "userNames": [
        "<user_name_1>",
        "<user_name_2>"
    ]
}
Se você quiser extrair informações de risco para todos os usuários em um domínio de identidades, use a seguinte estrutura de corpo de solicitação com o comando cURL.
{}
Veja a seguir um exemplo de um corpo de solicitação para buscar informações de risco 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"
    ]
}'
Veja a seguir um exemplo de corpo da resposta do ponto final de informações de risco de extração.
{
    "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
}

Reduza o Risco

Esse ponto final permite que os aplicativos clientes solicitem a mitigação da pontuação de risco de um usuário porque ele fez log-in ou redefiniu sua senha com sucesso.

A estrutura de comandos cURL é:
   curl -k 
   -X POST 'https://<domainURL>/admin/v1/sdk/adaptive/MitigateRisks' 
   -H 'Authorization: Bearer <Access_Token>' 
   -H 'Accept:application/json' 
    -d '<Request_Body>'
A seguir está a estrutura do corpo da solicitação para o comando cURL Mitigate Risk.
{
    "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"
}
O atributo event do corpo da solicitação pode receber vários valores:
  • Para o acesso bem-sucedido do usuário, forneça SSO_THREAT_MITIGATION_SUCCESS.
  • Para uma redefinição bem-sucedida da senha do usuário, forneça ADMIN_ME_PASSWORD_CHANGE_SUCCESS.
Veja a seguir um exemplo de um corpo de solicitação para o ponto final Mitigar Risco para John Doe porque ele acessou com sucesso o sistema de gerenciamento de acesso pelo endereço 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"
}'
Veja a seguir um exemplo de corpo de resposta do ponto final de risco de preenchimento:
{
    "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"
        }
    ]
}