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

Os clientes que migram para a Nuvem podem aproveitar os recursos adaptáveis do domínio de identidades do serviço IAM para atender à análise baseada em risco de seu sistema de gerenciamento de acesso local, 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 do 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 adaptável 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 o acesso a John e apresentar a ele uma mensagem indicando que sua tentativa de entrar falhou.

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

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

  • Reduza os 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 OAuth 2 para Acessar a API REST.

A interface de API REST adaptável requer 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 do aplicativo.
  2. Expanda a Gaveta de Navegação, clique em Configurações e em 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ê baixou é um arquivo compactado (zip). Dentro do arquivo zip há um arquivo JavaScript que a página de acesso do sistema de gerenciamento de acesso 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 de um Evento de dispositivo desconhecido para uma Página de Acesso Personalizado.

Preencher Risco

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

A estrutura do 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>'
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.

Veja a seguir um exemplo de 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 de 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"
        }
    ]
}

Extrair 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 do 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>'
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 extração de informações de risco para vários usuários. Para fazer 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 estrutura do corpo da solicitação a seguir com o comando cURL.
{}
Veja a seguir um exemplo de corpo de solicitação para extrair 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 de resposta do ponto final de extrair informações de risco.
{
    "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 do 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>'
A seguir está a estrutura do corpo da solicitação para o 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"
}
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 a redefinição bem-sucedida da senha do usuário, forneça ADMIN_ME_PASSWORD_CHANGE_SUCCESS.
Veja a seguir um exemplo de corpo de solicitação para o ponto final Mitigate Risk de 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"
        }
    ]
}