Een OpenID-Verbinding maken-provider maken in Azure Kubernetes Service (AKS)
OpenID Verbinding maken (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 uw 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 OpenID Verbinding maken (OIDC) Issuer inschakelen, waarmee Microsoft Entra ID of een ander platform voor identiteits- en toegangsbeheer van de 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
Schakel OIDC Issuer in voor een bestaand cluster de huidige tokenverlener van het serviceaccount in op een nieuwe waarde, waardoor de API-server opnieuw wordt opgestart. Als uw toepassingspods die een servicetoken gebruiken, de status Mislukt blijven nadat u de OIDC Issuer 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
Na het inschakelen van OIDC-verlener op het cluster, wordt het niet ondersteund om het uit te schakelen.
Belangrijk
Het token moet periodiek worden vernieuwd. Als u 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 OIDC Issuer op versie 1.22 en hoger.
Een AKS-cluster maken met OIDC Issuer
U kunt een AKS-cluster maken met behulp van de opdracht az aks create met de --enable-oidc-issuer
parameter om de OIDC Issuer te gebruiken. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt met één knooppunt in de myResourceGroup:
az aks create -g myResourceGroup -n myAKSCluster --node-count 1 --enable-oidc-issuer
Een AKS-cluster bijwerken met OIDC Issuer
U kunt een AKS-cluster bijwerken met behulp van de opdracht az aks update met de --enable-oidc-issuer
parameter om de OIDC Issuer te gebruiken. In het volgende voorbeeld wordt een cluster met de naam myAKSCluster bijgewerkt:
az aks update -g myResourceGroup -n myAKSCluster --enable-oidc-issuer
De URL van de OIDC-verlener weergeven
Voer de opdracht az aks show uit om de URL van de OIDC Issuer op te halen. Vervang de standaardwaarden voor de clusternaam en de naam van de resourcegroep.
az aks show -n myAKScluster -g myResourceGroup --query "oidcIssuerProfile.issuerUrl" -otsv
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 -n myAKSCluster -g myResourceGroup
Belangrijk
Nadat u de sleutel hebt gedraaid, verloopt de oude sleutel (key1) na 24 uur. Dit betekent dat zowel de oude sleutel (sleutel1) als de nieuwe sleutel (sleutel2) binnen de periode van 24 uur geldig zijn. Als u de oude sleutel (key1) onmiddellijk ongeldig wilt maken, moet u de OIDC-sleutel tweemaal draaien en de pods opnieuw starten met behulp van geprojecteerde serviceaccounttokens. Vervolgens 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 Issuer op te halen. Vervang de standaardwaarden voor de clusternaam en de naam van de resourcegroep.
az aks show -n myAKScluster -g myResourceGroup --query "oidcIssuerProfile.issuerUrl" -otsv
De uitvoer moet er ongeveer als volgt uitzien:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/
De verlener is standaard ingesteld op het gebruik van de basis-URL https://{region}.oic.prod-aks.azure.com/{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 er ongeveer als volgt uitzien:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/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 er ongeveer als volgt uitzien:
{
"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.