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


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

Tároló létrehozása

  1. Válassza az Erőforrás létrehozása lehetőséget az Azure Portal bal felső sarkában:

    Képernyőkép az Erőforrás létrehozása lehetőségről az Azure Portalon.

  2. A keresőmezőbe írja be a Key Vault nevet.

  3. Az eredmények listájában válassza a Kulcstartók lehetőséget.

  4. A Kulcstartókban válassza a Hozzáadás lehetőséget.

  5. 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.
  6. Hagyja meg a többi Kulcstartó létrehozása beállítást az alapértelmezett értékekkel.

  7. 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.

Képernyőkép a kulcstartóról.

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.

  1. A Key Vault tulajdonságok lapjain válassza a Titkos kulcsok lehetőséget.
  2. Válassza a Generálás/importálás lehetőséget.
  3. 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.
  4. Hagyja meg a többi titkos kódtulajdonság létrehozását az alapértelmezett értékekkel.
  5. Válassza a Létrehozás lehetőséget.

Key Vault-hivatkozás hozzáadása az alkalmazáskonfigurációhoz

  1. 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.

  2. Válassza a Configuration Explorer lehetőséget.

  3. 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

  1. 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/"
    }
    
  2. 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
    
  3. 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>
    
  4. 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

  1. 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.

  2. 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}

Feljegyzés

A Spring Cloud Azure globális konfigurációival is csatlakozhat a Key Vaulthoz.

  1. 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;
    }
    
  2. 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();
    }
    
  3. Hozza létre a Spring Boot-alkalmazást a Mavennel, és futtassa, például:

    mvn clean package
    mvn spring-boot:run
    
  4. 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.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. 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.