Dela via


Skapa en OpenID Connect-provider i Azure Kubernetes Service (AKS)

OpenID Connect (OIDC) utökar OAuth 2.0-auktoriseringsprotokollet för användning som ett annat autentiseringsprotokoll utfärdat av Microsoft Entra ID. Du kan använda OIDC för att aktivera enkel inloggning (SSO) mellan OAuth-aktiverade program i ditt AkS-kluster (Azure Kubernetes Service) med hjälp av en säkerhetstoken som kallas för en ID-token. Med ditt AKS-kluster kan du aktivera OIDC-utfärdaren (OpenID Connect), som gör att Microsoft Entra-ID eller en annan molnleverantörs identitets- och åtkomsthanteringsplattform kan identifiera API-serverns offentliga signeringsnycklar.

AKS roterar nyckeln automatiskt och med jämna mellanrum. Om du inte vill vänta kan du rotera nyckeln manuellt och omedelbart. Den maximala livslängden för token som utfärdats av OIDC-providern är en dag.

Varning

Om du aktiverar OIDC-utfärdaren i ett befintligt kluster ändras den aktuella utfärdaren av tjänstkontotoken till ett nytt värde, vilket kan orsaka stilleståndstid när API-servern startas om. Om dina programpoddar som använder en tjänsttoken förblir i ett feltillstånd när du har aktiverat OIDC-utfärdaren rekommenderar vi att du startar om poddarna manuellt.

I den här artikeln får du lära dig hur du skapar, uppdaterar och hanterar OIDC-utfärdaren för klustret.

Viktigt!

När du har aktiverat OIDC-utfärdaren i klustret stöds inte inaktivering.

Token måste uppdateras regelbundet. Om du använder SDK:et sker rotationen automatiskt. Annars måste du uppdatera token manuellt var 24:e timme.

Förutsättningar

  • Azure CLI version 2.42.0 eller senare. Kör az --version för att hitta din version. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
  • AKS stöder OIDC-utfärdaren på version 1.22 och senare.

Skapa ett AKS-kluster med OIDC-utfärdaren

Du kan skapa ett AKS-kluster med kommandot az aks create med parametern --enable-oidc-issuer för att aktivera OIDC-utfärdaren. I följande exempel skapas ett kluster med namnet myAKSCluster med en nod i myResourceGroup:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --enable-oidc-issuer \
    --generate-ssh-keys

Uppdatera ett AKS-kluster med OIDC-utfärdare

Du kan uppdatera ett AKS-kluster med kommandot az aks update med parametern --enable-oidc-issuer för att aktivera OIDC-utfärdaren. I följande exempel uppdateras ett kluster med namnet myAKSCluster:

az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer 

Visa url:en för OIDC-utfärdaren

Om du vill hämta url:en för OIDC-utfärdaren kör du kommandot az aks show . Ersätt standardvärdena för klusternamnet och resursgruppens namn.

az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv

Som standard är utfärdaren inställd på att använda bas-URL:en https://{region}.oic.prod-aks.azure.com, där värdet för {region} matchar platsen där AKS-klustret distribueras.

Rotera OIDC-nyckeln

Om du vill rotera OIDC-nyckeln kör du kommandot az aks oidc-issuer . Ersätt standardvärdena för klusternamnet och resursgruppens namn.

az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup

Viktigt!

När du roterar nyckeln upphör den gamla nyckeln (key1) att gälla efter 24 timmar. Både den gamla nyckeln (key1) och den nya nyckeln (key2) är giltiga inom 24-timmarsperioden efter rotation. Om du vill ogiltigförklara den gamla nyckeln (key1) omedelbart måste du rotera OIDC-nyckeln två gånger och starta om poddarna med hjälp av beräknade tjänstkontotoken. Med den här processen är key2 och key3 giltiga och key1 är ogiltig.

Kontrollera OIDC-nycklarna

Hämta url:en för OIDC-utfärdaren

Om du vill hämta url:en för OIDC-utfärdaren kör du kommandot az aks show . Ersätt standardvärdena för klusternamnet och resursgruppens namn.

az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv

Utflödet bör likna följande:

https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/

Som standard är utfärdaren inställd på att använda bas-URL:en https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}, där värdet för {region} matchar platsen där AKS-klustret distribueras. Värdet {uuid} representerar OIDC-nyckeln, som är ett slumpmässigt genererat guid för varje kluster som inte kan ändras.

Hämta identifieringsdokumentet

Om du vill hämta identifieringsdokumentet kopierar du URL:en https://(OIDC issuer URL).well-known/openid-configuration och öppnar den i webbläsaren.

Utflödet bör likna följande:

{
  "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"
  ]
}

Hämta JWK-setdokumentet

Om du vill hämta JWK Set-dokumentet kopierar jwks_uri du från identifieringsdokumentet och klistrar in det i webbläsarens adressfält.

Utflödet bör likna följande:

{
  "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"
    }
  ]
}

Under nyckelrotationen finns det en annan nyckel i identifieringsdokumentet.

Nästa steg