Configurar um provedor de identidade terceirizado

Compatível com:

É possível usar o Cloud Identity, o Google Workspace ou um provedor de identidade de terceiros (como o Okta ou o Azure AD) para gerenciar usuários, grupos e autenticação.

Esta página descreve como usar um provedor de identidade de terceiros configurando a federação de identidade da força de trabalho. Para informações sobre o uso do Cloud Identity ou do Google Workspace, consulte Configurar um provedor de identidade do Google Cloud.

A federação de identidade da força de trabalho do Google permite conceder acesso a recursos do Google Cloud a cargas de trabalho locais ou multicloud, sem precisar usar uma chave de conta de serviço. É possível usar a federação de identidade da força de trabalho com qualquer provedor de identidade (IdP) de terceiros compatível com o OpenID Connect (OIDC), incluindo o Microsoft Azure, o Okta ou o SAML 2.0.

As Operações de Segurança do Google exigem o uso da federação de identidade da força de trabalho do Google como o broker de SSO para o seguinte:

  • Clientes com requisitos de compliance do FedRAMP High (ou superior).
  • Clientes que acessam qualquer controle empresarial no Google Security Operations que seja ativado pelo Google Cloud, incluindo dados e recursos de controle de acesso baseado em função (RBAC) usando o Identity and Access Management (IAM).
  • Clientes que usam o gerenciamento de credenciais de autoatendimento para acesso programático da API Chronicle.

O Google Security Operations oferece suporte ao SSO SAML iniciado pelo provedor de serviços (SP) para usuários. Com esse recurso, os usuários navegam diretamente para as Operações de Segurança do Google. O Google Security Operations emite uma solicitação pela federação de identidade de colaboradores do Google Cloud Identity and Access Management (IAM) ao provedor de identidade (IdP) terceirizado.

Depois que o IdP autentica a identidade do usuário, o usuário é retornado às Operações de segurança do Google com uma declaração de autenticação. A federação de identidade de colaboradores do Google Cloud atua como um intermediário no fluxo de autenticação.

Comunicação entre as operações de segurança do Google, a federação de identidade da força de trabalho do Google Cloud IAM e o IdP

Comunicação entre as operações de segurança do Google, a federação de identidade da força de trabalho do IAM e o IdP

De modo geral, a comunicação é a seguinte:

  1. O usuário acessa o Google Security Operations.
  2. O Google Security Operations pesquisa informações do IdP no pool de identidade da força de trabalho do Google Cloud.
  3. Uma solicitação é enviada ao IdP.
  4. A declaração SAML é enviada ao pool de identidade da força de trabalho do Google Cloud.
  5. Se a autenticação for bem-sucedida, as operações de segurança do Google vão receber apenas os atributos SAML definidos quando você configurou o provedor de força de trabalho no pool de identidade da força de trabalho.

Os administradores do Google Security Operations criam grupos no provedor de identidade, configuram o aplicativo SAML para transmitir informações de associação ao grupo na declaração e, em seguida, associam usuários e grupos a funções predefinidas do IAM ou a funções personalizadas criadas por eles.

O login iniciado pelo IdP (iniciando um login no painel do IdP) não é aceito. Entre em contato com seu representante do Google Security Operations para solicitar esse recurso se sua organização precisar dele.

Este documento descreve as etapas gerais para configurar a autenticação por um provedor de identidade de terceiros (IdP) usando a federação de identidade da força de trabalho do Google Cloud. Depois de seguir as etapas deste documento, você poderá acessar o Google Security Operations usando seu IdP terceirizado e gerenciar o acesso ao Google Security Operations usando o SSO SAML pela federação de identidade da força de trabalho.

Antes de começar

As etapas a seguir descrevem como realizar a configuração usando comandos gcloud. Se uma etapa puder ser realizada no console do Google Cloud, um link para a documentação do IAM será fornecido.

Planejar a implementação

A seção a seguir descreve as decisões que você precisa tomar e as informações que precisa definir antes de realizar as etapas neste documento.

Definir o pool de identidade e o provedor da força de trabalho

Como parte desse processo, você vai configurar a federação de identidade da força de trabalho do Google Cloud como um intermediário no fluxo de autenticação. Para fazer isso, crie os seguintes recursos do Google Cloud:

  • Pool de colaboradores: um pool de identidade de colaboradores permite conceder acesso às Operações de segurança do Google à sua força de trabalho (por exemplo, funcionários).
  • Provedor de força de trabalho: um provedor de força de trabalho é um subrecurso do pool de identidade da força de trabalho. Ele armazena detalhes sobre um único IdP.

