Puoi controllare gli accessi degli utenti alle reti Wi-Fi e alle app e siti web interni della tua organizzazione sui dispositivi Chrome OS utilizzando un connettore per distribuire certificati dei dispositivi rilasciati dall'autorità di certificazione (CA) locale. Google Cloud Certificate Connector è un servizio Windows che distribuisce in modo sicuro certificati e chiavi di autenticazione dal server CA ai dispositivi degli utenti.
Per i dispositivi Chrome OS, le chiavi private per i certificati vengono generate sul dispositivo. La chiave pubblica corrispondente viene archiviata temporaneamente sui server di Google ed eliminata dopo l'installazione del certificato.
Requisiti di sistema
- Dispositivi ChromeOS con versione 138 o successive.
- Un progetto Google Cloud (GCP) con un account di fatturazione configurato.
Prima di iniziare
- La configurazione del deployment dei certificati con SCEP richiede le competenze e le autorizzazioni necessarie per gestire Servizi certificati Microsoft Active Directory per l'organizzazione. Prima di procedere, assicurati che siano coinvolti membri dell'organizzazione dotati delle competenze e delle autorizzazioni richieste.
- Se necessiti del certificato Nome soggetto per utilizzare i nomi utente di Active Directory, devi sincronizzare Active Directory e Google Directory tramite Google Cloud Directory Sync (GCDS). Se necessario, configura GCDS.
- Per configurare il server NDES (Network Device Enrollment Service) di Windows, la Console di amministrazione Google e GCP per la registrazione dei certificati ChromeOS, consulta Configurazione della registrazione dei certificati per ChromeOS tramite SCEP.
Passaggio 1: scarica Google Cloud Certificate Connector
Nota: se hai già configurato Google Cloud Certificate Connector per dispositivi mobili, salta questo passaggio e vai direttamente al Passaggio 3: configura Google Cloud Certificate Connector.
Esegui i seguenti passaggi sul server CA o su una macchina Windows che può raggiungere il server. Se la tua organizzazione ha diversi server, puoi utilizzare su tutti lo stesso agente di Certificate Connector.
Per scaricare e installare il file di installazione:
Nota: il download di Google Cloud Certificate Connector e dei relativi componenti deve essere effettuato soltanto una volta, al momento della configurazione iniziale dei certificati per l'organizzazione. I certificati e i profili dei certificati possono condividere un singolo connettore di certificati.
-
Accedi a Console di amministrazione Google con un account amministratore.
Se non utilizzi un account amministratore, non puoi accedere alla Console di amministrazione.
-
Vai a Dispositivi > Reti.
È necessario disporre del privilegio di amministratore Impostazioni dispositivi condivisi.
- Fai clic su Certificati
Connessioni con l'autorità di certificazione
Scarica connettore.
- Fai clic su Scarica.
- Esegui il programma di installazione del connettore di certificati come amministratore.
Importante: per impostazione predefinita, il programma di installazione registra il servizio per utilizzare l'account LocalService per l'accesso. Quando il servizio viene registrato, il software viene contrassegnato come installato. Quindi, il programma di installazione tenta di avviare il servizio. Se è la prima volta che installi il connettore, il servizio non verrà avviato a causa di file di configurazione obbligatori mancanti. Per ottenere questi file di configurazione, segui le istruzioni rimanenti in questo articolo.
Passaggio 2: scarica la chiave del service account Pub/Sub
- Dal tuo progetto Google Cloud (GCP), vai a Service account.
- Fai clic sul service account creato per Google Cloud Certificate Connector.
- Vai a Keys (Chiavi).
- Fai clic su Aggiungi chiave
Crea una nuova chiave
JSON
Crea.
- Sposta il file JSON scaricato nella directory di installazione del connettore.
Passaggio 3: configura Google Cloud Certificate Connector
- (Facoltativo) Esegui lo strumento di configurazione (
C:\Program Files\Google Cloud Certificate Connector\Config Tool.exe) come amministratore per registrare di nuovo il servizio con un nome account diverso dall'account LocalService predefinito. - Nella cartella di Google Cloud Certificate Connector creata durante l'installazione (
C:\Programmi\Google Cloud Certificate Connector), crea un nuovo file adapter_config.json e inserisci la configurazione che preferisci. Per un elenco completo dei parametri di configurazione, vai a Google Cloud Certificate Connector - Parametri di configurazione.
Nota: per supportare la compatibilità con le versioni precedenti, il connettore funziona con il file di configurazione precedente config.json. Cerca automaticamente il file di configurazione legacy se il file adapter_config.json non è presente. - Avvia il servizio Google Cloud Certificate Connector:
- In Windows, apri Servizi.
- Seleziona Google Cloud Certificate Connector.
- Fai clic su Avvia. Assicurati che lo stato passi a In esecuzione. Il servizio si riavvia automaticamente al riavvio della macchina.
Se scarichi una nuova chiave del service account o modifichi il file di configurazione, riavvia il servizio affinché le modifiche diventino effettive.
Come funziona l'autenticazione mediante certificato con Google Cloud Certificate Connector
Google Cloud Certificate Connector è un servizio Windows che stabilisce una connessione esclusiva tra il server CA e Google. Il connettore di certificati è configurato e reso sicuro mediante un file di configurazione e un file della chiave, entrambi gestiti dalla tua organizzazione.
Per assegnare certificati a dispositivi e utenti, devi utilizzare i profili di certificato. Per assegnare un profilo, scegli un'unità organizzativa e aggiungilo all'unità. Il profilo include l'autorità di certificazione che rilascia i certificati. Quando vengono registrati, i dispositivi Chrome OS ricevono i criteri configurati e installano il certificato prima dell'accesso dell'utente, se viene eseguito il deployment del certificato di un dispositivo, o dopo l'accesso dell'utente, se viene eseguito il deployment del certificato di un utente. Se il dispositivo è già registrato o se il profilo utente esiste già, il certificato viene installato quando il dispositivo o l'utente riceve un criterio aggiornato dalla Console di amministrazione.
Google Cloud Certificate Connector - Parametri di configurazione
Definizioni
Di seguito sono riportate le definizioni degli oggetti di configurazione accettati da Google Cloud Certificate Connector.
Il file adapter_config.json deve contenere una singola configurazione di questo oggetto ed è l'oggetto più esterno nel file JSON. Ha le seguenti chiavi possibili e i relativi valori corrispondenti:
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| legacy_configuration | Facoltativo se viene fornita la adapter_configuration |
Configurazione legacy Se specificato, il connettore utilizzerà il protocollo legacy per le richieste associate all'ID abbonamento Pub/Sub incluso in questa configurazione. Le funzionalità disponibili sono limitate a quelle fornite in questa configurazione. Un determinato ID abbonamento deve essere presente nella configurazione dell'adattatore o in quella precedente, ma non in entrambe. |
| adapter_configuration | Facoltativo se viene fornita legacy_configuration |
Configurazione dell'adattatore Se specificato, il connettore utilizzerà il nuovo protocollo per le richieste associate agli ID abbonamento Pub/Sub inclusi in questa configurazione e configurerà anche il connettore stesso con gli attributi forniti in questa configurazione. |
| profile_configurations | Facoltativo | []Configurazione del profilo |
| ca_configurations | Obbligatorio se sono specificati adapter_configuration o profile_configurations | []Configurazione CA |
Descrive la configurazione precedente supportata dal connettore. Questo tipo di configurazione è ancora supportato per garantire la compatibilità con le versioni precedenti per gli utenti attuali.
Il connettore attuale comprende questa configurazione ed elabora le richieste provenienti dall'subscription_id specificato, contenuto in legacy_configuration, utilizzando il protocollo legacy senza l'API Certificate Provisioning.
Il connettore prevede di trovare un file della chiave, key.json, per autenticare il service account per la comunicazione Pub/Sub, il cui comportamento non è cambiato.
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| request_subscription | Obbligatorio |
stringa Questo è il nome dell'ID abbonamento che il connettore ascolta per le richieste. |
| response_topic | Obbligatorio |
stringa Questo è il nome dell'argomento a cui il connettore invia i certificati emessi. |
| max_scep_queries_per_second | Facoltativo |
float Il connettore utilizza questo parametro per controllare la velocità con cui invia il traffico al server CA. Se questo valore non viene trovato, verrà utilizzato il valore predefinito 2. |
| poll_period | Facoltativa |
stringa Questo parametro è deprecato. Verrà analizzato, ma non verrà utilizzato internamente da Google Cloud Certificate Connector. |
I parametri di questa configurazione sono attributi del connettore stesso. Può contenere i seguenti campi:
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| instance_id | Facoltativo |
stringa L'identificatore univoco utilizzato dal connettore per poter essere identificato con questo ID. Deve essere univoco per tutti i connettori nello stesso progetto. Se non è presente, il connettore genera un GUID casuale da identificare. |
| request_subscriptions | Obbligatorio |
[]stringa I nomi completi degli abbonamenti che il connettore ascolta. Gli abbonamenti devono essere nel formato projects/<projectid>/subscriptions/<id>. Tutti gli abbonamenti in questo elenco devono provenire dallo stesso progetto. |
| key_filename | Obbligatorio |
stringa Il nome del file della key che il connettore utilizza per l'autenticazione. Il file key deve trovarsi nella stessa directory del file eseguibile del connettore. Il connettore utilizza questo file key per autenticare i servizi Google utilizzati dal nuovo flusso, ovvero l'ascolto degli abbonamenti indicati nell'attributo request_subscription_ids e l'invocazione dell'API CertificateProvisioningAPI. |
| proxy_mode | Facoltativo |
stringa Questo attributo descrive la modalità proxy utilizzata dal connettore per instradare il traffico. Le modalità possibili al momento sono:
Se proxy_mode non viene specificato, system viene utilizzato come valore predefinito. |
| proxy_server | Obbligatorio se fixed_servers viene utilizzato come proxy_mode; altrimenti viene ignorato. | stringa |
| proxy_bypass_list | Facoltativo |
stringa Viene utilizzato se fixed_servers viene utilizzato come proxy_mode. Se omesso, verrà utilizzato una lista di bypass vuoto. |
| log_level | Facoltativo |
stringa Descrive il livello dei log che il connettore deve generare. I valori possibili sono: debug, info, warn, error. Il connettore restituisce qualsiasi evento al livello specificato e superiore. Se omesso, viene utilizzato info come valore predefinito. |
| max_number_of_ongoing_requests | Facoltativo |
int Il connettore può elaborare un numero limitato di richieste contemporaneamente, il valore predefinito è 500. Una volta raggiunto questo limite, non vengono accettate nuove richieste finché non si libera un posto completando una registrazione o scadendo il tempo. I dispositivi client o le CA non reattivi bloccano le registrazioni, occupando i posti fino alla risoluzione del problema. Limiti più elevati aumentano l'utilizzo della memoria. |
Obbligatorio solo quando si utilizza un profilo generico nella Console di amministrazione Google, ovvero un profilo che utilizza una connessione CA generica. La seguente configurazione descrive gli attributi del certificato da emettere.
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| profile_config_id | Obbligatorio |
stringa L'identificatore univoco della configurazione. Il connettore utilizza questa configurazione per i profili dei certificati con identificatore di riferimento della configurazione del profilo di provisioning dei certificati corrispondente. |
| subject_name | Obbligatorio se non viene fornito subject_alt_names |
struct
|
| subject_alt_names |
Obbligatorio se non viene fornito subject_name. |
[]subject_alt_name Si tratta di un oggetto composto da due chiavi obbligatorie. Il primo tipo di chiave può essere uno tra "USER_PRINCIPLE", "RFC822", "DNS", "URI". La seconda chiave è name e deve contenere il valore stringa equivalente del tipo scelto. Il connettore utilizza questo parametro per controllare la velocità con cui invia il traffico al server CA. Se questo valore non viene trovato, viene utilizzato il valore predefinito 2. Nota: i valori subject_name e subject_alt_names possono essere un segnaposto che verrà sostituito con un valore basato sugli attributi dell'utente e del dispositivo, se disponibili. Il segnaposto può essere uno dei seguenti :
|
| key_usages | È richiesto almeno un utilizzo della chiave. |
[]stringa Ogni utilizzo specifica un singolo utilizzo della chiave. I valori possibili sono "KEY_ENCIPHERMENT" e "SIGNING". |
| extended_key_usages | Facoltativo |
[]stringa Ogni utilizzo specifica un singolo utilizzo della chiave. I valori possibili sono "CLIENT_AUTH" e "SERVER_AUTH". |
| template_name | Facoltativo |
stringa Il nome del modello da richiedere all'autorità di certificazione. Il nome indicato qui deve corrispondere a un nome di modello, non al nome visualizzato, nell'autorità di certificazione. |
| signature_algorithm | Obbligatorio |
stringa L'algoritmo di firma con cui verrà chiesto al dispositivo client, che contiene la chiave privata, di firmare la richiesta di firma del certificato (CSR). Il valore indicato qui deve essere compatibile con il tipo di chiave selezionato nella Console di amministrazione. Attualmente, viene offerto un solo algoritmo di firma per tipo di chiave. I valori possibili sono "RSA_SHA256" e "ECDSA_SHA256". |
Questa configurazione descrive i parametri che verranno utilizzati nella comunicazione con la CA.
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| tipo | Obbligatorio |
stringa Il tipo di connessione CA. Al momento è supportato solo SCEP. |
| ca_connection_config_id | Obbligatorio |
stringa L'identificatore univoco della configurazione. Il connettore sceglie di utilizzare questa configurazione per la comunicazione con la CA quando riceve un processo di provisioning dei certificati con un identificatore di configurazione della connessione dell'autorità di certificazione corrispondente. |
| ca_endpoint_url | Obbligatorio |
stringa L'URL del server CA a cui il connettore si connette per richiedere un certificato. |
| max_scep_queries_per_second | Facoltativo |
float Il connettore utilizza questo parametro per controllare la velocità con cui invia il traffico al server CA. Se questo valore non viene trovato, viene utilizzato il valore predefinito 2. |
| challenge_filename | Facoltativo |
stringa Specifica il file con la verifica statica per le richieste di certificato della CA. Il service account del connettore deve disporre delle autorizzazioni di lettura per questo file. Può essere configurato solo uno tra challenge_filename e dynamic_challenge per CA. |
| dynamic_challenge | Facoltativo |
Configurazione della verifica dinamica In una singola configurazione CA è possibile impostare solo uno tra challenge_filename o dynamic_challenge. |
Questa configurazione descrive i parametri da utilizzare durante il recupero e l'estrazione di una verifica dinamica da un endpoint esterno.
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| challenge_endpoint_url | Obbligatorio |
stringa L'URL dell'endpoint utilizzato dal connettore per richiedere una verifica. |
| number_of_challenge_fetchers | Facoltativo |
int Il numero di fetcher che lavorano contemporaneamente per recuperare le verifiche dall'endpoint delle verifiche. Questo numero deve essere sempre inferiore al numero di verifiche che l'endpoint può fornire prima di esaurirle. Il valore predefinito è 2. |
| retry_interval_minutes | Facoltativo |
float Il numero di minuti che ogni fetcher di verifiche attende prima di riprovare a recuperare una nuova verifica dopo un tentativo non riuscito. Il valore non può essere inferiore a 0,016 ~= 1 secondo. Il valore predefinito è 1 minuto. |
| challenge_validity_minutes | Facoltativo |
int Il numero di minuti per cui è valida una verifica. Il valore predefinito è 60. |
| challenge_page_parser | Facoltativo |
Configurazione del parser di verifica Se non vengono specificati, verranno utilizzati i valori predefiniti. I valori predefiniti si basano sul comportamento della pagina di amministrazione di MS AD/CS. |
| kerberos | Facoltativo |
Configurazione Kerberos Se non viene fornito, il connettore non prevede alcun requisito di autenticazione per l'accesso all'endpoint di verifica. |
Questa configurazione descrive le opzioni da utilizzare durante l'analisi e l'estrazione della verifica dalla pagina restituita dall'endpoint della verifica.
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| convert_html_to_utf8 | Facoltativo |
booleano Il flag che indica se l'HTML recuperato dall'endpoint della verifica deve essere convertito in UTF-8. Il valore predefinito è true. |
| is_challenge_space_wrapped | Facoltativo |
booleano Il flag che indica se la password è racchiusa tra spazi. Il valore predefinito è true. |
| challenge_xpath | Facoltativo |
stringa L'espressione XPath che punta alla verifica nella pagina HTML restituita dall'endpoint della verifica. Il valore predefinito è "//*[@id="locPageFont"]/p[4]/b". |
| out_of_challenges_xpath | Facoltativo |
stringa L'XPath di un elemento che, se trovato, indica che il server di verifica ha esaurito le password di registrazione. Questo elemento deve essere visualizzato solo in quella pagina di errore specifica. Il valore predefinito è "//*[@id="locPageFont"]/ul/li[3]". |
Descrive la configurazione del connettore per la comunicazione basata su Kerberos con l'endpoint di verifica.
| Chiave | Facoltativo/obbligatorio | Tipo di valore |
|---|---|---|
| config_filename | Obbligatorio |
stringa Il nome del file di configurazione di Kerberos. |
| keytab_filename | Obbligatorio |
stringa Il nome del file keytab. |
| realm | Obbligatorio |
stringa Il nome del realm che verrà utilizzato dal connettore. Questo valore deve corrispondere a una voce del realm nel file di configurazione di Kerberos. |
| nome utente | Obbligatorio |
stringa Il nome del service account (SA) Windows che il connettore utilizzerà per l'autenticazione Kerberos. Deve corrispondere al service account da cui viene generato il file keytab. |
| server_spn | Obbligatorio |
stringa Il nome principale del servizio (SPN, Service Principal Name) dell'endpoint di verifica per il quale il connettore richiederà un ticket di servizio. Se viene fornita una stringa vuota (""), il connettore dedurrà l'SPN dall'URL dell'endpoint di verifica. |
| enable_fast | Facoltativo |
stringa Il flag che indica se il client deve utilizzare l'algoritmo Flexible Authentication Secure Tunneling (FAST). Questa opzione deve essere attivata prima sulla macchina server. Il valore predefinito è False. |
Esempi
Di seguito sono riportati alcuni esempi di oggetti di configurazione accettati da Google Cloud Certificate Connector.
{
"adapter_configuration": {
"request_subscriptions": [
"projects/project-2/subscriptions/request-subscription-C02keao",
"projects/project-2/subscriptions/request-subscription-A2Oqeo"
],
"key_filename": "adapter_key.json"
},
"profile_configurations": [
{
"profile_config_id": "profile_1",
"subject_name": {
"common_name": "Common Name 1",
"organization": "Company 1",
"organizational_unit": ["Org Unit 1"]
},
"subject_alt_names": [
{
"type": "RFC822",
"name": "${USER_EMAIL}"
}
],
"key_usages": ["SIGNING", "KEY_ENCIPHERMENT"],
"template_name": "SCEPTemplate",
"signature_algorithm" : "RSA_SHA256"
},
{
"profile_config_id": "profile_2",
"subject_name": {
"common_name": "Common Name 2",
"organization": "Company 2",
"organizational_unit": ["Org Unit 2"]
},
"subject_alt_names": [
{
"type": "RFC822",
"name": "${USER_EMAIL}"
}
],
"key_usages": ["SIGNING", "KEY_ENCIPHERMENT"],
"template_name": "SCEPTemplate2",
"signature_algorithm" : "RSA_SHA256"
}
],
"ca_configurations": [
{
"type": "SCEP",
"ca_connection_config_id": "NDES_CA_CONFIG_1",
"ca_endpoint_url": "http://cert-test-ad-new/certsrv/mscep/",
"challenge_filename": "challenge-file.txt"
},
{
"type": "SCEP",
"ca_connection_config_id": "dynamic_ca_config",
"ca_endpoint_url": "https://dynamic-ca.example.org/certsrv/mscep/",
"dynamic_challenge": {
"challenge_endpoint_url": "http://dynamic-ca.example.org/certsrv/mscep_admin",
"challenge_validity_minutes": 30,
"kerberos": {
"config_filename": "kerberos.conf",
"keytab_filename": "scepsvc.keytab",
"realm": "EXAMPLE.ORG",
"username": "scepsvc",
"server_spn": ""
}
}
}
],
"legacy_configuration": {
"response_topic": "projects/mdm-certificate/topics/response-C02gxaaci",
"request_subscription": "projects/mdm-certificate/subscriptions/request-subscription-C02gxaaci"
}
} {
"adapter_configuration": {
"request_subscriptions": [
"projects/project-2/subscriptions/request-subscription-C02keao"
],
"key_filename": "adapter_key.json",
"instance_id": "instance_12345"
},
"ca_configurations": [
{
"type": "SCEP",
"ca_connection_config_id": "NDES_CA_CONFIG_1",
"ca_endpoint_url": "http://cert-test-ad-new/certsrv/mscep/"
}
]
} {
"legacy_configuration": {
"response_topic": "projects/mdm-certificate/topics/response-C02gxaaci",
"request_subscription": "projects/mdm-certificate/subscriptions/request-subscription-C02gxaaci"
}
}Problemi noti e limitazioni
I certificati non possono essere revocati dopo essere stati installati su un dispositivo.
Google e marchi e loghi correlati sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.