Share via


Felhasználók hitelesítése a Kubelogin használatával az Azure Kubernetes Service-ben

Az Azure kubelogin beépülő modulja egy ügyféloldali hitelesítő beépülő modul , amely implementálja a Microsoft Entra-hitelesítést. A kubelogin beépülő modul olyan funkciókat kínál, amelyek nem érhetők el a kubectl parancssori eszközben.

A Microsoft Entra ID-val integrált És a Kubernetes 1.24-es vagy újabb verzióját futtató Azure Kubernetes Service-fürtök automatikusan a kubelogin formátumot használják.

Ez a cikk áttekintést és példákat nyújt arra, hogyan használható a kubelogin az AKS összes támogatott Microsoft Entra hitelesítési módszeréhez .

Korlátozások

  • Legfeljebb 200 csoportot vehet fel a Microsoft Entra JSON Webes Jogkivonat (JWT) jogcímbe. Ha több mint 200 csoporttal rendelkezik, fontolja meg az alkalmazásszerepkörök használatát.
  • A Microsoft Entra-azonosítóban létrehozott csoportokat csak az ObjectID-értékük tartalmazza, a megjelenített név nem. A sAMAccountName parancs csak a helyszíni Windows Server Active Directoryból szinkronizált csoportokhoz érhető el.
  • Az AKS-ben a szolgáltatásnév hitelesítési módszere csak felügyelt Microsoft Entra-azonosítóval működik, az Azure Active Directory korábbi verziójával nem.
  • Az eszközkód-hitelesítési módszer nem működik, ha Microsoft Entra feltételes hozzáférési szabályzat van beállítva Egy Microsoft Entra-bérlőn. Ebben a forgatókönyvben használjon interaktív webböngésző-hitelesítést.

A hitelesítés működése

A kubeloginnal való legtöbb interakcióhoz az convert-kubeconfig alparancsot kell használnia. Az alparancs a környezeti változóban vagy a környezeti változóban --kubeconfigKUBECONFIG megadott kubeconfig-fájlt használja a végleges kubeconfig fájl exec formátumba való konvertálásához a megadott hitelesítési módszer alapján.

A Kubelogin által implementált hitelesítési módszerek a Microsoft Entra OAuth 2.0 jogkivonat-engedélyezési folyamatok. A kubelogin alparancsokban gyakran használják az alábbi paraméterjelölőket. Ezek a jelzők általában használatra készek, amikor lekéri a kubeconfig fájlt az AKS-ből.

  • --tenant-id: A Microsoft Entra bérlőazonosítója.
  • --client-id: A nyilvános ügyfélalkalmazás alkalmazásazonosítója. Ezt az ügyfélalkalmazást csak az eszközkód, a webböngésző interaktív és az OAuth 2.0 erőforrás-tulajdonosi jelszó hitelesítő adatai (ROPC) (munkafolyamat-identitás) bejelentkezési metódusai használják.
  • --server-id: A webalkalmazás vagy erőforrás-kiszolgáló alkalmazásazonosítója. A jogkivonat ki van adva ehhez az erőforráshoz.

Megjegyzés:

A rendszer nem gyorsítótárazza a jogkivonatot minden hitelesítési módszer esetében a fájlrendszerben.

Hitelesítési módszerek

A következő szakaszok a támogatott hitelesítési módszereket és azok használatát ismertetik:

  • Eszközkód
  • Azure CLI
  • Webböngésző – interaktív
  • Szolgáltatásnév
  • Felügyelt identitás
  • Számítási feladatok identitása

Eszközkód

Az eszközkód az alparancs alapértelmezett hitelesítési módszere convert-kubeconfig . A -l devicecode paraméter megadása nem kötelező. Ez a hitelesítési módszer arra kéri a felhasználó eszközkódját, hogy jelentkezzen be egy böngésző munkamenetből.

A kubelogin- és exec beépülő modulok bevezetése előtt a kubectl azure-hitelesítési metódusa csak az eszközkód-folyamatot támogatta. A kódtár egy korábbi verzióját használta, amely egy előtaggal rendelkező audience jogcímet spn: tartalmazó jogkivonatot állít elő. Nem kompatibilis az AKS által felügyelt Microsoft Entra-azonosítóval, amely egy helyszíni (OBO) folyamatot használ. Az alparancs futtatásakor a convert-kubeconfig kubelogin eltávolítja az spn: előtagot a célközönség jogcíméből.

Ha a követelmények közé tartozik a korábbi verziók funkcióinak használata, adja hozzá az --legacy argumentumot. Ha a kubeconfig fájlt egy korábbi Azure Active Directory-fürtben használja, a kubelogin automatikusan hozzáadja a jelzőt --legacy .

Ebben a bejelentkezési módszerben a hozzáférési jogkivonat és a frissítési jogkivonat a ${HOME}/.kube/cache/kubelogin könyvtárban lesz gyorsítótárazva. Az elérési út felülbírálásához adja meg a paramétert --token-cache-dir .

Ha az AKS Microsoft Entra integrált fürtje a Kubernetes 1.24-et vagy korábbi verziót használja, manuálisan kell átalakítania a kubeconfig fájlformátumot az alábbi parancsok futtatásával:

export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

A gyorsítótárazott jogkivonatok törléséhez futtassa a következő parancsot:

kubelogin remove-tokens

Megjegyzés:

Az eszközkód bejelentkezési módszere nem működik, ha feltételes hozzáférési szabályzat van konfigurálva egy Microsoft Entra-bérlőn. Ebben a forgatókönyvben használja a webböngésző interaktív metódusát.

Azure CLI

Az Azure CLI hitelesítési módszere a bejelentkezési környezetet használja, amelyet az Azure CLI hoz létre a hozzáférési jogkivonat lekéréséhez. A jogkivonat ugyanabban a Microsoft Entra-bérlőben van kiállítva, mint a az login. A kubelogin nem ír jogkivonatokat a tokengyorsítótár-fájlba, mert azOkat már az Azure CLI felügyeli.

Megjegyzés:

Ez a hitelesítési módszer csak az AKS által felügyelt Microsoft Entra-azonosítóval működik.

Az alábbi példa bemutatja, hogyan használhatja az Azure CLI metódust a hitelesítéshez:

az login

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l azurecli

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Ha az Azure CLI konfigurációs könyvtára kívül esik a ${HOME} könyvtáron, használja a --azure-config-dir paramétert az convert-kubeconfig alparancshoz. A parancs létrehozza a kubeconfig fájlt a konfigurált környezeti változóval. Ugyanezt a konfigurációt úgy érheti el, hogy a környezeti változót erre a AZURE_CONFIG_DIR könyvtárra állítja egy kubectl-parancs futtatásakor.

Webböngésző – interaktív

A webböngésző interaktív hitelesítési módszere automatikusan megnyitja a böngészőt a felhasználó bejelentkezéséhez. A felhasználó hitelesítése után a böngésző az ellenőrzött hitelesítő adatokkal átirányítja a helyi webkiszolgálóra. Ez a hitelesítési módszer megfelel a feltételes hozzáférési szabályzatnak.

Ha ezzel a módszerrel hitelesíti a hitelesítést, a hozzáférési jogkivonat a ${HOME}/.kube/cache/kubelogin könyvtárban lesz gyorsítótárazva . Ezt az elérési utat a --token-cache-dir paraméterrel felülbírálhatja.

Tulajdonosi jogkivonat

Az alábbi példa bemutatja, hogyan használható egy tulajdonosi jogkivonat a webböngésző interaktív folyamatával:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l interactive

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Tulajdonjog igazolása jogkivonat

Az alábbi példa bemutatja, hogyan használható egy igazolási jogkivonat (PoP) a webböngésző interaktív folyamatával:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l interactive --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Szolgáltatásnév

Ez a hitelesítési módszer szolgáltatásnév használatával jelentkezik be a felhasználóba. A hitelesítő adatokat egy környezeti változó beállításával vagy a hitelesítő adatok parancssori argumentumban való használatával adhatja meg. A használható hitelesítő adatok jelszó vagy PFX-ügyféltanúsítvány.

A módszer használata előtt vegye figyelembe a következő korlátozásokat:

  • Ez a módszer csak felügyelt Microsoft Entra-azonosítóval működik.
  • A szolgáltatásnév legfeljebb 200 Microsoft Entra-csoport tagja lehet.

Környezeti változók

Az alábbi példa bemutatja, hogyan állíthat be ügyfélkulcsot környezeti változók használatával:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l spn

export AAD_SERVICE_PRINCIPAL_CLIENT_ID=<Service Principal Name (SPN) client ID>
export AAD_SERVICE_PRINCIPAL_CLIENT_SECRET=<SPN secret>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Ezután futtassa a következő parancsot:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l spn

export AZURE_CLIENT_ID=<SPN client ID>
export AZURE_CLIENT_SECRET=<SPN secret>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Parancssori argumentum

Az alábbi példa bemutatja, hogyan állíthat be egy ügyfélkulcsot parancssori argumentumban:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l spn --client-id <SPN client ID> --client-secret <SPN client secret>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Figyelmeztetés

A parancssori argumentum metódus a titkos kulcsot a kubeconfig fájlban tárolja.

Ügyféltanúsítvány

Az alábbi példa bemutatja, hogyan állíthat be ügyfélkulcsot ügyféltanúsítvány használatával:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l spn

export AAD_SERVICE_PRINCIPAL_CLIENT_ID=<SPN client ID>
export AAD_SERVICE_PRINCIPAL_CLIENT_CERTIFICATE=/path/to/cert.pfx
export AAD_SERVICE_PRINCIPAL_CLIENT_CERTIFICATE_PASSWORD=<PFX password>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Ezután futtassa a következő parancsot:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l spn

export AZURE_CLIENT_ID=<SPN client ID>
export AZURE_CLIENT_CERTIFICATE_PATH=/path/to/cert.pfx
export AZURE_CLIENT_CERTIFICATE_PASSWORD=<PFX password>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

PoP-jogkivonat és környezeti változók

Az alábbi példa bemutatja, hogyan állíthat be olyan PoP-jogkivonatot, amely a környezeti változókból kapott ügyféltitkot használja:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l spn --pop-enabled --pop-claims "u=/ARM/ID/OF/CLUSTER"

export AAD_SERVICE_PRINCIPAL_CLIENT_ID=<SPN client ID>
export AAD_SERVICE_PRINCIPAL_CLIENT_SECRET=<SPN secret>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Felügyelt identitás

Használja a felügyelt identitás-hitelesítési módszert olyan alkalmazásokhoz, amelyek a Microsoft Entra-hitelesítést támogató erőforrásokhoz csatlakoznak. Ilyenek például az Azure-erőforrások, például egy Azure-beli virtuális gép, egy virtuálisgép-méretezési csoport vagy az Azure Cloud Shell elérése.

Alapértelmezett felügyelt identitás

Az alábbi példa bemutatja, hogyan használhatja az alapértelmezett felügyelt identitást:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l msi

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Konkrét identitás

Az alábbi példa bemutatja, hogyan használható egy felügyelt identitás egy adott identitással:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l msi --client-id <msi-client-id>

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

Számítási feladatok identitása

A számítási feladatok identitáshitelesítési módszere a Microsoft Entrával összevont identitáshitelesítést használja az AKS-fürtökhöz való hozzáférés hitelesítéséhez. A módszer a Microsoft Entra integrált hitelesítését használja. A következő környezeti változók beállításával működik:

  • AZURE_CLIENT_ID: A számítási feladat identitásával összevont Microsoft Entra-alkalmazásazonosító.
  • AZURE_TENANT_ID: A Microsoft Entra bérlőazonosítója.
  • AZURE_FEDERATED_TOKEN_FILE: A számítási feladat identitásának aláírt helyességét tartalmazó fájl, például egy Kubernetes-előrejelzett szolgáltatásfiók (JWT) jogkivonat.
  • AZURE_AUTHORITY_HOST: Egy Microsoft Entra-szolgáltató alap URL-címe. Például: https://login.microsoftonline.com/.

Számítási feladatok identitásával elérheti a Kubernetes-fürtöket a CI-/CD-rendszerekből, például a GitHubról vagy az ArgoCD-ből anélkül, hogy a külső rendszerekben tárolnák a szolgáltatásnév hitelesítő adatait. Az OpenID Csatlakozás (OIDC) összevonás GitHubról való konfigurálásához tekintse meg az OIDC összevonási példát.

Az alábbi példa a számítási feladatok identitásának használatát mutatja be:

export KUBECONFIG=/path/to/kubeconfig

kubelogin convert-kubeconfig -l workloadidentity

Futtassa ezt a kubectl-parancsot a csomópontadatok lekéréséhez:

kubectl get nodes

A kubelogin használata az AKS-sel

Az AKS két belső Microsoft Entra-alkalmazást használ. Ezek az alkalmazásazonosítók minden környezetben azonosak.

A kiszolgálóoldal által használt 6dae42f8-4368-4678-94ff-3960e28e3630AKS Microsoft Entra kiszolgálóalkalmazás-azonosító. Az AKS-fürtökhöz hozzáférő hozzáférési jogkivonatot ki kell adni ehhez az alkalmazáshoz. A legtöbb kubelogin hitelesítési módszernél a következőt kell használnia --server-idkubelogin get-token: .

Az AKS Microsoft Entra ügyfélalkalmazás azonosítója, amelyet a kubelogin használ a nyilvános ügyfél-hitelesítés végrehajtásához a felhasználó nevében.80faf920-1908-4b52-b5ef-a8e7bedfc67a Az ügyfélalkalmazás-azonosítót az eszközkód és a webböngésző interaktív hitelesítési módszerei használják.