Oktatóanyag: Key Vault-hivatkozások használata Java Spring-alkalmazásban
Ebben az oktatóanyagban megtudhatja, hogyan használhatja a Azure-alkalmazás Configuration szolgáltatást az Azure Key Vaulttal együtt. Az alkalmazáskonfiguráció és a Key Vault a legtöbb alkalmazástelepítésben egymás mellett használt kiegészítő szolgáltatások.
Az alkalmazáskonfiguráció a Key Vaultban tárolt értékekre hivatkozó kulcsok létrehozásával segíti a szolgáltatások együttes használatát. Amikor az alkalmazáskonfiguráció létrehozza az ilyen kulcsokat, a Key Vault-értékek URI-jait tárolja, nem pedig magukat az értékeket.
Az alkalmazás az Alkalmazáskonfiguráció ügyfélszolgáltatója segítségével kéri le a Key Vault-referenciákat, ugyanúgy, mint az Alkalmazáskonfigurációban tárolt többi kulcs esetében. Ebben az esetben az Alkalmazáskonfigurációban tárolt értékek olyan URI-k, amelyek a Key Vault értékeire hivatkoznak. Ezek nem Key Vault-értékek vagy hitelesítő adatok. Mivel az ügyfélszolgáltató a kulcsokat Key Vault-hivatkozásként ismeri fel, a Key Vault használatával kéri le az értékeiket.
Az alkalmazás felelős az alkalmazáskonfiguráció és a Key Vault megfelelő hitelesítéséért. A két szolgáltatás nem kommunikál közvetlenül.
Ez az oktatóanyag bemutatja, hogyan implementálhat Key Vault-hivatkozásokat a kódban. A rövid útmutatókban bemutatott webalkalmazásra épül. A folytatás előtt végezze el a Java Spring-alkalmazás létrehozását az alkalmazáskonfigurációval .
Az oktatóanyag lépéseit bármely kódszerkesztővel elvégezheti. A Visual Studio Code például egy platformfüggetlen kódszerkesztő, amely Windows, macOS és Linux operációs rendszerekhez érhető el.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Hozzon létre egy alkalmazáskonfigurációs kulcsot, amely a Key Vaultban tárolt értékre hivatkozik.
- A kulcs értékét egy Java Spring-alkalmazásból érheti el.
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Támogatott Java Development Kit (JDK) a 11-es verzióval.
- Az Apache Maven 3.0-s vagy újabb verziója.
Tároló létrehozása
Válassza az Erőforrás létrehozása lehetőséget az Azure Portal bal felső sarkában:
A keresőmezőbe írja be a Key Vault nevet.
Az eredmények listájában válassza a Kulcstartók lehetőséget.
A Kulcstartókban válassza a Hozzáadás lehetőséget.
A Kulcstartó létrehozása jobb oldalán adja meg a következő információkat:
- Válassza az Előfizetés lehetőséget az előfizetés kiválasztásához.
- Az Erőforráscsoportban válassza az Új létrehozása lehetőséget, és adjon meg egy erőforráscsoportnevet.
- A Key Vault nevében egyedi névre van szükség. Ebben az oktatóanyagban írja be a Contoso-vault2 nevet.
- A Régió legördülő listában válasszon egy helyet.
Hagyja meg a többi Kulcstartó létrehozása beállítást az alapértelmezett értékekkel.
Válassza a Létrehozás lehetőséget.
Ezen a ponton az Azure-fiók az egyetlen jogosult az új tároló elérésére.
Titkos kulcs hozzáadása a Key Vaulthoz
Ha titkos kulcsot szeretne hozzáadni a tárolóhoz, csak néhány további lépést kell elvégeznie. Ebben az esetben adjon hozzá egy üzenetet, amellyel tesztelheti a Key Vault lekérését. Az üzenet neve Üzenet, és a "Hello from Key Vault" értéket tárolja benne.
- A Key Vault tulajdonságok lapjain válassza a Titkos kulcsok lehetőséget.
- Válassza a Generálás/importálás lehetőséget.
-
A Titkos kód létrehozása panelen adja meg a következő értékeket:
- Feltöltési beállítások: Adja meg a manuális beállítást.
- Név: Írja be az üzenetet.
- Érték: Adja meg a Hello értéket a Key Vaultból.
- Hagyja meg a többi titkos kódtulajdonság létrehozását az alapértelmezett értékekkel.
- Válassza a Létrehozás lehetőséget.
Key Vault-hivatkozás hozzáadása az alkalmazáskonfigurációhoz
Jelentkezzen be az Azure Portalra. Válassza a Minden erőforrás lehetőséget, majd válassza ki a rövid útmutatóban létrehozott App Configuration Store-példányt.
Válassza a Configuration Explorer lehetőséget.
Válassza a + Kulcstartó létrehozása>referenciát, majd adja meg a következő értékeket:
- Kulcs: Select /application/config.keyvaultmessage
- Címke: Hagyja üresen ezt az értéket.
- Előfizetés, erőforráscsoport és kulcstartó: Adja meg az előző szakaszban létrehozott kulcstartó értékeinek megfelelő értékeket.
- Titkos kód: Válassza ki az előző szakaszban létrehozott üzenet nevű titkos kódot.
Csatlakozás a Key Vaulthoz
Ebben az oktatóanyagban egy szolgáltatásnevet használ a Key Vaulthoz való hitelesítéshez. A szolgáltatásnév létrehozásához használja az Azure CLI az ad sp create-for-rbac parancsot:
az ad sp create-for-rbac -n "http://mySP" --role Contributor --scopes /subscriptions/{subscription-id} --sdk-auth
Ez a művelet kulcs/érték párok sorozatát adja vissza:
{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecret": "aaaaaaaa-0b0b-1c1c-2d2d-333333333333", "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com/", "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net/" }
Futtassa a következő parancsot, hogy a szolgáltatásnév hozzáférhessen a kulcstartóhoz:
az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete get
Futtassa a következő parancsot az objektumazonosító lekéréséhez, majd adja hozzá az alkalmazáskonfigurációhoz.
az ad sp show --id <clientId-of-your-service-principal> az role assignment create --role "App Configuration Data Reader" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name> --assignee-principal-type --assignee-object-id <objectId-of-your-service-principal> --resource-group <your-resource-group>
Hozza létre a környezeti változókat AZURE_CLIENT_ID, AZURE_CLIENT_SECRET és AZURE_TENANT_ID. Használja az előző lépésekben megjelenített szolgáltatásnév értékeit. Futtassa a következő parancsokat a parancssorban, és indítsa újra a parancssort a módosítás érvénybe lépésének engedélyezéséhez:
setx AZURE_CLIENT_ID "clientId" setx AZURE_CLIENT_SECRET "clientSecret" setx AZURE_TENANT_ID "tenantId"
Windows PowerShell használata esetén futtassa a következő parancsot:
$Env:AZURE_CLIENT_ID = "clientId" $Env:AZURE_CLIENT_SECRET = "clientSecret" $Env:AZURE_TENANT_ID = "tenantId"
MacOS vagy Linux használata esetén futtassa a következő parancsot:
export AZURE_CLIENT_ID ='clientId' export AZURE_CLIENT_SECRET ='clientSecret' export AZURE_TENANT_ID ='tenantId'
Feljegyzés
Ezek a Key Vault-hitelesítő adatok csak az alkalmazásban használhatók. Az alkalmazás közvetlenül a Key Vaulttal hitelesíti ezeket a hitelesítő adatokat az App Configuration szolgáltatás bevonása nélkül. A Key Vault a kulcsok megosztása és közzététele nélkül is biztosít hitelesítést az alkalmazáshoz és az App Configuration szolgáltatáshoz.
A kód frissítése Key Vault-referencia használatára
Hozzon létre egy APP_CONFIGURATION_ENDPOINT nevű környezeti változót. Állítsa be az értékét az Alkalmazáskonfigurációs áruház végpontjára. A végpontot az Azure Portal Hozzáférési kulcsok paneljén találja. Indítsa újra a parancssort a módosítás érvénybe lépésének engedélyezéséhez.
Nyissa meg a konfigurációs fájlt az erőforrások mappájában. Frissítse a fájlt a APP_CONFIGURATION_ENDPOINT érték használatára. Távolítsa el a fájlban lévő kapcsolati sztring mutató hivatkozásokat.
spring:
cloud:
azure:
appconfiguration:
stores:
- endpoint: ${APP_CONFIGURATION_ENDPOINT}
Nyissa meg a MessageProperties.java. Adjon hozzá egy új, keyVaultMessage nevű változót:
private String keyVaultMessage; public String getKeyVaultMessage() { return keyVaultMessage; } public void setKeyVaultMessage(String keyVaultMessage) { this.keyVaultMessage = keyVaultMessage; }
Nyissa meg a HelloController.java. Frissítse a getMessage metódust, hogy tartalmazza a Key Vaultból lekért üzenetet.
@GetMapping public String getMessage() { return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage(); }
Hozza létre a Spring Boot-alkalmazást a Mavennel, és futtassa, például:
mvn clean package mvn spring-boot:run
Az alkalmazás futtatása után a curl használatával tesztelheti az alkalmazást, például:
curl -X GET http://localhost:8080/
Az Alkalmazáskonfigurációs áruházban megadott üzenet jelenik meg. A Key Vaultban megadott üzenet is megjelenik.
Az erőforrások eltávolítása
Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.
Fontos
Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése elemet.
- A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.
Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.
Következő lépések
Ebben az oktatóanyagban létrehozott egy alkalmazáskonfigurációs kulcsot, amely a Key Vaultban tárolt értékre hivatkozik. További kérdésekért tekintse meg a referenciadokumentációt, amely tartalmazza a Spring Cloud Azure-alkalmazás Konfigurációs kódtár működésével kapcsolatos összes részletet. Ha meg szeretné tudni, hogyan használhat funkciójelzőket a Java Spring-alkalmazásban, folytassa a következő oktatóanyagban.