A relação entre o pool de identidade da força de trabalho, os provedores da força de trabalho e uma instância do Google Security Operations, identificada por um subdomínio de cliente único, é a seguinte:

  • Um pool de identidade da força de trabalho é definido no nível da organização.
  • Cada instância do Google Security Operations tem um pool de identidade da força de trabalho configurado e associado a ela.
  • Um pool de identidade de colaboradores pode ter vários provedores de força de trabalho.
  • Cada provedor de força de trabalho integra um IdP de terceiros ao pool de identidade da força de trabalho.
  • O pool de identidade de colaboradores que você cria usando estas etapas precisa ser dedicado ao Google SecOps. Embora você possa gerenciar vários pools de identidade de força de trabalho para outras finalidades, o pool de identidade de força de trabalho criado para o Google SecOps não pode ser compartilhado.
  • Recomendamos que você crie o pool de identidade da força de trabalho na mesma organização do Google Cloud que contém o projeto vinculado ao Google SecOps.

Isso ajuda a economizar tempo se você pré-definir informações sobre o pool de identidade e o provedor da força de trabalho. Você usa essas informações ao configurar o aplicativo SAML do IdP e a federação de identidade da força de trabalho.

Escolha os valores para os seguintes identificadores:

  • ID do pool de força de trabalho (WORKFORCE_POOL_ID): selecione um valor que indique o escopo ou a finalidade do pool de identidade da força de trabalho. O valor precisa atender aos seguintes requisitos:
    • Precisa ser globalmente exclusivo.
    • Use apenas caracteres minúsculos [a-z], dígitos [0-9] e hifens [-].
    • Precisa começar com um caractere minúsculo [a-z].
    • Precisa terminar com um caractere minúsculo [a-z] ou um dígito [0-9].
    • Pode ter de 4 a 61 caracteres.
  • Nome de exibição do pool de força de trabalho (WORKFORCE_POOL_DISPLAY_NAME): defina um nome fácil de usar para o pool de identidade da força de trabalho.
  • Descrição do pool de colaboradores (WORKFORCE_POOL_DESCRIPTION): defina uma descrição detalhada do pool de identidade da força de trabalho.
  • ID do provedor de força de trabalho (WORKFORCE_PROVIDER_ID): escolha um valor que indique o IdP que ele representa. O valor precisa atender aos seguintes requisitos:
    • Use apenas caracteres minúsculos [a-z], dígitos [0-9] e traço [-].
    • Pode ter de 4 a 32 caracteres.
  • Nome de exibição do provedor de força de trabalho (WORKFORCE_PROVIDER_DISPLAY_NAME): defina um nome fácil de usar para o provedor de força de trabalho. Precisa ter menos de 32 caracteres.
  • Descrição do provedor de colaboradores (WORKFORCE_PROVIDER_DESCRIPTION): defina uma descrição detalhada do provedor de colaboradores.

Definir atributos e grupos de usuários no IdP

Antes de criar o aplicativo SAML no IdP, identifique quais atributos e grupos de usuários são necessários para configurar o acesso aos recursos no Google Security Operations. Para mais informações, consulte Configurar o controle de acesso a recursos usando o IAM e Permissões de operações de segurança do Google no IAM.

Você vai precisar dessas informações nas seguintes fases do processo:

  • Ao configurar o aplicativo SAML, você cria os grupos definidos durante o planejamento. Configure o aplicativo SAML do IdP para transmitir as associações de grupo na declaração.

  • Ao criar o provedor de força de trabalho, você mapeia atributos e grupos de atribuição para atributos do Google Cloud. Essas informações são enviadas na declaração de declaração como parte da identidade de um usuário.

  • Ao configurar o controle de acesso baseado em função no Google Security Operations, você usa os atributos do usuário e as informações do grupo para configurar o acesso aos recursos do Google Security Operations.

    O Google Security Operations oferece vários papéis predefinidos que permitem o acesso a recursos específicos. É possível mapear grupos definidos no aplicativo SAML do IdP para esses papéis predefinidos.

Crie um grupo de IdP para administradores que configuram quais usuários e grupos podem acessar os recursos relacionados ao SOAR. Durante o processo de integração, você vai informar o nome desse grupo para que os usuários dele possam configurar o controle de acesso aos recursos relacionados ao SOAR.

