Configurazione delle condizioni dei certificati aziendali

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Uno dei principi fondamentali di BeyondCorp Enterprise è "l'accesso ai servizi in base alle informazioni in nostro possesso su di te e sul tuo dispositivo". Il livello di accesso concesso a un singolo utente o dispositivo singolo viene dedotto dinamicamente interrogando più origini dati. BeyondCorp Enterprise utilizza questo livello di affidabilità come parte 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 e 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 sulla 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 consenta le richieste di un gruppo ristretto di persone con privilegi molto elevati. Puoi anche identificare un gruppo più generale attendibile, ad esempio un intervallo IP da cui consentire le richieste. In tal caso, potresti creare un livello di accesso denominato Medium_Level per consentire tali richieste.

Uno dei requisiti principali per l'accesso Zero Trust è consentire l'accesso solo quando il dispositivo è gestito o di proprietà dell'azienda. Esistono molti modi per determinare se un dispositivo è di proprietà dell'azienda e un modo consiste nel determinare se sul dispositivo è presente un certificato valido, emesso 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 di accesso complessiva basata su certificati BeyondCorp Enterprise. Questa funzionalità utilizza i certificati dispositivo come indicatore sensibile al contesto alternativo per determinare se un dispositivo è una risorsa di proprietà dell'azienda.

Poiché un dispositivo può avere più di un certificato, è 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 ciascun elemento con l'operatore "" (||), il che significa che le macro restituiscono true se almeno un certificato soddisfa l'espressione di predicate.

Il certificato contiene i seguenti attributi che possono essere verificati insieme. Tieni presente che i confronti delle stringhe sono sensibili alle maiuscole.

Attributo Descrizione Esempio di espressione del predicato (dove cert è un identificatore di macro)
is_valid Vero se il certificato è valido e non è scaduto (booleano). cert.is_valid
cert_fingerprint Impronta del certificato (SHA256 base64 senza padding). cert.cert_fingerprint == origin.clientCertFingerprint()
root_ca_fingerprint Impronta del certificato CA radice utilizzato per firmare il certificato (SHA256 base64 senza padding). cert.root_ca_fingerprint == "the_fingerprint"
issuer Nome emittente (nomi completamente espansi).

Per individuare 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'autorità di certificazione usata nel livello di accesso è l'inverso dell'output e il carattere / viene sostituito 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 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 alcuni esempi di criteri che puoi impostare:

Criterio di esempio Espressione
Il dispositivo ha un certificato valido firmato dal certificato radice aziendale. 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 avere configurato livelli di accesso personalizzati, Creando 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 verificare gli attributi di un client che effettua una richiesta.

Caricare i trust anchor nella Console di amministrazione

Per consentire a BeyondCorp Enterprise di raccogliere e convalidare il certificato aziendale del dispositivo, devi caricare gli ancoraggi di attendibilità utilizzati per emettere il certificato del dispositivo. I anchor per il trust si riferiscono al certificato CA radice (autorità di certificazione) 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 Endpoint Verification.
  7. Fai clic su Aggiungi.
  8. Assicurati che gli utenti appartengano all'unità organizzativa per cui sono caricati i trust anchor.

Configurare un criterio AutoSelectCertificateForUrls

Affinché Endpoint Verification cerchi il certificato del dispositivo e lo acquisisca tramite Chrome, devi configurare il criterio di Chrome AutoSelectCertificateForURLs completando i seguenti passaggi:

  1. Assicurati che il browser Chrome sia gestito tramite Gestione del cloud Chrome o criteri di gruppo di Windows.
  2. Nella Console di amministrazione, aggiungi il criterio AutoSelectCertificateForUrls:

    1. Vai alla Console di amministrazione e vai a Dispositivi > Chrome > Impostazioni > Utente e amp; Impostazioni del browser > 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":{<issuerDNs>}}}
    

    NOTA: il filtro deve fare riferimento a un certificato di emittente, caricato nei passaggi precedenti.

Per verificare la configurazione del criterio, completa i seguenti passaggi:

  1. Vai a chrome://policy nel browser.
  2. Verifica il valore configurato per AutoSelectCertificateForUrls.
  3. Assicurati che il valore del criterio Si applichi a sia impostato su Macchina. Nel sistema operativo Chrome, il valore viene applicato a Utente corrente*.
  4. Assicurati che lo Stato del criterio non abbia un Conflitto.

Risolvere i problemi di configurazione

Rivedi gli attributi del certificato nella pagina dei dettagli del dispositivo per verificare che siano elencati correttamente

Puoi utilizzare i log di verifica degli endpoint 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 Endpoint Verification (Verifica endpoint) e vai a Options (Opzioni).
  2. Seleziona Log level > All > Scarica log.
  3. Apri una richiesta di assistenza presso l'assistenza clienti Google Cloud e condividi i log per un ulteriore debug.