Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Note
Plany Podstawowy, Standardowy i Enterprise weszły w okres wycofania z dniem 17 marca 2025 r. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu usługi Azure Spring Apps.
Ten artykuł dotyczy:✅ Podstawowa/Standardowa ✅ Enterprise
W tym artykule pokazano, jak utworzyć tożsamość zarządzaną dla aplikacji hostowanej w usłudze Azure Spring Apps i użyć jej do wywoływania funkcji wyzwalanych przez protokół HTTP.
Usługi Azure Functions i App Services mają zintegrowaną obsługę uwierzytelniania Microsoft Entra. Korzystając z tej wbudowanej funkcji uwierzytelniania wraz z tożsamościami zarządzanymi dla usługi Azure Spring Apps, można wywoływać usługi RESTful przy użyciu nowoczesnych semantyki OAuth. Ta metoda nie wymaga przechowywania wpisów tajnych w kodzie i zapewnia bardziej szczegółowe mechanizmy kontroli kontrolowania dostępu do zasobów zewnętrznych.
Prerequisites
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto .
- Interfejs wiersza polecenia platformy Azure w wersji 2.45.0 lub nowszej.
- Git.
- Apache Maven w wersji 3.0 lub nowszej.
- Zainstaluj narzędzia Azure Functions Core Tools w wersji 4.x.
Tworzenie grupy zasobów
Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Użyj następującego polecenia, aby utworzyć grupę zasobów zawierającą aplikację funkcji:
az group create --name <resource-group-name> --location <location>
Aby uzyskać więcej informacji, zapoznaj się z poleceniem az group create.
Utwórz aplikację funkcji
Aby utworzyć aplikację funkcji, musisz najpierw utworzyć konto magazynu kopii zapasowej. Możesz użyć polecenia az storage account create .
Important
Każda aplikacja typu Function i konto przechowywania muszą mieć unikatową nazwę.
Użyj następującego polecenia, aby utworzyć konto magazynowe. Zastąp <function-app-name> nazwą aplikacji Function i <storage-account-name> nazwą konta przechowywania.
az storage account create \
--resource-group <resource-group-name> \
--name <storage-account-name> \
--location <location> \
--sku Standard_LRS
Po utworzeniu konta magazynu użyj następującego polecenia, aby utworzyć aplikację funkcji:
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
Zanotuj zwróconą hostNames wartość, która ma format https://<your-functionapp-name>.azurewebsites.net. Użyj tej wartości w głównym adresie URL aplikacji Function do testowania aplikacji Function.
Włącz uwierzytelnianie Microsoft Entra
Wykonaj poniższe kroki, aby włączyć uwierzytelnianie Microsoft Entra w celu uzyskania dostępu do aplikacji Function.
- W witrynie Azure Portal przejdź do grupy zasobów, a następnie otwórz utworzoną aplikację funkcji.
- W okienku nawigacji wybierz pozycję Uwierzytelnianie , a następnie wybierz pozycję Dodaj dostawcę tożsamości w okienku głównym.
- Na stronie Dodawanie dostawcy tożsamości wybierz pozycję Microsoft z menu rozwijanego Dostawca tożsamości .
- Wybierz Dodaj.
- W obszarze Podstawowe ustawienia na stronie Dodawanie dostawcy tożsamości ustaw opcję Obsługiwane typy kont na Dowolny katalog Microsoft Entra — Multi-tenantowy.
- Ustaw nieuwierzytelnione żądania na http 401 Brak autoryzacji: zalecane dla interfejsów API. To ustawienie gwarantuje, że wszystkie nieuwierzytelnione żądania zostaną odrzucone (401 odpowiedź).
- Wybierz Dodaj.
Po dodaniu ustawień aplikacja funkcjonalna zostanie ponownie uruchomiona, a wszystkie kolejne żądania będą wymagały zalogowania się poprzez Microsoft Entra ID. Możesz sprawdzić, że żądania nieuwierzytelnione są obecnie odrzucane korzystając z głównego adresu URL aplikacji Function (zwróconego w danych wyjściowych polecenia hostNamesaz functionapp create). Następnie powinno nastąpić przekierowanie do ekranu logowania Microsoft Entra w Twojej organizacji.
Do późniejszego użycia potrzebne są identyfikator aplikacji oraz URI identyfikatora aplikacji. W Azure portal przejdź do utworzonej aplikacji Function App.
Aby uzyskać identyfikator aplikacji, wybierz Uwierzytelnianie w okienku nawigacji, a następnie skopiuj wartość Identyfikatora aplikacji (klienta) dostawcy tożsamości, obejmującego nazwę aplikacji funkcji.
Aby uzyskać identyfikator URI aplikacji, wybierz pozycję Udostępnij interfejs API w panelu nawigacyjnym, a następnie skopiuj wartość identyfikatora URI aplikacji.
Tworzenie funkcji wyzwalanej przez protokół HTTP
W pustym katalogu lokalnym użyj następujących poleceń, aby utworzyć nową aplikację funkcji i dodać funkcję wyzwalaną przez protokół HTTP:
func init --worker-runtime node
func new --template HttpTrigger --name HttpTrigger
Domyślnie funkcje używają uwierzytelniania opartego na kluczach do zabezpieczania punktów końcowych HTTP. Aby włączyć uwierzytelnianie firmy Microsoft Entra, aby zabezpieczyć dostęp do funkcji, ustaw authLevel klucz na anonymous w pliku function.json, jak pokazano w poniższym przykładzie:
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
...
}
]
}
Aby uzyskać więcej informacji, zobacz sekcję Zabezpieczanie punktów końcowych HTTP w temacieZabezpieczanie usługi Azure Functions.
Użyj następującego polecenia, aby opublikować aplikację w wystąpieniu utworzonym w poprzednim kroku:
func azure functionapp publish <function-app-name>
Dane wyjściowe polecenia publikowania powinny zawierać adres URL nowo utworzonej funkcji, jak pokazano w następujących danych wyjściowych:
Deployment completed successfully.
Syncing triggers...
Functions in <your-functionapp-name>:
HttpTrigger - [httpTrigger]
Invoke url: https://<function-app-name>.azurewebsites.net/api/httptrigger
Tworzenie wystąpienia i aplikacji usługi Azure Spring Apps
Użyj następujących poleceń, aby dodać rozszerzenie spring i utworzyć nowe wystąpienie usługi Azure Spring Apps:
az extension add --upgrade --name spring
az spring create \
--resource-group <resource-group-name> \
--name <Azure-Spring-Apps-instance-name> \
--location <location>
Użyj następującego polecenia, aby utworzyć aplikację o nazwie msiapp z tożsamością zarządzaną przypisaną przez system zgodnie z żądaniem parametru --assign-identity :
az spring app create \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name "msiapp" \
--assign-endpoint true \
--assign-identity
Tworzenie przykładowej aplikacji Spring Boot w celu wywołania funkcji
Ten przykład wywołuje funkcję uruchamianą za pomocą protokołu HTTP, najpierw żądając tokenu dostępu z punktu końcowego MSI i używając tego tokenu do uwierzytelniania żądania HTTP funkcji. Aby uzyskać więcej informacji, zobacz sekcję Pobieranie tokenu przy użyciu protokołu HTTP w temacie How to use managed identities for Azure resources on an Azure VM to acquire an access token (Jak używać tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure w celu uzyskania tokenu dostępu).
Użyj następującego polecenia sklonuj przykładowy projekt:
git clone https://github.com/Azure-Samples/azure-spring-apps-samples.gitUżyj następującego polecenia, aby określić identyfikator URI funkcji i nazwę wyzwalacza we właściwościach aplikacji:
cd azure-spring-apps-samples/managed-identity-function vim src/main/resources/application.propertiesAby użyć tożsamości zarządzanej dla aplikacji Azure Spring Apps, dodaj następujące właściwości i przypisz im te wartości w pliku src/main/resources/application.properties:
azure.function.uri=https://<function-app-name>.azurewebsites.net azure.function.triggerPath=httptrigger azure.function.application-id.uri=<function-app-application-ID-uri>Użyj następującego polecenia, aby spakować przykładową aplikację:
mvn clean packageUżyj następującego polecenia, aby wdrożyć aplikację w usłudze Azure Spring Apps:
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.jarUżyj następującego polecenia, aby uzyskać dostęp do publicznego punktu końcowego lub testowego punktu końcowego w celu przetestowania aplikacji:
curl https://<Azure-Spring-Apps-instance-name>-msiapp.azuremicroservices.io/func/springcloudW treści odpowiedzi zwracany jest następujący komunikat.
Function Response: Hello, springcloud. This HTTP triggered function executed successfully.