Share via


Oktatóanyag: Felügyelt identitás használata az Azure Functions meghívásához egy Azure Spring Apps-alkalmazásból

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik: ✔️ Basic/Standard ✔️ Enterprise

Ez a cikk bemutatja, hogyan hozhat létre felügyelt identitást az Azure Spring Appsben üzemeltetett alkalmazásokhoz, és hogyan hívhatja meg a HTTP által aktivált függvényeket.

Az Azure Functions és az App Services is beépített támogatást nyújt a Microsoft Entra-hitelesítéshez. Ezzel a beépített hitelesítési funkcióval és az Azure Spring Apps felügyelt identitásaival modern OAuth szemantikával hívhatja meg a RESTful szolgáltatásokat. Ez a módszer nem igényel titkos kulcsok kódban való tárolását, és részletesebb vezérlőket biztosít a külső erőforrásokhoz való hozzáférés szabályozásához.

Előfeltételek

Erőforráscsoport létrehozása

Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Az alábbi paranccsal hozzon létre egy erőforráscsoportot egy függvényalkalmazáshoz:

az group create --name <resource-group-name> --location <location>

További információkért lásd az az group create parancsot.

Függvényalkalmazás létrehozása

Függvényalkalmazás létrehozásához először létre kell hoznia egy háttértárfiókot. Az az storage account create parancsot használhatja.

Fontos

Minden függvényalkalmazásnak és tárfióknak egyedi névvel kell rendelkeznie.

A tárfiók létrehozásához használja az alábbi parancsot. Cserélje le <a függvényalkalmazás nevét> a függvényalkalmazás nevére, a< tárfiók nevét> pedig a tárfiók nevére.

az storage account create \
    --resource-group <resource-group-name> \
    --name <storage-account-name> \
    --location <location> \
    --sku Standard_LRS

A tárfiók létrehozása után a következő paranccsal hozza létre a függvényalkalmazást:

az functionapp create \
    --resource-group <resource-group-name> \
    --name <function-app-name> \
    --consumption-plan-location <location> \
    --os-type windows \
    --runtime node \
    --storage-account <storage-account-name> \
    --functions-version 4

Jegyezze fel a visszaadott hostNames értéket, amely formátuma https://<your-functionapp-name>.azurewebsites.net. Használja ezt az értéket a függvényalkalmazás gyökér URL-címében a függvényalkalmazás teszteléséhez.

A Microsoft Entra-hitelesítés engedélyezése

Az alábbi lépésekkel engedélyezheti a Microsoft Entra-hitelesítést a függvényalkalmazás eléréséhez.

  1. Az Azure Portalon keresse meg az erőforráscsoportot, majd nyissa meg a létrehozott függvényalkalmazást.

  2. A navigációs panelen válassza a Hitelesítés lehetőséget, majd a fő panelen válassza az Identitásszolgáltató hozzáadása lehetőséget.

  3. Az Identitásszolgáltató hozzáadása lapon válassza a Microsoftot az Identitásszolgáltató legördülő menüből.

    Screenshot of the Azure portal showing the Add an identity provider page with Microsoft highlighted in the identity provider dropdown menu.

  4. Válassza a Hozzáadás lehetőséget.

  5. Az Identitásszolgáltató hozzáadása lapon található Alapszintű beállításoknál állítsa be a támogatott fióktípusokatbármely Microsoft Entra-címtárra – több-bérlősre.

  6. Hitelesítés nélküli kérések beállítása HTTP 401 Jogosulatlanra: API-khoz ajánlott. Ez a beállítás biztosítja, hogy a rendszer minden nem hitelesített kérést elutasítson (401 válasz).

    Screenshot of the Azure portal showing the Add an identity provider page with Support account types and Unauthenticated requests highlighted.

  7. Válassza a Hozzáadás lehetőséget.

A beállítások hozzáadása után a függvényalkalmazás újraindul, és a rendszer az összes további kérést a Microsoft Entra-azonosítón keresztül kéri a bejelentkezésre. Tesztelheti, hogy a nem hitelesített kérések jelenleg elutasítva vannak-e a függvényalkalmazás gyökér URL-címével (a parancs kimenetében hostNamesaz functionapp create adja vissza). Ezután a rendszer átirányítja a szervezet Microsoft Entra bejelentkezési képernyőjére.

A későbbi használathoz szüksége lesz az alkalmazásazonosítóra és az alkalmazásazonosító URI-ra. Az Azure Portalon keresse meg a létrehozott függvényalkalmazást.

