Megosztás a következőn keresztül:


Spring Cloud Azure-hitelesítés

Ez a cikk a következőre vonatkozik: ✔️ 4.14.0 ✔️ 5.8.0-s verzió

Ez a cikk az összes Spring Cloud Azure-hitelesítési módszert ismerteti.

DefaultAzureCredential

Ez DefaultAzureCredential a legtöbb olyan forgatókönyv esetében megfelelő, ahol az alkalmazást az Azure Cloudban kívánják futtatni. Ennek az az oka, hogy a DefaultAzureCredential fejlesztési környezetben történő hitelesítéshez használt hitelesítő adatok kombinálása az üzembe helyezéskor gyakran használt hitelesítő adatokkal.

Megjegyzés:

DefaultAzureCredential célja, hogy egyszerűbbé tegye az SDK használatának első lépéseit az ésszerű alapértelmezett viselkedéssel rendelkező gyakori forgatókönyvek kezelésével. Ha több vezérlést szeretne, vagy az alapértelmezett beállítások nem szolgálják ki a forgatókönyvet, más hitelesítő adatokat kell használnia.

A DefaultAzureCredential sorrendben a következő módszerekkel kísérli meg a hitelesítést:

Diagram showing the authentication mechanism for `DefaultAzureCredential`.

  • Környezet – A DefaultAzureCredential a környezeti változók alapján megadott fiókinformációkat olvassa be a hitelesítéshez.
  • Felügyelt identitás – Ha az alkalmazás olyan Azure-gazdagépre van telepítve, amelyen engedélyezve van a felügyelt identitás, akkor a DefaultAzureCredential a megfelelő fiókkal hitelesít.
  • IntelliJ – Ha az IntelliJ-hez készült Azure Toolkiten keresztül hitelesített, a rendszer ezzel a DefaultAzureCredential fiókkal fog hitelesíteni.
  • Visual Studio Code – Ha a Visual Studio Code Azure-fiók beépülő modulon keresztül hitelesített, azzal a DefaultAzureCredential fiókkal fog hitelesítést végezni.
  • Azure CLI – Ha az Azure CLI-paranccsal az login hitelesített egy fiókot, azzal DefaultAzureCredential a fiókkal fog hitelesíteni.

Tipp.

Győződjön meg arról, hogy a biztonsági tag megfelelő engedélyt kapott az Azure-erőforrás eléréséhez. További információ: Hozzáférés engedélyezése a Microsoft Entra-azonosítóval.

Megjegyzés:

A Spring Cloud Azure AutoConfigure 4.1.0 óta a rendszer alapértelmezés szerint automatikusan regisztrál egy ThreadPoolTaskExecutor elnevezett springCloudAzureCredentialTaskExecutor babot, és kezeli az Azure Identity által létrehozott összes szálat. A szálkészlet által kezelt egyes szálak neve előtaggal az-identity-van el elnevítve. Ez ThreadPoolTaskExecutor a bab független a Executor Spring Boot által biztosított babtól.

Managed identities

Gyakori kihívás a különböző összetevők közötti kommunikáció biztonságossá tételéhez használt titkos kódok és hitelesítő adatok kezelése. Managed identities eliminate the need to manage credentials. A felügyelt identitások olyan identitást biztosítanak az alkalmazások számára, amelyeket a Microsoft Entra-hitelesítést támogató erőforrásokhoz való csatlakozáskor használhatnak. Az alkalmazások a felügyelt identitás használatával szerezhetik be a Microsoft Entra-jogkivonatokat. Az alkalmazások például felügyelt identitással férhetnek hozzá az olyan erőforrásokhoz, mint az Azure Key Vault, ahol biztonságosan tárolhatja a hitelesítő adatokat, vagy hozzáférhet a tárfiókokhoz.

Javasoljuk, hogy kapcsolati sztring vagy kulcs használata helyett használjon felügyelt identitást az alkalmazásban, mert biztonságosabb, és megmenti a titkos kódok és hitelesítő adatok kezelésével kapcsolatos problémákat. Ebben az esetben DefaultAzureCredential jobban kiszolgálhatja a helyi fejlesztés forgatókönyvét a helyben tárolt fiókadatok használatával, majd az alkalmazás Azure Cloudban való üzembe helyezésével és felügyelt identitás használatával.

