Configurazione delle condizioni dei certificati aziendali

Uno dei principi fondamentali di BeyondCorp Enterprise è "L'accesso ai servizi viene concesso in base alle informazioni in nostro possesso su di te e sul tuo dispositivo". Il livello di accesso concesso a un singolo utente o a un singolo dispositivo viene dedotto in modo dinamico interrogando più origini dati. BeyondCorp Enterprise utilizza questo livello di attendibilità nell'ambito del proprio processo decisionale.

Gestore contesto accesso è il motore dei criteri Zero Trust di BeyondCorp Enterprise. Gestore contesto accesso consente agli amministratori di definire un controllo dell'accesso granulare basato su attributi per le applicazioni e le risorse Google Cloud.

Utilizza i livelli di accesso per consentire l'accesso alle risorse in base a informazioni contestuali relative alla richiesta. Utilizzando i livelli di accesso, puoi iniziare a organizzare i livelli di attendibilità. Ad esempio, puoi creare un livello di accesso denominato High_Level che consente le richieste da parte di un piccolo gruppo di individui con privilegi elevati. Puoi anche identificare un gruppo più generale da considerare attendibile, ad esempio un intervallo IP da cui vuoi consentire le richieste. In questo caso, puoi creare un livello di accesso denominato Medium_Level per consentire queste richieste.

Uno dei requisiti fondamentali per l'accesso Zero Trust è consentire l'accesso solo quando il dispositivo è gestito o di proprietà dell'azienda. Esistono molti modi per stabilire se un dispositivo è di proprietà dell'azienda e uno è stabilire se sul dispositivo è presente un certificato valido rilasciato dall'azienda. L'esistenza di un certificato aziendale su un dispositivo può essere utilizzata per indicare che il dispositivo è di proprietà dell'azienda.

I certificati aziendali per l'accesso sensibile al contesto sono una funzionalità della soluzione generale di accesso basato su certificati BeyondCorp Enterprise. Questa funzionalità sfrutta i certificati dei dispositivi come indicatore sensibile al contesto alternativo per determinare se un dispositivo è una risorsa di proprietà dell'azienda. Questa funzionalità è supportata nel browser Chrome 110 o versioni successive.

Poiché un dispositivo può avere più certificati, è possibile accedere ai certificati aziendali nel livello di accesso personalizzato tramite le macro .exist(e,p):

device.certificates.exists(cert, predicate)

Nell'esempio, cert è un identificatore semplice da utilizzare in predicator che si associa al certificato del dispositivo. La macro exist() combina i risultati del predicato per elemento con l'operatore "or" (||), il che significa che le macro restituiscono true se almeno un certificato soddisfa l'espressione predicate.

Il certificato presenta i seguenti attributi che possono essere controllati insieme. Tieni presente che i confronti di stringhe sono sensibili alle maiuscole.

Attributo Descrizione Esempio di espressione del predicato (dove cert è un identificatore di macro)
is_valid True se il certificato è valido e non è scaduto (booleano). cert.is_valid
cert_fingerprint Impronta del certificato (SHA256 base64 senza padding).

L'impronta è il digest SHA256 con codifica Base64 senza padding, in formato binario, del certificato con codifica DER. Puoi generare la stringa dal certificato in formato PEM utilizzando la seguente procedura 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 Impronta del certificato CA radice utilizzato per firmare il certificato (SHA256 base64 senza padding).

L'impronta è il digest SHA256 con codifica Base64 senza padding, in formato binario, del certificato con codifica DER. Puoi generare la stringa dal certificato in formato PEM utilizzando la seguente procedura 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 Nome emittente (nomi completamente espansi).

Per trovare il nome dell'emittente, puoi utilizzare il seguente approccio:

Esegui questo comando sul certificato:

$ 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 stringa dell'emittente utilizzata nel livello di accesso è l'inverso dell'output e la barra / viene sostituita da una virgola. Esempio:

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 Nome del soggetto del certificato (nomi completamente espansi). cert.subject == "CA_SUB"
serial_number Numero di serie del certificato (stringa). cert.serial_number = "123456789"
template_id ID modello del modello di certificato dell'estensione X.509 per il certificato (stringa). cert.template_id = "1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047"

La tabella seguente contiene esempi di criteri che puoi impostare:

Criterio di esempio Espressione
Il dispositivo ha un certificato valido firmato dal certificato radice dell'azienda. device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")
Il dispositivo ha un certificato valido emesso dall'emittente 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")

Configurazione dei certificati aziendali

Prima di configurare i certificati aziendali, assicurati di aver configurato livelli di accesso personalizzati. Per le istruzioni, consulta la sezione Creazione di un livello di accesso personalizzato.

Puoi utilizzare una definizione del livello di accesso personalizzato di Gestore contesto accesso per impostare i criteri appropriati. I livelli di accesso personalizzati utilizzano espressioni booleane scritte in un sottoinsieme di CEL (Common Expression Language) per testare gli attributi di un client che effettua una richiesta.

Caricamento di trust anchor nella Console di amministrazione

Per consentire a BeyondCorp Enterprise di raccogliere e convalidare il certificato aziendale del dispositivo, devi caricare i trust anchor utilizzati per emettere il certificato del dispositivo. I trust anchor qui fanno riferimento al certificato CA radice autofirmato e ai certificati intermedi e subordinati pertinenti. Completa i seguenti passaggi per caricare i trust anchor:

  1. Vai alla Console di amministrazione e vai a Dispositivi > Reti > Certificati.
  2. Seleziona l'unità organizzativa appropriata.
  3. Seleziona Aggiungi certificato.
  4. Inserisci il nome del certificato.
  5. Carica il certificato.
  6. Attiva la casella di controllo Verifica endpoint.
  7. Fai clic su Aggiungi.
  8. Assicurati che gli utenti appartengano all'unità organizzativa per cui vengono caricati i trust anchor.

Configura un criterio AutoSelectCertificateForUrls

Affinché la verifica degli endpoint cerchi nel certificato del dispositivo e lo raccolga tramite Chrome, devi configurare il criterio di Chrome AutoSelectCertificateForURLs completando i seguenti passaggi:

  1. Assicurati che il browser Chrome sia gestito da Chrome Browser Cloud Management.

  2. Nella Console di amministrazione, aggiungi il criterio AutoSelectCertificateForUrls:

    1. Vai alla Console di amministrazione e vai a Dispositivi > Chrome > Impostazioni > Impostazioni browser e utente > Certificati client.
    2. Seleziona l'unità organizzativa appropriata.
    3. Aggiungi un criterio AutoSelectCertificateForUrls, come illustrato nell'esempio seguente:

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

      Sostituisci CERTIFICATE_ISSUER_NAME con il nome comune della CA radice. Non modificare il valore di pattern.

Per verificare la configurazione dei criteri:

  1. Vai a chrome://policy nel browser.
  2. Verifica il valore configurato per AutoSelectCertificateForUrls.
  3. Assicurati che il valore del criterio Si applica a sia impostato su Macchina. Sul sistema operativo Chrome, il valore viene applicato a Utente attuale*.
  4. Assicurati che lo stato del criterio non presenti un conflitto.

Risoluzione dei problemi di configurazione

Esamina gli attributi dei certificati nella pagina dei dettagli del dispositivo per assicurarti che gli attributi dei certificati siano elencati correttamente.

I log di Verifica endpoint possono essere utilizzati per risolvere eventuali problemi. Per scaricare i log di Verifica degli endpoint, completa i seguenti passaggi:

  1. Fai clic con il pulsante destro del mouse sull'estensione Verifica degli endpoint e vai a Opzioni.
  2. Seleziona Livello di log > Tutti > Scarica log.
  3. Apri una richiesta di assistenza con l'assistenza clienti Google Cloud e condividi i log per l'ulteriore debug.