Configurar o IdP

Esta seção descreve apenas a configuração específica necessária em um aplicativo IdP SAML para integração com a federação de identidade da força de trabalho do Google Cloud e as operações de segurança do Google.

  1. Crie um novo aplicativo SAML no IdP.

  2. Configure o aplicativo com o seguinte URL do serviço de declaração de consumidor (ACS), também chamado de URL de Logon único, dependendo do provedor de serviços.

    https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Substitua:

    • WORKFORCE_POOL_ID: o identificador que você definiu para o pool de identidade da força de trabalho.
    • WORKFORCE_PROVIDER_ID: o identificador que você definiu para o provedor de força de trabalho.

      Consulte Planejar a implementação para uma descrição desses valores.

  3. Configure o aplicativo com o seguinte ID da entidade (também chamado de ID da entidade do SP).

    https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
    

    Substitua:

    • WORKFORCE_POOL_ID: o identificador que você definiu para o pool de identidades de força de trabalho.
    • WORKFORCE_PROVIDER_ID: o identificador que você definiu para o provedor de força de trabalho.
  4. Configure o identificador de nome no IdP para garantir que o campo NameID seja retornado na resposta SAML.

    É possível definir um valor compatível com as políticas da sua organização, como endereço de e-mail ou nome de usuário. Consulte a documentação do IdP para saber como configurar esse valor. Para mais informações sobre esse requisito, consulte Resolver problemas na federação de identidade de colaboradores.

  5. Opcionalmente, crie os atributos de grupo no aplicativo SAML. Você definiu isso quando planejou a implementação do IdP.

  6. Faça o download do arquivo XML de metadados do aplicativo. Na próxima seção, você vai fazer upload desse arquivo do seu sistema local para o diretório principal do Google Cloud usando o Cloud Shell.

Configurar a federação de identidade da força de trabalho

Esta seção descreve apenas as etapas específicas necessárias para configurar a federação de identidade da força de trabalho com o aplicativo IdP SAML criado na seção anterior. Para mais informações sobre como gerenciar pools de identidade da força de trabalho, consulte Gerenciar provedores de pools de identidade da força de trabalho.

  1. Abra o console do Google Cloud como o usuário com as permissões necessárias no projeto vinculado às operações de segurança do Google. Você identificou ou criou esse usuário anteriormente. Consulte a seção Antes de começar.

  2. Inicie uma sessão do Cloud Shell.

  3. Defina o projeto do Google Cloud que é faturado e cobrado pelas operações realizadas usando a CLI gcloud. Use o comando gcloud a seguir como exemplo:

    gcloud config set billing/quota_project PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do projeto vinculado ao Google Security Operations que você criou em Configurar um projeto do Google Cloud para o Google Security Operations. Consulte Como criar e gerenciar projetos para uma descrição dos campos que identificam um projeto.

    Para informações sobre cotas, consulte estes documentos:

    Se você encontrar um erro, consulte Erros de cota.

Criar e configurar um pool de identidade da força de trabalho

É possível configurar um pool de identidade da força de trabalho para integração com um provedor de identidade (IdP) externo ou com o Google Workspace ou o Cloud Identity.

  1. Crie um pool de identidade da força de trabalho.

    • Crie um pool de identidade de colaboradores para um IdP de terceiros:

      Use o comando gcloud a seguir como exemplo:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
        --location="global" \
        --organization="ORGANIZATION_ID" \
        --description="WORKFORCE_POOL_DESCRIPTION" \
        --display-name="WORKFORCE_POOL_DISPLAY_NAME"
      

      Substitua:

      • WORKFORCE_POOL_ID: o identificador que você definiu para o pool de identidade da força de trabalho.
      • ORGANIZATION_ID: o ID numérico da organização.
      • WORKFORCE_POOL_DESCRIPTION: especifique uma descrição do pool de identidade da força de trabalho.
      • WORKFORCE_POOL_DISPLAY_NAME: especifique um nome fácil de usar para o pool de identidade da força de trabalho.

      Para realizar essa configuração usando o console do Google Cloud, consulte Criar um pool.

      Se você quiser usar o Google Workspace ou o Cloud Identity para fazer login no Google SecOps, adicione as flags --allowed-services domain=backstory.chronicle.security e --disable-programmatic-signin ao comando:

      gcloud iam workforce-pools create WORKFORCE_POOL_ID\
            --location="global" \
            --organization="ORGANIZATION_ID" \
            --description="WORKFORCE_POOL_DESCRIPTION" \
            --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
            --allowed-services domain=backstory.chronicle.security \
            --disable-programmatic-signin
      

      Esse comando cria um pool de força de trabalho que não pode ser usado para fazer login no Google Cloud, mas é necessário usar essas flags para resolver esses cenários.

  2. Se você receber uma solicitação na linha de comando para ativar a API Chronicle, digite Yes.