Az alkalmazásazonosító lekéréséhez válassza a Hitelesítés lehetőséget a navigációs panelen, majd másolja ki a függvényalkalmazás nevét tartalmazó identitásszolgáltató alkalmazás-(ügyfél-) azonosítóját .

Screenshot of the Azure portal showing the Authentication page for a Function app, with the Function app name highlighted in the Identity provider.

Az alkalmazásazonosító URI-jának lekéréséhez válassza az API-k megjelenítése lehetőséget a navigációs panelen, majd másolja az alkalmazásazonosító URI-értékét .

Screenshot of the Azure portal showing the Expose an API page for a Function app with the Application ID URI highlighted.

HTTP által aktivált függvény létrehozása

Egy üres helyi könyvtárban az alábbi parancsokkal hozzon létre egy új függvényalkalmazást, és adjon hozzá egy HTTP-aktivált függvényt:

func init --worker-runtime node
func new --template HttpTrigger --name HttpTrigger

Alapértelmezés szerint a függvények kulcsalapú hitelesítéssel védik a HTTP-végpontokat. Ha engedélyezni szeretné a Microsoft Entra-hitelesítést a függvényekhez való hozzáférés biztonságossá tételéhez, állítsa be a authLevel kulcsot anonymous a function.json fájlban, ahogyan az alábbi példában látható:

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      ...
    }
  ]
}

További információkért tekintse meg az Azure Functions HTTP-eseményindítójának éles környezetben történő biztonságossá tételéről készült HTTP-végpontot.

Az alábbi paranccsal tegye közzé az alkalmazást az előző lépésben létrehozott példányon:

func azure functionapp publish <function-app-name>

A közzétételi parancs kimenetének tartalmaznia kell az újonnan létrehozott függvény URL-címét, ahogyan az a következő kimenetben látható:

Deployment completed successfully.
Syncing triggers...
Functions in <your-functionapp-name>:
    HttpTrigger - [httpTrigger]
        Invoke url: https://<function-app-name>.azurewebsites.net/api/httptrigger

Azure Spring Apps-szolgáltatáspéldány és -alkalmazás létrehozása

A spring bővítmény hozzáadásához és az Azure Spring Apps új példányának létrehozásához használja az alábbi parancsokat:

az extension add --upgrade --name spring
az spring create \
    --resource-group <resource-group-name> \
    --name <Azure-Spring-Apps-instance-name> \
    --location <location>

A következő paranccsal hozzon létre egy, a paraméter által --assign-identity kért, rendszer által hozzárendelt felügyelt identitással ellátott msiapp alkalmazást:

az spring app create \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name "msiapp" \
    --assign-endpoint true \
    --assign-identity

Spring Boot-mintaalkalmazás létrehozása a függvény meghívásához

Ez a minta meghívja a HTTP által aktivált függvényt úgy, hogy először kér egy hozzáférési jogkivonatot az MSI-végponttól, és ezzel a jogkivonattal hitelesíti a függvény HTTP-kérését. További információ: A jogkivonat lekérése a hozzáférési jogkivonat beszerzéséhez az Azure-beli virtuális gépen lévő Azure-erőforrások felügyelt identitásainak http-használatával című szakaszában.

  1. A következő paranccsal klónozza a mintaprojektet:

    git clone https://github.com/Azure-Samples/azure-spring-apps-samples.git
    
  2. Az alábbi paranccsal adja meg a függvény URI-ját és az eseményindító nevét az alkalmazás tulajdonságai között:

    cd azure-spring-apps-samples/managed-identity-function
    vim src/main/resources/application.properties
    
  3. Ha felügyelt identitást szeretne használni az Azure Spring Apps-alkalmazásokhoz, adja hozzá az alábbi tulajdonságokat ezekkel az értékekkel az src/main/resources/application.properties fájlhoz.

    azure.function.uri=https://<function-app-name>.azurewebsites.net
    azure.function.triggerPath=httptrigger
    azure.function.application-id.uri=<function-app-application-ID-uri>
    
  4. A mintaalkalmazás csomagolásához használja a következő parancsot:

    mvn clean package
    
  5. Az alkalmazás üzembe helyezéséhez használja a következő parancsot az Azure Spring Appsben:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name "msiapp" \
        --artifact-path target/asc-managed-identity-function-sample-0.1.0.jar
    
  6. Az alkalmazás teszteléséhez használja a következő parancsot a nyilvános végpont vagy a tesztvégpont eléréséhez:

    curl https://<Azure-Spring-Apps-instance-name>-msiapp.azuremicroservices.io/func/springcloud
    

    A válasz törzsében a következő üzenet lesz visszaadva.

    Function Response: Hello, springcloud. This HTTP triggered function executed successfully.
    

Következő lépések