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


Spring Cloud Azure-hitelesítés

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

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ő adatok típusai

A Spring Cloud Azure lehetővé teszi, hogy különböző hitelesítőadat-típusokat konfiguráljon a hitelesítéshez, beleértve a DefaultAzureCredential, WorkloadIdentityCredential, ManagedIdentityCredential, ClientSecretCredential, AzureCliCredentialstb.

DefaultAzureCredential

DefaultAzureCredential a legtöbb olyan forgatókönyv esetében megfelelő, ahol az alkalmazás az Azure Cloudban való futtatásra szolgál, mivel a következő hitelesítő adatokat egyesíti:

  • A hitelesítéshez gyakran használt hitelesítő adatok üzembe helyezésekor.
  • A fejlesztési környezetben történő hitelesítéshez használt hitelesítő adatok.

Jegyzet

DefaultAzureCredential Célja az Azure SDK használatának egyszerűsítése az ésszerű alapértelmezett viselkedéssel rendelkező gyakori forgatókönyvek kezelésével. Ha további vezérlést szeretne, vagy az alapértelmezett beállítások nem támogatják a forgatókönyvet, más hitelesítőadat-típusokat kell használnia.

DefaultAzureCredential a következő mechanizmusokkal próbál hitelesítést végezni, hogy:

  • Környezet – DefaultAzureCredential megpróbálja beolvasni a környezeti változókon keresztül megadott fiókadatokat, és hitelesíteni azokat.
  • Felügyelt identitás – Ha az alkalmazás olyan Azure-gazdagépen van üzembe helyezve, amelyen engedélyezve van a felügyelt identitás, DefaultAzureCredential azzal a fiókkal próbál hitelesítést végezni.
  • Számítási feladatok identitása – Ha az alkalmazás virtuális gépeken (VM-ben) van üzembe helyezve, DefaultAzureCredential azzal a fiókkal próbál hitelesítést végezni.
  • Megosztott jogkivonat-gyorsítótár – Ha a Visual Studióban hitelesített, DefaultAzureCredential megpróbál hitelesíteni ezzel a fiókkal.
  • IntelliJ – Ha az IntelliJ-hez készült Azure Toolkiten keresztül hitelesített, DefaultAzureCredential azzal a fiókkal próbál hitelesítést végezni.
  • Azure CLI – Ha az Azure CLI-paranccsal az login hitelesített egy fiókot, DefaultAzureCredential megpróbál hitelesíteni ezzel a fiókkal.
  • Azure PowerShell – Ha az Azure PowerShell-lel hitelesített, DefaultAzureCredential azzal a fiókkal próbál hitelesítést végezni.
  • Azure Developer CLI – Ha az Azure Developer CLI-vel hitelesített, DefaultAzureCredential azzal a fiókkal próbál hitelesítést végezni.

Borravaló

Győződjön meg arról, hogy a biztonsági tag rendelkezik elegendő engedéllyel 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.

Jegyzet

A Spring Cloud Azure AutoConfigure 4.1.0 óta regisztrálnia kell egy, az ThreadPoolTaskExecutor Azure Identity által létrehozott összes szál kezeléséhez elnevezett springCloudAzureCredentialTaskExecutor babot. A szálkészlet által kezelt egyes szálak neve előtagként az-identity-. Ez a ThreadPoolTaskExecutor bab független a Spring Boot által biztosított Executor babtól.

Felügyelt identitások

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. A felügyelt identitások nem igénylik a hitelesítő adatok kezelését. 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 a kapcsolati sztring vagy kulcs használata helyett használjon felügyelt identitást az alkalmazásban, mert biztonságosabb, és menti 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ést a helyi fiókadatok használatával, majd az alkalmazás Azure Cloudban való üzembe helyezésével és a felügyelt identitás használatával.

Felügyelt identitástípusok

A felügyelt identitások kétféleképpen használhatók:

  • 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. Így az erőforrás törlésekor az Azure automatikusan törli az Ön identitását. Terv szerint csak az Azure-erőforrás használhatja ezt az identitást, hogy jogkivonatokat kérjen a Microsoft Entra-azonosítótó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.

Jegyzet

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

Borravaló

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

További információ a felügyelt identitásokról: Mik az Azure-erőforrások felügyelt identitásai?.

Egyéb hitelesítő adatok típusai

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

Hitelesítés Microsoft Entra-azonosítóval

Ha alkalmazásokat szeretne csatlakoztatni a Microsoft Entra-hitelesítést támogató erőforrásokhoz, a következő konfigurációkat állíthatja be a spring.cloud.azure.credential vagy spring.cloud.azure.<azure-service>.credential előtaggal.

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

Ingatlan 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.
felhasználónév 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ó.
Felügyelt identitással kompatibilis A felügyelt identitás engedélyezése.
token-hitelesítő-bab-név Az Azure-ral való hitelesítéshez használandó TokenCredential babnév.

Borravaló

Az összes Spring Cloud Azure-konfigurációs tulajdonság listáját Spring Cloud Azure-konfigurációs tulajdonságokcímű cikkben találja.

Az alkalmazás több helyen is megkeresi az elérhető hitelesítő adatokat. Ha a tulajdonság TokenCredential meg van adva, minden Azure SDK-ügyfélszerkesztő-gyár először egyéni típusú token-credential-bean-name babot fogad el, és visszaesik a használatbaDefaultAzureCredential, ha nincsenek konfigurálva hitelesítő adatok.

Hitelesítés testreszabott TokenCredential bean használatával

Az alábbi példa bemutatja, hogyan definiálhat egyéni TokenCredential babot a hitelesítéshez:

@Bean
TokenCredential myTokenCredential() {
    // Your concrete TokenCredential instance
}
spring.cloud.azure:
  credential:
    token-credential-bean-name: myTokenCredential

Hitelesítés rendszer által hozzárendelt felügyelt identitással

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

Hitelesítés felhasználó által hozzárendelt felügyelt identitással

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}

Hitelesítés egyszerű szolgáltatásnévvel ügyfélkóddal

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>

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy 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áról további információt Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosító.

Hitelesítés szolgáltatásnévvel ügyféltanúsítvánnyal

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>

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy 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áról további információt Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosító.

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>

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy 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áról további információt Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosító.

Hitelesítés felhasználói hitelesítő adatokkal

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}

Szolgáltatás hitelesítése más hitelesítő adatoktól eltérő hitelesítő adatok használatával

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 használja, de minden más összetevő inkább felügyelt identitást használ.

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>

Jegyzet

A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy 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áról további információt Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra-azonosító.

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 a rendszerbiztonsági tag engedélyeit.

Borravaló

Az azure-beli beépített szerepkörök listáját Beépített Azure-szerepkörökcímű témakörben 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:

Szerep Leírás
alkalmazáskonfigurációs adattulajdonosi 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-adattulajdonosi 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-adattulajdonosi 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.
Tárolási blob-adatok tulajdonosa 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-adatolvasó Az Azure Storage-tárolók és blobok olvasása és listázása.
Storage-üzenetsor adatolvasója Azure Storage-üzenetsorok és üzenetsor-üzenetek olvasása és listázása.
Redis Cache-közreműködői Redis-gyorsítótárak kezelése.

Jegyzet

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

Jegyzet

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.

Hitelesítés SAS-jogkivonatokkal

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. Például a spring.cloud.azure.storage.blob.sas-token használatával hitelesíthet a Storage Blob szolgáltatásban.

Hitelesítés kapcsolati sztringekkel

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