Een OpenID Connect-provider maken in Azure Kubernetes Service (AKS)
OpenID Connect (OIDC) breidt het OAuth 2.0-autorisatieprotocol uit voor gebruik als een ander verificatieprotocol dat is uitgegeven door Microsoft Entra ID. U kunt OIDC gebruiken om eenmalige aanmelding (SSO) in te schakelen tussen OAuth-toepassingen in uw AKS-cluster (Azure Kubernetes Service) met behulp van een beveiligingstoken dat een id-token wordt genoemd. Met uw AKS-cluster kunt u de OIDC-verlener (OpenID Connect) inschakelen, waarmee Microsoft Entra ID, of het identiteits- en toegangsbeheerplatform van een andere cloudprovider, de openbare ondertekeningssleutels van de API-server kunnen detecteren.
AKS roteert de sleutel automatisch en periodiek. Als u niet wilt wachten, kunt u de sleutel handmatig en onmiddellijk draaien. De maximale levensduur van het token dat is uitgegeven door de OIDC-provider is één dag.
Waarschuwing
Als u de OIDC-verlener inschakelt op een bestaand cluster, wordt de verlener van het huidige serviceaccounttoken gewijzigd in een nieuwe waarde, waardoor de api-server opnieuw wordt opgestart. Als uw toepassingspods met een servicetoken de status Mislukt blijven nadat u de OIDC-verlener hebt ingeschakeld, raden we u aan de pods handmatig opnieuw op te starten.
In dit artikel leert u hoe u de OIDC-verlener voor uw cluster maakt, bijwerkt en beheert.
Belangrijk
Nadat u de OIDC-verlener in het cluster hebt ingeschakeld, wordt het uitschakelen ervan niet ondersteund.
Het token moet periodiek worden vernieuwd. Als u de SDK gebruikt, wordt de rotatie automatisch uitgevoerd. Anders moet u het token elke 24 uur handmatig vernieuwen.
Vereisten
- Azure CLI versie 2.42.0 of hoger. Voer de opdracht uit
az --version
om uw versie te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - AKS ondersteunt de OIDC-verlener op versie 1.22 en hoger.
Een AKS-cluster maken met de OIDC-verlener
U kunt een AKS-cluster maken met behulp van de opdracht az aks create met de --enable-oidc-issuer
parameter om de OIDC-verlener in te schakelen. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt met één knooppunt in de myResourceGroup:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
Een AKS-cluster bijwerken met OIDC-verlener
U kunt een AKS-cluster bijwerken met behulp van de opdracht az aks update met de --enable-oidc-issuer
parameter om de OIDC-verlener in te schakelen. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster bijgewerkt:
az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer
De URL van de OIDC-verlener weergeven
Voer de opdracht az aks show uit om de URL van de OIDC-verlener op te halen. Vervang de standaardwaarden voor de clusternaam en de naam van de resourcegroep.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
De verlener is standaard ingesteld op het gebruik van de basis-URL https://{region}.oic.prod-aks.azure.com
, waarbij de waarde overeenkomt {region}
met de locatie waarin het AKS-cluster wordt geïmplementeerd.
De OIDC-sleutel draaien
Als u de OIDC-sleutel wilt draaien, voert u de opdracht az aks oidc-issuer uit. Vervang de standaardwaarden voor de clusternaam en de naam van de resourcegroep.
az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup
Belangrijk
Nadat u de sleutel hebt gedraaid, verloopt de oude sleutel (key1) na 24 uur. Zowel de oude sleutel (key1) als de nieuwe sleutel (key2) zijn geldig binnen de periode van 24 uur na rotatie. Als u de oude sleutel (sleutel1) onmiddellijk ongeldig wilt maken, moet u de OIDC-sleutel tweemaal draaien en de pods opnieuw starten met behulp van geprojecteerde serviceaccounttokens. Bij dit proces zijn sleutel2 en sleutel3 geldig en is sleutel1 ongeldig.
De OIDC-sleutels controleren
De URL van de OIDC-verlener ophalen
Voer de opdracht az aks show uit om de URL van de OIDC-verlener op te halen. Vervang de standaardwaarden voor de clusternaam en de naam van de resourcegroep.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
De uitvoer moet lijken op het volgende:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/
De verlener is standaard ingesteld op het gebruik van de basis-URL https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}
, waarbij de waarde overeenkomt {region}
met de locatie waarin het AKS-cluster wordt geïmplementeerd. De waarde {uuid}
vertegenwoordigt de OIDC-sleutel. Dit is een willekeurig gegenereerde GUID voor elk cluster dat onveranderbaar is.
Het detectiedocument ophalen
Als u het detectiedocument wilt ophalen, kopieert u de URL https://(OIDC issuer URL).well-known/openid-configuration
en opent u het in de browser.
De uitvoer moet lijken op het volgende:
{
"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"
]
}
Het JWK Set-document ophalen
Als u het JWK Set-document wilt ophalen, kopieert u het jwks_uri
uit het detectiedocument en plakt u het in de adresbalk van uw browser.
De uitvoer moet lijken op het volgende:
{
"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"
}
]
}
Tijdens het roteren van sleutels is er nog één andere sleutel aanwezig in het detectiedocument.
Volgende stappen
- Zie Configureren voor het maken van een vertrouwensrelatie tussen een app en een externe id-provider om te begrijpen hoe een federatieve identiteitsreferentie een vertrouwensrelatie maakt tussen een toepassing in uw cluster en een externe id-provider.
- Bekijk Microsoft Entra Workload-ID (preview). Deze verificatiemethode kan worden geïntegreerd met de systeemeigen Kubernetes-mogelijkheden om te federeren met externe id-providers namens de toepassing.
- Zie Beveiligd pod-netwerkverkeer om te begrijpen hoe u de netwerkbeleidsengine gebruikt en Kubernetes-netwerkbeleid maakt om de verkeersstroom tussen pods in AKS te beheren.
Azure Kubernetes Service