Delen via


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