Creare un provider OpenID Connect nel servizio Azure Kubernetes
OpenID Connect (OIDC) estende il protocollo di autorizzazione OAuth 2.0 da usare come un altro protocollo di autenticazione rilasciato da Microsoft Entra ID. È possibile usare OIDC per abilitare l'accesso Single Sign-On (SSO) tra le applicazioni abilitate per OAuth, nel cluster del servizio Azure Kubernetes usando un token di sicurezza denominato token ID. Con il cluster del servizio Azure Kubernetes è possibile abilitare l'autorità di certificazione OpenID Connect (OIDC), che consente a Microsoft Entra ID o a un’altra piattaforma di gestione degli accessi e identità del provider di servizi cloud di individuare le chiavi di firma pubblica del server API.
Il servizio Azure Kubernetes cambia automaticamente e periodicamente la chiave. Se non si vuole aspettare, puoi cambiare la chiave manualmente e immediatamente. La durata massima del token emesso dal provider OIDC è di un giorno.
Avviso
Abilitando l’emissione dell’OIDC in un cluster esistente, si modifica l’emittente del token dell'account del servizio attuale e si ottiene un nuovo valore che può causare tempi di inattività, dato che si riavvia il server API. Se i pod dell'applicazione che usano un token di servizio rimangono in uno stato di errore dopo l'abilitazione dell'OIDC, si consiglia di riavviare manualmente i pod.
Questo articolo mostra come creare, aggiornare e gestire l'autorità emittente OIDC per il cluster.
Importante
Dopo aver abilitato l'autorità emittente OIDC nel cluster, la disabilitazione non è supportata.
Il token deve essere aggiornato periodicamente. Se si usa l'SDK, la rotazione è automatica. In caso contrario, è necessario aggiornare manualmente il token ogni 24 ore.
Prerequisiti
- Interfaccia della riga di comando di Azure versione 2.42.0 o successiva. Eseguire
az --version
per trovare la versione in uso. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Il servizio Azure Kubernetes supporta l'autorità emittente OIDC nella versione 1.22 e successive.
Creare un cluster del servizio Azure Kubernetes con l’autorità di certificazione OIDC
È possibile creare un cluster del servizio Azure Kubernetes usando il comando az aks create con il parametro --enable-oidc-issuer
per abilitare l'autorità di certificazione OIDC. L'esempio seguente crea un cluster chiamato myAKSCluster con un nodo nel myResourceGroup:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
Aggiornare un cluster del servizio Azure Kubernetes con l'autorità emittente OIDC
È possibile aggiornare un cluster del servizio Azure Kubernetes usando il comando az aks update con il parametro --enable-oidc-issuer
per abilitare l'autorità emittente OIDC. L'esempio seguente aggiorna un cluster chiamato myAKSCluster:
az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer
Visualizzare l'URL dell'autorità emittente OIDC
Per ottenere l'URL dell'autorità di certificazione OIDC, eseguire il comando az aks show. Sostituire i valori predefiniti con il nome del cluster e il nome del gruppo di risorse.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
Per impostazione predefinita, l'autorità di certificazione è impostata per usare l'URL di base https://{region}.oic.prod-aks.azure.com
, dove il valore per {region}
corrisponde al luogo dove viene distribuito il cluster del servizio Azure Kubernetes.
Cambiare la chiave OIDC
Per cambiare la chiave OIDC, eseguire il comando az aks oidc-issuer. Sostituire i valori predefiniti con il nome del cluster e il nome del gruppo di risorse.
az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup
Importante
Dopo aver cambiato la chiave, la chiave precedente (key1) scade dopo 24 ore. Sia la chiave precedente (key1) che la nuova chiave (key2) sono valide per 24 ore dopo la rotazione. Se si vuole invalidare immediatamente la chiave precedente (key1), è necessario cambiare la chiave OIDC due volte e riavviare i pod usando token dell'account del servizio proiettati. Con questo processo, key2 e key3 sono validi, mentre key1 non è valido.
Controllare le chiavi OIDC
Ottenere l'URL dell'autorità emittente OIDC
Per ottenere l'URL dell'autorità di certificazione OIDC, eseguire il comando az aks show. Sostituire i valori predefiniti con il nome del cluster e il nome del gruppo di risorse.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
L'output sarà simile al seguente:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/
Per impostazione predefinita, l'autorità di certificazione è impostata per usare l'URL di base https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}
, dove il valore per {region}
corrisponde al luogo dove viene distribuito il cluster del servizio Azure Kubernetes. Il valore {uuid}
rappresenta la chiave OIDC, che è un GUID generato in modo casuale per ogni cluster, il quale non è modificabile.
Ottenere il documento di individuazione
Per ottenere il documento di individuazione, copiare l'URL https://(OIDC issuer URL).well-known/openid-configuration
e aprirlo nel browser.
L'output sarà simile al seguente:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/00000000-0000-0000-0000-000000000000/",
"jwks_uri": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
Ottenere il documento JWK Set
Per ottenere il documento JWK Set, copiare il jwks_uri
dal documento di individuazione e incollarlo nella barra degli indirizzi del browser.
L'output sarà simile al seguente:
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
},
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
}
]
}
Durante il cambiamento delle chiavi, nel documento di individuazione è presente un'altra chiave.
Passaggi successivi
- Vedere configurare la creazione di una relazione di attendibilità tra un'app e un provider di identità esterno per comprendere come una credenziale di identità federata crea una relazione di attendibilità tra un'applicazione nel cluster e un provider di identità esterno.
- Esaminare ID carico di lavoro Di Microsoft Entra (anteprima). Questo metodo di autenticazione si integra con le funzionalità native di Kubernetes per funzionare con qualsiasi provider di identità esterno per conto dell'applicazione.
- Vedere Proteggere il traffico di rete dei pod per comprendere come usare il motore dei criteri di rete e creare criteri di rete Kubernetes per controllare il flusso di traffico tra i pod nel servizio Azure Kubernetes.
Azure Kubernetes Service