Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan használható a Spring Cloud Azure MySQL-támogatás a Spring Boot-alkalmazások rugalmas hitelesítési lehetőségekkel Azure Database for MySQL, beleértve a jelszó nélküli Microsoft Entra-hitelesítést.
A 4.5.0verziótól kezdve a Spring Cloud Azure különböző típusú hitelesítő adatokat támogat a rugalmas Azure Database for MySQL-kiszolgálóhoz való hitelesítéshez.
Támogatott MySQL-verzió
Az indítás jelenlegi verziójának rugalmas Azure Database for MySQL-kiszolgálót kell használnia 5.7 vagy 8.0.
Alapvető funkciók
Jelszó nélküli kapcsolat
A jelszó nélküli kapcsolat Microsoft Entra-hitelesítést használ az Azure-szolgáltatásokhoz való csatlakozáshoz anélkül, hogy hitelesítő adatokat tárolnál az alkalmazásban, annak konfigurációs fájljaiban vagy környezeti változókban. A Microsoft Entra-hitelesítés az Azure Database for MySQL-hez való csatlakozás mechanizmusa a Microsoft Entra ID-ban meghatározott identitások használatával. A Microsoft Entra hitelesítés használatával központi helyen kezelheti az adatbázis felhasználói identitásait és más Microsoft-szolgáltatások, ami leegyszerűsíti az engedélykezelést.
Hogyan működik?
A Spring Cloud Azure először az alábbi hitelesítő adatok egyikét hozza létre az alkalmazáshitelesítés konfigurációjától függően:
ClientSecretCredentialClientCertificateCredentialUsernamePasswordCredentialManagedIdentityCredentialDefaultAzureCredential
Ha az alkalmazás nem talál ilyen típusú hitelesítő adatokat, az alkalmazás tulajdonságaiból, környezeti változóiból, felügyelt identitásaiból vagy az IDE-ből szerzi be DefaultAzureCredential a hitelesítő adatokat. További információ: Spring Cloud Azure-hitelesítési.
Az alábbi magas szintű diagram az OAuth hitelesítő adatok hitelesítésének Azure Database for MySQL használatával összefoglalja a hitelesítés működését. A nyilak kommunikációs útvonalakat jelölnek.
Konfiguráció
A Spring Cloud Azure for MySQL a következő két konfigurációs szintet támogatja:
A
credentialésprofileglobális hitelesítési konfigurációs beállításaispring.cloud.azureelőtagokkal.A Spring Cloud Azure for MySQL gyakori konfigurációs lehetőségei.
Az alábbi táblázat a Spring Cloud Azure for MySQL általános konfigurációs beállításait mutatja be:
| Név | Leírás |
|---|---|
spring.datasource.azure.passwordless-enabled |
Az OAuth2 Microsoft Entra-jogkivonat hitelesítő adataival engedélyezheti-e az Azure-adatbázisok jelszó nélküli kapcsolatait. |
spring.datasource.azure.credential.client-certificate-password |
A tanúsítványfájl jelszava. |
spring.datasource.azure.credential.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. |
spring.datasource.azure.credential.client-id |
Az Azure-ral végzett egyszerű szolgáltatáshitelesítéshez használandó ügyfélazonosító. Ez egy örökölt tulajdonság. |
spring.datasource.azure.credential.client-secret |
Az Azure-ral végzett egyszerű szolgáltatáshitelesítéshez használandó ügyfélkód. Ez egy örökölt tulajdonság. |
spring.datasource.azure.credential.managed-identity-enabled |
A felügyelt identitás azure-ral való hitelesítésének engedélyezése. Ha true és a client-id be van állítva, az ügyfélazonosítót fogja használni a felhasználó által hozzárendelt felügyelt identitás ügyfélazonosítójaként. Az alapértelmezett érték a false. |
spring.datasource.azure.credential.password |
Felhasználónév-/jelszó-hitelesítés azure-ral történő végrehajtásakor használandó jelszó. |
spring.datasource.azure.credential.username |
Felhasználónév az Azure-ral történő felhasználónév-/jelszó-hitelesítés végrehajtásakor. |
spring.datasource.azure.profile.cloud-type |
A csatlakozni kívánt Azure-felhő neve. |
spring.datasource.azure.profile.environment.active-directory-endpoint |
A Microsoft Entra-végpont, amelyhez csatlakozni szeretne. |
spring.datasource.azure.profile.tenant-id |
Az Azure-erőforrások bérlőazonosítója. A tenant-id engedélyezett értékek a következők: common, organizations, consumersvagy bérlőazonosító. |
Függőség beállítása
Adja hozzá a következő függőséget a projekthez. Ez a függőség automatikusan tartalmazza a spring-boot-starter függőséget a projektben.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-jdbc-mysql</artifactId>
</dependency>
Jegyzet
A jelszó nélküli kapcsolatok a verziótól 4.5.0kezdve támogatottak.
Ne felejtse el hozzáadni az anyagjegyzéket spring-cloud-azure-dependencies az előző függőséggel együtt. További információt a Spring Cloud Azure fejlesztői útmutatójánakElső lépések című szakaszában talál.
Alapszintű használat
Az alábbi szakaszok a klasszikus Spring Boot-alkalmazáshasználati forgatókönyveket mutatják be.
Fontos
A jelszó nélküli kapcsolat Microsoft Entra-hitelesítést használ. A Microsoft Entra hitelesítés használatához először állítsa be a Microsoft Entra rendszergazda felhasználót. Csak a Microsoft Entra rendszergazdai felhasználó hozhat létre és engedélyezhet felhasználókat a Microsoft Entra ID-alapú hitelesítéshez. További információ: Spring Data JDBC használata az Azure Database for MySQL-.
Csatlakozás helyileg az Azure MySQL-hez jelszó nélkül
A felhasználók létrehozásához és az engedély megadásához tekintse meg a Nem rendszergazdai MySQL-felhasználó létrehozása és a Spring Data JDBC használata az Azure Database for MySQL-engedélyének szakaszában.
Konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: datasource: url: jdbc:mysql://${AZURE_MYSQL_SERVER_NAME}.mysql.database.azure.com:3306/${AZURE_MYSQL_DATABASE_NAME} username: ${AZURE_MYSQL_AD_NON_ADMIN_USERNAME} azure: passwordless-enabled: true
Csatlakozás az Azure MySQL-hez szolgáltatásnév használatával
Hozzon létre egy Microsoft Entra felhasználót a szolgáltatásnévhez, és adjon engedélyt.
A környezeti változók beállításához használja az alábbi parancsokat.
export AZURE_MYSQL_AZURE_AD_SP_USERID=$(az ad sp list \ --display-name <service_principal-name> \ --query '[0].appId' --output tsv) export AZURE_MYSQL_AZURE_AD_SP_USERNAME=<YOUR_MYSQL_AZURE_AD_USERNAME> export AZURE_MYSQL_SERVER_NAME=<YOUR_MYSQL_SERVER_NAME> export AZURE_MYSQL_DATABASE_NAME=<YOUR_MYSQL_DATABASE_NAME> export CURRENT_USERNAME=$(az ad signed-in-user show \ --query userPrincipalName \ --output tsv)Hozzon létre egy create_ad_user_sp.sql nevű SQL-szkriptet, amely nem rendszergazdai felhasználót hoz létre. Adja hozzá a következő tartalmat, és mentse helyileg:
cat << EOF > create_ad_user_sp.sql SET aad_auth_validate_oids_in_tenant = OFF; CREATE AADUSER '$AZURE_MYSQL_AZURE_AD_SP_USERNAME' IDENTIFIED BY '$AZURE_MYSQL_AZURE_AD_SP_USERID'; GRANT ALL PRIVILEGES ON $AZURE_MYSQL_DATABASE_NAME.* TO '$AZURE_MYSQL_AZURE_AD_SP_USERNAME'@'%'; FLUSH privileges; EOFA Microsoft Entra nem rendszergazdai felhasználó létrehozásához futtassa az SQL-szkriptet az alábbi paranccsal:
mysql -h $AZURE_MYSQL_SERVER_NAME.mysql.database.azure.com --user $CURRENT_USERNAME --enable-cleartext-plugin --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) < create_ad_user_sp.sqlAz ideiglenes SQL-szkriptfájl eltávolításához használja a következő parancsot:
rm create_ad_user_sp.sql
Konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> datasource: url: jdbc:mysql://${AZURE_MYSQL_SERVER_NAME}.mysql.database.azure.com:3306/${AZURE_MYSQL_DATABASE_NAME} username: ${AZURE_MYSQL_AD_SP_USERNAME} azure: passwordless-enabled: true
Jegyzet
Az engedélyezett értékek tenant-id a következők: common, organizations, consumersvagy a bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, hiba AADSTS50020 – Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlői. 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ó.
Csatlakozás az Azure MySQL-hez felügyelt identitással az Azure Spring Appsben
A felügyelt identitás engedélyezéséhez tekintse meg a Felügyelt identitás hozzárendelése az Azure Portal szakaszában, Alkalmazás áttelepítése jelszó nélküli kapcsolatok használatához az Azure Database for MySQL.
Engedélyek megadásához tekintse meg a Szerepkörök hozzárendelése a felügyelt identitáshoz szakaszt, amely Alkalmazás áttelepítése jelszó nélküli kapcsolatok használatára az Azure Database for MySQL-.
Konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: datasource: url: jdbc:mysql://${AZURE_MYSQL_SERVER_NAME}.mysql.database.azure.com:3306/${AZURE_MYSQL_DATABASE_NAME} username: ${AZURE_MYSQL_AD_MI_USERNAME} azure: passwordless-enabled: true
Minták
Tekintse meg a azure-spring-boot-samples GitHub adattárát.