Felügyelt identitástípusok

A felügyelt identitásoknak két típusa létezik:

  • Rendszer által hozzárendelt – Egyes Azure-szolgáltatások lehetővé teszik a felügyelt identitások közvetlen engedélyezését egy szolgáltatáspéldányon. Ha engedélyezi a rendszer által hozzárendelt felügyelt identitást, létrejön egy identitás a Microsoft Entra-ban, amely az adott szolgáltatáspéldány életciklusához van kötve. So when the resource is deleted, Azure automatically deletes the identity for you. A rendszer működése alapján csak az adott Azure-erőforrás használhatja ezt az identitást ahhoz, hogy tokeneket kérjen le a Microsoft Entra ID-ből.
  • Felhasználó által hozzárendelt – Önálló Azure-erőforrásként is létrehozhat felügyelt identitást. Létrehozhat egy felhasználó által hozzárendelt felügyelt identitást, és hozzárendelheti egy Vagy több Azure-szolgáltatáspéldányhoz. A felhasználó által hozzárendelt felügyelt identitások esetén az identitás kezelése külön történik az azt használó erőforrásoktól.

Megjegyzés:

Ha felhasználó által hozzárendelt felügyelt identitást használ, megadhatja az ügyfél-azonosítót a spring.cloud.azure.credential.managed-identity-client-id vagy spring.cloud.azure.<azure-service>.credential.managed-identity-client-ida . Nincs szükség hitelesítő adatok konfigurálására, ha rendszer által hozzárendelt felügyelt identitást használ.

Tipp.

Győződjön meg arról, hogy a biztonsági tag megfelelő engedélyt kapott az Azure-erőforrás eléréséhez. További információ: Hozzáférés engedélyezése a Microsoft Entra-azonosítóval.

A felügyelt identitással kapcsolatos további információkért lásd: Mi az Azure-erőforrások felügyelt identitása?

Egyéb hitelesítő adatok típusai

Ha több vezérlést szeretne, vagy a forgatókönyvet nem az alapértelmezett beállítások szolgálják DefaultAzureCredential ki, más hitelesítőadat-típusokat kell használnia.

Hitelesítés és engedélyezés a Microsoft Entra-azonosítóval

A Microsoft Entra ID-val azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy biztonsági tagnak, amely lehet felhasználó vagy alkalmazásszolgáltatás-tag. Amikor egy biztonsági tag (felhasználó vagy alkalmazás) megpróbál hozzáférni egy Azure-erőforráshoz, például egy Event Hubs-erőforráshoz, a kérést engedélyezni kell. A Microsoft Entra-azonosítóval az erőforráshoz való hozzáférés kétlépéses folyamat:

  1. Először a rendszer hitelesíti a biztonsági tag identitását, és egy OAuth 2.0-jogkivonatot ad vissza.
  2. Ezután a jogkivonatot a megadott erőforráshoz való hozzáférés engedélyezésére irányuló kérés részeként továbbítjuk az Azure-szolgáltatásnak.

Hitelesítés Microsoft Entra ID-vel

A Microsoft Entra-hitelesítést támogató erőforrásokhoz való csatlakozáshoz az alábbi konfigurációkat állíthatja be az előtaggal spring.cloud.azure.credential vagy spring.cloud.azure.<azure-service>.credential

Az alábbi táblázat a hitelesítési tulajdonságokat sorolja fel:

Property Leírás
ügyfél-azonosító Az azure-ral végzett egyszerű szolgáltatáshitelesítéshez használandó ügyfél-azonosító.
titkos ügyfélkód A szolgáltatásnév-hitelesítés Azure-ral történő végrehajtásakor használandó ügyfélkulcs.
ügyféltanúsítvány elérési útja Egy PEM-tanúsítványfájl elérési útja, amelyet a szolgáltatásnév azure-beli hitelesítésekor kell használni.
ügyféltanúsítvány-jelszó A tanúsítványfájl jelszava.
username A felhasználónév/jelszó azure-beli hitelesítéséhez használandó felhasználónév.
jelszó A felhasználónév-/jelszó-hitelesítés Azure-beli végrehajtásakor használandó jelszó.
managed-identity-enabled A felügyelt identitás engedélyezése.

Tipp.

Az összes Spring Cloud Azure-konfigurációs tulajdonság listáját a Spring Cloud Azure konfigurációs tulajdonságai között találja.

Az alkalmazás több helyen is megkeresi az elérhető hitelesítő adatokat, és akkor fogja használni DefaultAzureCredential , ha nincs konfigurálva hitelesítőadat-tulajdonság. Ha konkrét hitelesítő adatokat szeretne használni, útmutatásért tekintse meg az alábbi példákat.

Az alábbi példa bemutatja, hogyan hitelesíthető rendszer által hozzárendelt felügyelt identitással:

spring.cloud.azure:
  credential:
    managed-identity-enabled: true

Az alábbi példa bemutatja, hogyan hitelesíthető a felhasználó által hozzárendelt felügyelt identitással:

spring.cloud.azure:
  credential:
    managed-identity-enabled: true
    client-id: ${AZURE_CLIENT_ID}

Az alábbi példa bemutatja, hogyan hitelesíthető egy egyszerű szolgáltatásnévvel egy ügyfél titkos kóddal:

spring.cloud.azure:
  credential:
    client-id: ${AZURE_CLIENT_ID}
    client-secret: ${AZURE_CLIENT_SECRET}
  profile:
    tenant-id: <tenant>

Megjegyzés:

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

Az alábbi példa bemutatja, hogyan hitelesíthető egy szolgáltatásnévvel ügyfél PFX-tanúsítvánnyal:

spring.cloud.azure:
  credential:
    client-id: ${AZURE_CLIENT_ID}
    client-certificate-path: ${AZURE_CLIENT_CERTIFICATE_PATH}
    client-certificate-password: ${AZURE_CLIENT_CERTIFICATE_PASSWORD}
  profile:
    tenant-id: <tenant>

Megjegyzés:

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

Az alábbi példa bemutatja, hogyan hitelesíthető szolgáltatásnévvel ügyfél PEM-tanúsítvánnyal:

spring.cloud.azure:
  credential:
    client-id: ${AZURE_CLIENT_ID}
    client-certificate-path: ${AZURE_CLIENT_CERTIFICATE_PATH}
  profile:
    tenant-id: <tenant>

Megjegyzés:

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

Az alábbi példa bemutatja, hogyan hitelesíthető felhasználói hitelesítő adatokkal:

spring.cloud.azure:
  credential:
    client-id: ${AZURE_CLIENT_ID}
    username: ${AZURE_USER_USERNAME}
    password: ${AZURE_USER_PASSWORD}

Az alábbi példa bemutatja, hogyan hitelesíthető a Key Vaulttal egy másik szolgáltatásnév használatával. Ez a példa két hitelesítő adattal konfigurálja az alkalmazást: egy rendszer által hozzárendelt felügyelt identitással és egy szolgáltatásnévvel. A Key Vault titkos ügyfél a szolgáltatásnevet fogja használni, de minden más összetevő a felügyelt identitást fogja használni.

spring.cloud.azure:
  credential:
    managed-identity-enabled: true
  keyvault.secret:
    credential:
      client-id: ${AZURE_CLIENT_ID}
      client-secret: ${AZURE_CLIENT_SECRET}
    profile:
      tenant-id: <tenant>

Megjegyzés:

Az engedélyezett tenant-id értékek a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben című hiba helytelen végpontja (személyes és szervezeti fiókok) című szakaszában talál. Az egybérlős alkalmazás konvertálásával kapcsolatos információkért lásd : Egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosítón.

Hozzáférés engedélyezése a Microsoft Entra-azonosítóval

Az engedélyezési lépéshez egy vagy több Azure-szerepkört kell hozzárendelni a biztonsági taghoz. A rendszerbiztonsági taghoz rendelt szerepkörök határozzák meg azokat az engedélyeket, amelyekkel a rendszerbiztonsági tag rendelkezik.

Tipp.

Az Azure beépített szerepköreinek listáját az Azure beépített szerepkörei között találja.

