Configuración de condiciones de certificado empresarial

Un principio clave de BeyondCorp Enterprise es “el acceso a los servicios se otorga en función de lo que sabemos sobre ti y tu dispositivo”. El nivel de acceso otorgado a un solo usuario o dispositivo se infiere de forma dinámica mediante la interrogatoria en varias fuentes de datos. BeyondCorp Enterprise usa este nivel de confianza como parte de su proceso de decisión.

Access Context Manager es el motor de políticas de confianza cero de BeyondCorp Enterprise. Access Context Manager permite a los administradores definir un control de acceso detallado basado en atributos para las aplicaciones y los recursos de Google Cloud.

Usa niveles de acceso para permitir el acceso a los recursos según la información contextual sobre la solicitud. Con los niveles de acceso, puedes comenzar a organizar los niveles de confianza. Por ejemplo, puedes crear un nivel de acceso llamado High_Level que permita las solicitudes de un pequeño grupo de personas con muchos privilegios. También puedes identificar un grupo más general en el que confíes, como un rango de IP del que desees permitir solicitudes. En ese caso, puedes crear un nivel de acceso llamado Medium_Level para permitir esas solicitudes.

Uno de los requisitos clave para el acceso de confianza cero es permitir el acceso solo cuando la empresa administra o es propiedad del dispositivo. Existen muchas formas de determinar si un dispositivo es propiedad de una empresa, y una de ellas es determinar si el dispositivo cuenta con un certificado válido emitido por la empresa. La existencia de un certificado empresarial en un dispositivo se puede usar para indicar que el dispositivo es propiedad de la empresa.

Los certificados empresariales para el acceso adaptado al contexto son una función de la solución general de acceso basado en certificados de BeyondCorp Enterprise. Esta función aprovecha los certificados de dispositivos como una señal alternativa adaptada al contexto para determinar si un dispositivo es un recurso de la empresa. Esta función es compatible con el navegador Chrome 110 o versiones posteriores.

Debido a que un dispositivo puede tener más de un certificado, se puede acceder a los certificados empresariales en el nivel de acceso personalizado a través de las macros .exist(e,p):

device.certificates.exists(cert, predicate)

En el ejemplo, cert es un identificador simple para usar en predicator que se vincula al certificado del dispositivo. La macro exist() combina los resultados de predicados por elemento con el operador "or" (||), lo que significa que las macros muestran verdadero si al menos un certificado cumple con la expresión predicate.

El certificado tiene los siguientes atributos que se pueden verificar juntos. Ten en cuenta que las comparaciones de strings distinguen mayúsculas de minúsculas.

Atributo Descripción Ejemplo de expresión de predicado (en la que cert es un identificador de macros)
is_valid Es verdadero si el certificado es válido y no ha caducado (booleano). cert.is_valid
cert_fingerprint Huella digital del certificado (base64 sin padding SHA256).

La huella digital es el resumen SHA256 codificado en base64 sin rellenar, en formato binario, del certificado con codificación DER. Puedes generar la string a partir del certificado en formato PEM mediante el siguiente procedimiento con OpenSSL:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha

cert.cert_fingerprint == origin.clientCertFingerprint()
root_ca_fingerprint La huella digital del certificado de la AC raíz que se usó para firmar el certificado (SHA256 sin relleno en base64).

La huella digital es el resumen SHA256 codificado en base64 sin rellenar, en formato binario, del certificado con codificación DER. Puedes generar la string a partir del certificado en formato PEM mediante el siguiente procedimiento con OpenSSL:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der > digest.sha
$ openssl base64 -in digest.sha

cert.root_ca_fingerprint == "the_fingerprint"
issuer Nombre de la entidad emisora (nombres totalmente expandidos).

Para encontrar el nombre de la entidad emisora, puedes usar el siguiente enfoque:

Ejecuta el siguiente comando en el 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

La cadena del emisor que se usa en el nivel de acceso es la forma inversa del resultado y la / se reemplaza por una coma. Ejemplo:

EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN

cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN"
subject Es el nombre del asunto del certificado (nombres totalmente expandidos). cert.subject == "CA_SUB"
serial_number Número de serie del certificado (string). cert.serial_number = "123456789"
template_id ID de la plantilla de certificado de la extensión X.509 del certificado (string). cert.template_id = "1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047"

En la siguiente tabla, se incluyen ejemplos de políticas que puedes establecer:

Ejemplo de una política Expresión
El dispositivo tiene un certificado válido firmado por el certificado raíz de la empresa. device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
El dispositivo tiene un certificado válido emitido por la entidad emisora 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")

Configuración de certificados empresariales

Antes de configurar certificados empresariales, asegúrate de haber configurado niveles de acceso personalizados. Para obtener instrucciones, consulta Crea un nivel de acceso personalizado.

Puedes usar una definición de nivel de acceso personalizado de Access Context Manager para establecer las políticas adecuadas. Los niveles de acceso personalizados usan expresiones booleanas escritas en un subconjunto de Common Expression Language (CEL) para probar los atributos de un cliente que realiza una solicitud.

Cómo subir anclas de confianza a la Consola del administrador

Para que BeyondCorp Enterprise recopile y valide el certificado de empresa del dispositivo, debes subir las anclas de confianza que se usan para emitir el certificado del dispositivo. Las anclas de confianza aquí se refieren al certificado de AC raíz autofirmada (autoridad certificadora) y a los certificados intermedios y subordinados relevantes. Completa los siguientes pasos para subir las anclas de confianza:

  1. Ve a la Consola del administrador y navega a Dispositivos > Redes > Certificados.
  2. Selecciona la unidad organizativa adecuada.
  3. Selecciona Agregar certificado.
  4. Ingresa el nombre del certificado.
  5. Sube el certificado.
  6. Habilita la casilla de verificación Endpoint Verification.
  7. Haz clic en Agregar.
  8. Asegúrate de que los usuarios pertenezcan a la unidad organizativa para la que se suben las anclas de confianza.

Configura una política AutoSelectCertificateForUrls

Para que la Verificación de extremos busque el certificado del dispositivo y lo recopile a través de Chrome, debes configurar la política de Chrome AutoSelectCertificateForURLs mediante los siguientes pasos:

  1. Asegúrate de que la Administración en la nube para el navegador Chrome administre el navegador Chrome.

  2. En la Consola del administrador, agrega la política AutoSelectCertificateForUrls:

    1. Ve a la Consola del administrador y navega a Dispositivos > Chrome > Configuración > Configuración de usuarios y del navegador > Certificados de cliente.
    2. Selecciona la unidad organizativa adecuada.
    3. Agrega una política AutoSelectCertificateForUrls, como se muestra en el siguiente ejemplo:

      {"pattern":"https://[*.]clients6.google.com","filter":{"ISSUER":{"CN":"CERTIFICATE_ISSUER_NAME"}}}
      

      Reemplaza CERTIFICATE_ISSUER_NAME por el nombre común de la AC raíz. No modifiques el valor de pattern.

Para verificar la configuración de la política, completa los siguientes pasos:

  1. Ve a chrome://policy en el navegador.
  2. Verifica el valor configurado para AutoSelectCertificateForUrls.
  3. Asegúrate de que el valor de la política Se aplica a esté configurado como Máquina. En el sistema operativo Chrome, el valor se aplica a Usuario actual*.
  4. Asegúrate de que el Estado de la política no tenga un Conflicto.

Soluciona problemas de configuración

Revisa los atributos del certificado en la página de detalles del dispositivo para asegurarte de que estén enumerados correctamente.

Puedes usar los registros de Verificación de extremos para solucionar cualquier problema. Para descargar los registros de Verificación de extremos, completa los siguientes pasos:

  1. Haz clic con el botón derecho en la extensión de Verificación de extremos y, luego, ve a Opciones.
  2. Selecciona Nivel de registro > Todos > Descargar registros.
  3. Abre un caso de ayuda con el servicio de Atención al cliente de Cloud y comparte los registros para una depuración posterior.