Criar um provedor de identidade da força de trabalho

  1. Faça upload do arquivo de metadados do aplicativo SAML para o diretório inicial do Cloud Shell clicando em Mais >. Os arquivos só podem ser enviados para o diretório inicial. Para mais opções de transferência de arquivos entre o Cloud Shell e sua estação de trabalho local, consulte Fazer upload e download de arquivos e pastas do Cloud Shell.

  2. Anote o caminho do diretório em que você fez o upload do arquivo XML de metadados do aplicativo SAML no Cloud Shell. Você vai precisar desse caminho na próxima etapa.

  3. Crie um provedor de pool de identidade da força de trabalho e especifique os detalhes do IdP.

    Use o comando gcloud a seguir como exemplo:

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
      --workforce-pool="WORKFORCE_POOL_ID" \
      --location="global" \
      --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
      --description="WORKFORCE_PROVIDER_DESCRIPTION" \
      --idp-metadata-path=PATH_TO_METADATA_XML \
      --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    Consulte Planejar a implementação para mais informações sobre esses valores.

    Substitua:

    • WORKFORCE_PROVIDER_ID: o valor que você definiu para o ID do provedor de colaboradores.
    • WORKFORCE_POOL_ID: o valor que você definiu para o ID do pool de identidade da força de trabalho.
    • WORKFORCE_PROVIDER_DISPLAY_NAME: um nome fácil de usar para o provedor de colaboradores. Precisa ter menos de 32 caracteres.
    • WORKFORCE_PROVIDER_DESCRIPTION: uma descrição do provedor de colaboradores.
    • PATH_TO_METADATA_XML: o local do diretório do Cloud Shell do arquivo XML de metadados do aplicativo que você fez upload usando o Cloud Shell, por exemplo: /path/to/sso_metadata.xml.
    • ATTRIBUTE_MAPPINGS: definição de como mapear atributos de declaração para atributos do Google Cloud. A Common Expression Language é usada para interpretar esses mapeamentos. Exemplo:

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

      O exemplo anterior mapeia os seguintes atributos:

      • assertion.subject para google.subject Esse é um requisito mínimo.
      • assertion.attributes.name[0] para google.display_name
      • assertion.attributes.groups para o atributo google.groups.

      Se você estiver realizando essa configuração para o Google Security Operations, que inclui o SIEM e o SOAR do Google Security Operations, também será necessário mapear os seguintes atributos exigidos pelo SOAR do Google Security Operations:

      • attribute.first_name
      • attribute.last_name
      • attribute.user_email
      • google.groups

      Saiba mais sobre como provisionar e mapear usuários para o Google Security Operations SOAR.

      Por padrão, o Google Security Operations lê informações de grupo dos seguintes nomes de atributos de afirmação sem distinção entre maiúsculas e minúsculas: _assertion.attributes.groups_, _assertion.attributes.idpGroup_ e _assertion.attributes.memberOf_.

      Ao configurar o aplicativo SAML para transmitir informações de associação a grupos na declaração, defina o nome do atributo do grupo como _group_, _idpGroup_ ou _memberOf_.

      No comando de exemplo, você pode substituir assertion.attributes.groups por assertion.attributes.idpGroup ou assertion.attributes.memberOf, que representa o nome do atributo de grupo configurado no aplicativo SAML do IdP e que contém informações de associação de grupo na declaração.

      O exemplo a seguir mapeia vários grupos para o atributo google.groups:

      google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

      O exemplo a seguir mapeia o grupo http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group, que contém caracteres especiais, para google.groups:

      google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

      Para mais informações sobre o mapeamento de atributos, consulte Mapeamentos de atributos.

      Para realizar essa configuração usando o console do Google Cloud, consulte Criar um provedor SAML.

Conceder um papel para ativar o login no Google Security Operations

As etapas a seguir descrevem como conceder um papel específico usando o IAM para que os usuários possam fazer login nas Operações de segurança do Google. Realize a configuração usando o projeto do Google Cloud vinculado ao Google Security Operations que você criou anteriormente.