Az alábbi táblázat a Spring Cloud Azure-ban támogatott Azure-szolgáltatásokhoz való hozzáférés engedélyezéséhez beépített Azure-szerepköröket sorolja fel:

Szerepkör Leírás
Alkalmazáskonfigurációs adatok tulajdonosa Lehetővé teszi az alkalmazáskonfigurációs adatok teljes elérését.
Alkalmazáskonfigurációs adatolvasó Olvasási hozzáférést biztosít az alkalmazáskonfigurációs adatokhoz.
Azure Event Hubs-adattulajdonos Teljes hozzáférést biztosít az Azure Event Hubs-erőforrásokhoz.
Azure Event Hubs-adatátvevő Lehetővé teszi az Azure Event Hubs-erőforrásokhoz való hozzáférés fogadását.
Azure Event Hubs-adatküldő Lehetővé teszi az Azure Event Hubs-erőforrásokhoz való hozzáférés küldését.
Azure Service Bus-adattulajdonos Teljes hozzáférést biztosít az Azure Service Bus-erőforrásokhoz.
Azure Service Bus-adatátvevő Lehetővé teszi az Azure Service Bus-erőforrásokhoz való hozzáférés fogadását.
Azure Service Bus-adatküldő Lehetővé teszi az Azure Service Bus-erőforrásokhoz való hozzáférés küldését.
Storage Blob Data Owner Teljes hozzáférést biztosít az Azure Storage blobtárolóihoz és adataihoz, beleértve a POSIX-hozzáférés-vezérlés hozzárendelését is.
Storage Blob Data Reader Az Azure Storage-tárolók és blobok olvasása és listázása.
Tárolósor adatolvasója Azure Storage-üzenetsorok és üzenetsor-üzenetek olvasása és listázása.
Redis Cache-közreműködő Redis-gyorsítótárak kezelése.

Megjegyzés:

Ha a Spring Cloud Azure Resource Manager használatával lekéri az Event Hubs, a Service Bus és a Storage Queue kapcsolati sztring, vagy a Cache for Redis tulajdonságait, rendelje hozzá az Azure beépített szerepkörétContributor. Az Azure Cache for Redis különleges, és a Redis-tulajdonságok lekéréséhez is hozzárendelheti a Redis Cache Contributor szerepkört.

Megjegyzés:

A Key Vault hozzáférési szabályzata meghatározza, hogy egy adott biztonsági tag, azaz egy felhasználó, alkalmazás vagy felhasználói csoport különböző műveleteket hajthat-e végre a Key Vault titkos kulcsokon, kulcsokon és tanúsítványokon. Hozzáférési szabályzatokat az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával rendelhet hozzá. További információ: Key Vault hozzáférési szabályzat hozzárendelése.

Fontos

Az Azure Cosmos DB két beépített szerepkördefiníciót tesz elérhetővé: Cosmos DB Built-in Data Reader és Cosmos DB Built-in Data Contributor. Az Azure Portal szerepkör-kezelési támogatása azonban még nem érhető el. További információ az engedélymodellről, a szerepkördefiníciókról és a szerepkör-hozzárendelésről: Szerepköralapú hozzáférés-vezérlés konfigurálása a Microsoft Entra-azonosítóval az Azure Cosmos DB-fiókhoz.

SAS-tokenek

A szolgáltatások a közös hozzáférésű jogosultságkóddal (SAS) történő hitelesítéshez is konfigurálhatók. spring.cloud.azure.<azure-service>.sas-token a konfigurálni kívánt tulajdonság. Használhatja például spring.cloud.azure.storage.blob.sas-token a Storage Blob szolgáltatásban való hitelesítésre.

Kapcsolati sztringek

Csatlakozás ion sztringet egyes Azure-szolgáltatások támogatják a kapcsolati adatok és hitelesítő adatok megadásához. Ha kapcsolati sztring használatával szeretne csatlakozni ezekhez az Azure-szolgáltatásokhoz, egyszerűen konfiguráljaspring.cloud.azure.<azure-service>.connection-string. Konfigurálja spring.cloud.azure.eventhubs.connection-string például az Event Hubs szolgáltatáshoz való csatlakozást.