Um princípio fundamental do BeyondCorp Enterprise é que "o acesso aos serviços é concedido com base no que sabemos sobre você e seu dispositivo". O nível de acesso concedido a um único usuário ou dispositivo é inferido dinamicamente pelo interrogatório de várias fontes de dados. O BeyondCorp Enterprise usa esse nível de confiança no processo de decisão.
O Access Context Manager é o mecanismo de política de confiança zero do BeyondCorp Enterprise. Com o Access Context Manager, os administradores definem controle de acesso detalhado e baseado em atributos para aplicativos e recursos do Google Cloud.
Use níveis de acesso para permitir o acesso a recursos com base em informações contextuais sobre a solicitação. Ao usar níveis de acesso, você pode começar a organizar níveis de
confiança. Por exemplo, é possível criar um nível de acesso chamado High_Level
que permite solicitações de um pequeno grupo de indivíduos altamente privilegiados. Também é possível
identificar um grupo mais geral confiável, como um intervalo de IP em que você queira
permitir solicitações. Nesse caso, crie um nível de acesso chamado
Medium_Level
para permitir essas solicitações.
Um dos principais requisitos do acesso de confiança zero é permitir o acesso apenas quando o dispositivo for gerenciado ou de propriedade da empresa. Há muitas maneiras de determinar se um dispositivo é da empresa e uma é determinar se um certificado válido, emitido pela empresa, existe no dispositivo. A existência de um certificado empresarial em um dispositivo pode ser usada para indicar que ele é de propriedade da empresa.
Os certificados empresariais para acesso baseado no contexto são um recurso da solução geral de acesso baseado em certificados do BeyondCorp Enterprise. Esse recurso utiliza os certificados do dispositivo como um indicador alternativo baseado no contexto para determinar se um dispositivo é um recurso da empresa. Esse recurso pode ser usado no navegador Chrome 110 ou mais recente.
Como um dispositivo pode ter mais de um certificado, os certificados empresariais podem
ser acessados no nível de acesso personalizado usando as macros .exist(e,p)
:
device.certificates.exists(cert, predicate)
No exemplo, cert
é um identificador simples a ser usado em predicator
que
se vincula ao certificado do dispositivo. A macro exist()
combina resultados de predicado por elemento
com o operador "ou" (||), o que significa que elas retornam "verdadeiro"
se pelo menos um certificado atender à expressão predicate
.
O certificado tem os atributos a seguir que podem ser verificados juntos. As comparações de strings diferenciam maiúsculas de minúsculas.
Atributo | Descrição | Exemplo de expressão de predicado (em que cert é um identificador de macros) |
---|---|---|
is_valid |
Verdadeiro se o certificado for válido e não tiver expirado (booleano). | cert.is_valid |
cert_fingerprint |
Impressão digital do certificado (SHA256 Base64 sem preenchimento).
A impressão digital é o resumo SHA256 codificado em base64 sem preenchimento, no formato binário, do certificado codificado por DER. É possível gerar a string do certificado no formato PEM usando o procedimento a seguir com o OpenSSL:
|
cert.cert_fingerprint == origin.clientCertFingerprint()
|
root_ca_fingerprint |
Impressão digital do certificado de CA raiz usado para assinar o certificado (SHA256 Base64 sem preenchimento).
A impressão digital é o resumo SHA256 codificado em base64 sem preenchimento, no formato binário, do certificado codificado por DER. É possível gerar a string do certificado no formato PEM usando o procedimento a seguir com o OpenSSL:
|
cert.root_ca_fingerprint == "the_fingerprint" |
issuer |
Nome do emissor (nomes totalmente expandidos).
Para encontrar o nome do emissor, use a seguinte abordagem: Execute o seguinte comando no certificado:
$ openssl x509 -in ca_1.crt -issuer
issuer= /C=IN/ST=UP/L=NCR/O=BCEDemo/OU=BCEDemo_1/CN=inter_1/emailAddress=test_inter1@beyondcorp.in
A string do emissor usada no nível de acesso é o inverso da saída e / é substituída por uma vírgula. Exemplo:
|
cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN" |
subject |
Nome do assunto do certificado (nomes totalmente expandidos). | cert.subject == "CA_SUB" |
serial_number |
Número de série do certificado (string). | cert.serial_number = "123456789" |
template_id |
ID do modelo da extensão X.509 Certificate Template do certificado (string). | cert.template_id = "1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047" |
A tabela a seguir contém exemplos de políticas que podem ser definidas:
Exemplo de política | Expressão |
---|---|
O dispositivo tem um certificado válido assinado pelo certificado raiz da empresa. | device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
|
O dispositivo tem um certificado válido emitido pelo emissor CA_ABC. |
device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN")
|
Como configurar certificados empresariais
Antes de configurar os certificados empresariais, verifique se você configurou níveis de acesso personalizados. Para instruções, consulte Como criar um nível de acesso personalizado.
É possível usar uma definição de nível de acesso personalizado do Access Context Manager para definir as políticas apropriadas. Os níveis de acesso personalizados usam expressões booleanas escritas em um subconjunto do Common Expression Language (CEL) para testar os atributos de um cliente que faz uma solicitação.
Como fazer upload de âncoras de confiança no Admin Console
Para que o BeyondCorp Enterprise colete e valide o certificado empresarial do dispositivo, você precisa fazer upload das âncoras de confiança usadas para emitir o certificado do dispositivo. As âncoras de confiança aqui se referem ao certificado da CA raiz autoassinada (autoridade de certificação) e aos certificados intermediários e subordinados relevantes. Conclua as etapas a seguir para fazer upload das âncoras de confiança:
- Acesse o Admin Console e navegue até Dispositivos > Redes > Certificados.
- Selecione a unidade organizacional apropriada.
- Selecione Adicionar certificado.
- Insira o nome do certificado.
- Faça o upload do certificado.
- Ative a caixa de seleção Verificação de endpoints.
- Clique em Add.
- Verifique se os usuários pertencem à unidade organizacional para que as âncoras de confiança foram enviadas.
Configurar uma política AutoSelectCertificateForUrls
Para que a Verificação de endpoints pesquise o certificado do dispositivo e o colete pelo Chrome, configure a política AutoSelectCertificateForURLs do Chrome seguindo estas etapas:
Verifique se o navegador Chrome é gerenciado pelo Gerenciamento de nuvem do navegador Chrome.
- [Win/OSX/Linux] Configuração do navegador Chrome gerenciado usando o CBCM https://support.google.com/chrome/a/answer/9301891.
- [Chrome] Registre o dispositivo na empresa.
No Admin Console, adicione a política AutoSelectCertificateForUrls:
- Acesse o Admin Console e navegue até Dispositivos > Chrome > Configurações > Configurações do navegador e usuário > Certificados do cliente.
- Selecione a unidade organizacional apropriada.
Adicione uma política AutoSelectCertificateForUrls, conforme demonstrado no exemplo a seguir:
{"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"CERTIFICATE_ISSUER_NAME"}}}
Substitua CERTIFICATE_ISSUER_NAME pelo nome comum da CA raiz. Não modifique o valor de
pattern
.
Para verificar a configuração da política, siga estas etapas:
- Acesse chrome://policy no navegador.
- Verifique o valor configurado para AutoSelectCertificateForUrls.
- Verifique se o valor da política Aplicável a está definido como Máquina. No sistema operacional Chrome, o valor é aplicado ao Usuário atual*.
- Verifique se o Status da política não tem Conflito.
Como solucionar problemas na configuração
Revise os atributos do certificado na página de detalhes do dispositivo para garantir que os atributos do certificado sejam listados corretamente.
É possível usar os registros da Verificação de endpoints para ajudar a resolver problemas. Para fazer o download dos registros da Verificação de endpoints, siga estas etapas:
- Clique com o botão direito do mouse na extensão Verificação de endpoints e acesse Opções.
- Selecione Log level > All > Download Logs.
- Abra um caso de suporte com o Cloud Customer Care e compartilhe os registros para depuração adicional.