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:
- 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, azzalDefaultAzureCredential
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-id
a . 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:
- Először a rendszer hitelesíti a biztonsági tag identitását, és egy OAuth 2.0-jogkivonatot ad vissza.
- 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
, consumers
vagy 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
, consumers
vagy 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
, consumers
vagy 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
, consumers
vagy 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.