Spring Cloud Azure-hitelesítés

Ez a cikk ismerteti a Spring Cloud Azure hitelesítési módszereit, és segít kiválasztani a megfelelő hitelesítő adatokat a Azure erőforrásokhoz való hozzáférés biztonságossá tételéhez.

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

A Microsoft Entra ID használatával Azure 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. Az Microsoft Entra ID használatával az erőforráshoz való hozzáférés kétlépéses folyamat:

  1. Először hitelesítse a biztonsági tag identitását, és adja vissza az OAuth 2.0 jogkivonatot.
  2. Ezután adja át a jogkivonatot egy kérés részeként a Azure szolgáltatásnak a megadott erőforráshoz való hozzáférés engedélyezéséhez.

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, , WorkloadIdentityCredentialManagedIdentityCredential, 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

DefaultAzureCredentialLeegyszerűsíti a Azure SDK használatának első lépéseit 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, használjon más hitelesítő adatokat.

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

Képernyőkép a DefaultAzureCredential hitelesítési folyamatról és a hitelesítő adatok sorrendjéről.

  • Környezet – DefaultAzureCredential megpróbálja beolvasni a környezeti változókban megadott fiókadatokat, és hitelesíteni azokat.
  • Felügyelt identitás – Ha az alkalmazás egy Azure gazdagépen van üzembe helyezve, és engedélyezve van a felügyelt identitás, DefaultAzureCredential ezzel 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épen (virtuális gépen) van üzembe helyezve, DefaultAzureCredential ezzel a fiókkal próbál hitelesítést végezni.
  • Megosztott jogkivonat-gyorsítótár – Ha Visual Studio keresztül hitelesített, DefaultAzureCredential ezzel a fiókkal próbál hitelesítést végezni.
  • IntelliJ – Ha Azure Eszközkészleten keresztül hitelesítette az IntelliJ-t, DefaultAzureCredential ezzel a fiókkal próbál hitelesítést végezni.
  • Azure CLI – Ha a Azure CLI az login paranccsal hitelesített egy fiókot, DefaultAzureCredential ezzel a fiókkal próbál hitelesítést végezni.
  • Azure PowerShell – Ha Azure PowerShell keresztül hitelesített, DefaultAzureCredential a fiók használatával próbálja meg a hitelesítést.
  • Azure fejlesztői parancssori felület – Ha a Azure fejlesztői parancssori felületen keresztül hitelesített, DefaultAzureCredential a fiók használatával próbálja meg a hitelesítést.

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ással szerezhetnek be Microsoft Entra jogkivonatokat. Az alkalmazások például felügyelt identitással férhetnek hozzá az olyan erőforrásokhoz, mint a Azure Key Vault, ahol biztonságosan tárolhatja a hitelesítő adatokat, vagy elérheti a tárfiókokat.

Használjon felügyelt identitást kapcsolati karakterlánc vagy kulcs használata helyett 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 szolgálja a helyi fejlesztés forgatókönyvét a helyben tárolt fiókadatok használatával, majd az alkalmazás Azure felhőben 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, olyan identitást hoz létre Microsoft Entra, amely a 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 – A felügyelt identitásokat önálló Azure erőforrásként is létrehozhatja. 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ásokkal az identitást az azt használó erőforrásoktól elkülönítve kezelheti.

Jegyzet

Felhasználó által hozzárendelt felügyelt identitás használatakor adja meg az ügyfél-azonosítót a következőn keresztül 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 az alapértelmezett beállítások nem támogatják a forgatókönyvet, használjon más hitelesítő adatokat.

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

Ha az alkalmazásokat olyan erőforrásokhoz szeretné csatlakoztatni, amelyek támogatják Microsoft Entra hitelesítést, állítsa be az alábbi konfigurációkat az előtaggal spring.cloud.azure.credential vagy spring.cloud.azure.<azure-service>.credentiala .

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

Ingatlan Leírás
client-id Az azure-ral végzett egyszerű szolgáltatáshitelesítéshez használandó ügyfél-azonosító.
client-secret A szolgáltatásnév-hitelesítés Azure-ral történő végrehajtásakor használandó ügyfélkulcs.
client-certificate-path 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.
client-certificate-password 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.
password 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.
token-credential-bean-name 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. Minden Azure SDK ügyfélszerkesztő-előállító először egy egyéni típusú TokenCredential babot fogad el, ha megadja a tulajdonságottoken-credential-bean-name, és visszaesik a használatbaDefaultAzureCredential, ha nem konfigurálja a hitelesítő adatokat.

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és végrehajtásához:

@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ő 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 szolgáltatásnév és egy titkos ügyfélkód használatával:

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ő egy szolgáltatásnévvel egy ü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ő adatokkal

Az alábbi példa bemutatja, hogyan hitelesíthető Key Vault 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 biztonsági taghoz hozzárendelt szerepkörök határozzák meg azokat az engedélyeket, amelyekkel az egyszerű felhasználó rendelkezik.

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 sztringeit, vagy a Cache for Redis tulajdonságait, rendelje hozzá a Azure beépített szerepkörtContributor. 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ályzat határozza meg, hogy egy adott biztonsági tag, nevezetesen egy felhasználó, alkalmazás vagy felhasználói csoport különböző műveleteket hajthat-e végre Key Vault titkos kulcsokon, kulcsokon és tanúsítványokon. Hozzáférési szabályzatokat a Azure portálon, a Azure CLI vagy a Azure PowerShell keresztül 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ód (SAS) használatával is konfigurálhatók hitelesítésre. spring.cloud.azure.<azure-service>.sas-token A tulajdonság használatával konfigurálhatja ezt a hitelesítést. Használhatja például spring.cloud.azure.storage.blob.sas-token a Storage Blob szolgáltatásban való hitelesítésre.

Hitelesítés kapcsolati sztringek használatával

Egyes Azure-szolgáltatások támogatják a kapcsolati sztringeket a kapcsolati adatok és hitelesítő adatok megadásához. Ha kapcsolati sztringek használatával szeretne csatlakozni ezekhez a Azure szolgáltatásokhoz, konfiguráljaspring.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.