Este exemplo usa o comando gcloud. Para usar o console do Google Cloud, consulte Conceder um único papel.

  1. Conceda o papel de Leitor da API Chronicle (roles/chronicle.viewer) a usuários ou grupos que precisam ter acesso ao aplicativo Google Security Operations.

    O exemplo a seguir concede o papel de leitor da API Chronicle a identidades gerenciadas usando o pool de identidade e o provedor de força de trabalho que você criou anteriormente.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
    

    Substitua:

    Para conceder o papel de leitor da API Chronicle a um grupo específico, execute o seguinte comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Substituir GROUP_ID: um grupo na declaração google.groups mapeada.

  2. Configure outras políticas do IAM para atender aos requisitos da sua organização.

Verificar ou configurar o controle de acesso a recursos do Google Security Operations

Se você configurou a federação de identidade da força de trabalho com atributos ou grupos mapeados para o atributo google.groups, essas informações são transmitidas ao Google Security Operations para que você possa configurar o controle de acesso baseado em função (RBAC) nos recursos do Google Security Operations.

Se a instância do Google Security Operations tiver uma configuração de RBAC, verifique se a configuração original funciona conforme o esperado.

Se você não tiver configurado o controle de acesso anteriormente, consulte Configurar o controle de acesso a recursos usando o IAM para saber como controlar o acesso a recursos.

Modificar a configuração da federação de identidade da força de trabalho

Se você precisar atualizar o pool de identidade ou o provedor da força de trabalho, consulte Gerenciar provedores de pool de identidade da força de trabalho para saber como atualizar a configuração.

A seção Gerenciamento de chaves em Criar um provedor de pool de força de trabalho SAML descreve como atualizar as chaves de assinatura do IdP e, em seguida, a configuração do provedor de força de trabalho com o arquivo XML de metadados do aplicativo mais recente.

Confira a seguir um exemplo de comando gcloud que atualiza a configuração do provedor de força de trabalho:

gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
  --workforce-pool=WORKFORCE_POOL_ID \
  --location="global" \
  --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
  --description="WORKFORCE_PROVIDER_DESCRIPTION" \
  --idp-metadata-path=PATH_TO_METADATA_XML \
  --attribute-mapping="ATTRIBUTE_MAPPINGS"

Substitua:

  • WORKFORCE_PROVIDER_ID: o valor que você definiu para o ID do provedor de colaboradores.
  • WORKFORCE_POOL_ID: o valor que você definiu para o ID do pool de identidade da força de trabalho.
  • WORKFORCE_PROVIDER_DISPLAY_NAME: um nome fácil de usar para o provedor de colaboradores. O valor precisa ter menos de 32 caracteres.
  • WORKFORCE_PROVIDER_DESCRIPTION: a descrição do provedor de colaboradores.
  • PATH_TO_METADATA_XML: o local do arquivo XML de metadados do aplicativo atualizado, por exemplo: /path/to/sso_metadata_updated.xml.
  • ATTRIBUTE_MAPPINGS: os atributos de declaração mapeados para atributos do Google Cloud. Exemplo:

    google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

Para garantir que o RBAC do Google SecOps continue funcionando conforme o esperado, mapeie também o atributo google.groups para todos os grupos usados para definir papéis no Google SecOps.

Resolver problemas de configuração

Se você encontrar erros durante esse processo, consulte Resolver problemas de federação de identidade da força de trabalho para resolver problemas comuns. A seção a seguir apresenta informações sobre problemas comuns encontrados ao realizar as etapas neste documento.

Se você ainda tiver problemas, entre em contato com seu representante do Google SecOps e envie o arquivo de registros de rede do Chrome.

Erro command not found ao criar um provedor de pool de identidade da força de trabalho

Ao criar um provedor de pool de identidade de colaboradores e especificar os detalhes do IdP, você recebe o seguinte erro:

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

Verifique se o PATH_TO_METADATA_XML é o local para onde você fez upload do arquivo XML de metadados do aplicativo SAML no diretório principal do Cloud Shell.

The caller does not have permission erro

Ao executar o comando gcloud projects add-iam-policy-binding para conceder papéis a usuários ou grupos, você recebe o seguinte erro:

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

Verifique se você tem as permissões necessárias. Consulte Papéis necessários para mais informações.

A seguir

Depois de concluir as etapas deste documento, faça o seguinte: