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. További információt a kubelogin bemutatása és a kubectl bemutatása tartalmaz.
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 --kubeconfig
KUBECONFIG
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.
Feljegyzé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
Feljegyzé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.
Feljegyzé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 Connect (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-3960e28e3630
AKS 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-id
kubelogin 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.
Kapcsolódó tartalom
- Megtudhatja, hogyan integrálhatja az AKS-t a Microsoft Entra ID-val az AKS által felügyelt Microsoft Entra ID integrációs útmutatóban.
- A felügyelt identitások AKS-ben való használatának megkezdéséhez lásd : Felügyelt identitás használata az AKS-ben.
- A számítási feladatok identitásainak az AKS-ben való használatának megkezdéséhez lásd: Számítási feladatok identitásának használata az AKS-ben.
Azure Kubernetes Service