Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Pro více informací si přečtěte oznámení o ukončení Azure Spring Apps.
Tento článek popisuje, jak nasadit aplikaci RESTful API chráněnou id Microsoft Entra do Azure Spring Apps. Ukázkový projekt je zjednodušená verze založená na webové aplikaci Simple Todo , která poskytuje pouze back-endovou službu a k ochraně rozhraní RESTful API používá Microsoft Entra ID.
Tato rozhraní RESTful API jsou chráněná použitím řízení přístupu na základě role (RBAC). Anonymní uživatelé nemají přístup k žádným datům a nemůžou řídit přístup pro různé uživatele. Anonymní uživatelé mají pouze následující tři oprávnění:
- Čtení: S tímto oprávněním může uživatel číst data toDo.
- Zápis: Toto oprávnění umožňuje uživateli přidat nebo aktualizovat data ToDo.
- Odstranit: S tímto oprávněním může uživatel odstranit data ToDo.
Po úspěšném nasazení můžete zobrazit a otestovat rozhraní API prostřednictvím uživatelského rozhraní Swagger.
Následující diagram znázorňuje architekturu systému:
Tento článek popisuje následující možnosti pro vytváření prostředků a jejich nasazení do Azure Spring Apps:
- Možnost modulu plug-in Azure Portal + Maven nabízí konventivnější způsob vytváření prostředků a nasazování aplikací krok za krokem. Tato možnost je vhodná pro vývojáře springu, kteří používají cloudové služby Azure poprvé.
- Možnost Azure CLI používá k správě prostředků Azure výkonný nástroj příkazového řádku. Tato možnost je vhodná pro vývojáře Springu, kteří jsou obeznámeni s cloudovými službami Azure.
1. Požadavky
Předplatné služby Azure. Pokud nemáte předplatné Azure, vytvořte si bezplatný účet Azure, než začnete.
Jedna z následujících rolí:
- Globální správce nebo správce privilegovaných rolí za udělení souhlasu pro aplikace, které požadují jakékoli oprávnění, pro jakékoli rozhraní API.
- Správce cloudových aplikací nebo správce aplikací pro udělení souhlasu pro aplikace, které požadují jakékoli oprávnění pro jakékoli rozhraní API, s výjimkou rolí aplikací Microsoft Graphu (oprávnění aplikací).
- Vlastní role adresáře, která zahrnuje oprávnění k udělení oprávnění aplikacím, pro oprávnění požadovaná aplikací.
Další informace najdete v tématu Udělení souhlasu správce v rámci celého tenanta k aplikaci.
Git.
Java Development Kit (JDK) verze 17.
Tenant Microsoft Entra. Podívejte se na pokyny k vytvoření v tématu Rychlý start: Vytvoření nového tenanta v Microsoft Entra ID.
2. Příprava projektu Spring
Pokud chcete nasadit aplikaci RESTful API, prvním krokem je příprava projektu Spring na místní spuštění.
Pomocí následujících kroků naklonujte a spusťte aplikaci místně:
Pomocí následujícího příkazu naklonujte ukázkový projekt z GitHubu:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.gitPokud chcete aplikaci spustit místně, nejprve proveďte kroky v části Zveřejnění rozhraní RESTful API a aktualizujte konfigurační oddíly aplikace a pak pomocí následujícího příkazu spusťte ukázkovou aplikaci pomocí Mavenu:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Příprava cloudového prostředí
Hlavní prostředky potřebné ke spuštění této ukázkové aplikace jsou instance Azure Spring Apps a instance Azure Database for PostgreSQL. Následující části popisují, jak tyto prostředky vytvořit.
3.1. Přihlaste se k portálu Azure Portal.
Přejděte na web Azure Portal a zadejte svoje přihlašovací údaje pro přihlášení k portálu. Výchozím zobrazením je váš řídicí panel služby.
3.2. Vytvoření instance Azure Spring Apps
Pomocí následujících kroků vytvořte instanci služby Azure Spring Apps:
V rohu portálu Azure vyberte Vytvořit prostředek.
Vyberte Compute>Azure Spring Apps.
Vyplňte formulář Základy s následujícími informacemi:
Setting Navrhovaná hodnota Description Subscription Název vašeho předplatného Předplatné Azure, které chcete použít pro váš server. Pokud máte více předplatných, zvolte předplatné, ve kterém chcete prostředek fakturovat. Skupina zdrojů myresourcegroup Název nové skupiny prostředků nebo název existujícího ve vašem předplatném. Name myasa Jedinečný název, který identifikuje vaši službu Azure Spring Apps. Název musí mít délku 4 až 32 znaků a může obsahovat jenom malá písmena, číslice a pomlčky. První znak názvu služby musí být písmeno a poslední znak musí být písmeno nebo číslo. Plan Enterprise Cenový plán, který určuje zdroje a náklady spojené s vaší instancí. Region Oblast, která je nejblíže vašim uživatelům. Umístění co nejblíže vašim uživatelům. Zónově redundantní Unselected Možnost vytvoření služby Azure Spring Apps v zóně dostupnosti Azure Tato funkce se v současné době nepodporuje ve všech oblastech. Plán softwarových IP adres Pay-as-You-Go Cenový plán, který vám umožní platit podle potřeby pomocí Azure Spring Apps. Terms Selected Zaškrtávací políčko souhlasu spojené s nabídkou na Marketplace. Toto políčko musíte zaškrtnout. Nasazení ukázkového projektu Unselected Možnost použít předdefinované ukázkové aplikace. Výběrem možnosti Zkontrolovat a Vytvořit zkontrolujte vybrané možnosti. Pak vyberte Vytvořit a zřiďte instanci Azure Spring Apps.
Pokud chcete monitorovat proces nasazení, na panelu nástrojů vyberte ikonu Oznámení (zvonek). Po dokončení nasazení můžete vybrat Připnout na řídicí panel, což vytvoří dlaždici pro tuto službu na řídicím panelu portálu Azure, jako zástupce na stránku Přehled služby.
Výběrem možnosti Přejít k prostředku přejděte na stránku Přehled služby Azure Spring Apps.
3.3. Příprava instance PostgreSQL
Pomocí následujících kroků vytvořte server Azure Database for PostgreSQL:
Přejděte na Azure portál a vyberte Vytvořit prostředek.
Vyberte Databáze>Azure Database for PostgreSQL.
Vyberte možnost nasazení flexibilního serveru .
Vyplňte záložku Základy následujícími informacemi:
- Název serveru: my-demo-pgsql
- Oblast: USA – východ
- Verze PostgreSQL: 14
- Typ úlohy: Vývoj
- Povolení vysoké dostupnosti: nevybrané
- Metoda ověřování: Pouze ověřování PostgreSQL
- Uživatelské jméno správce: myadmin
- Heslo a potvrzení hesla: Zadejte heslo.
Ke konfiguraci karty Sítě použijte následující informace:
- Metoda připojení: Veřejný přístup (povolené IP adresy)
- Povolit veřejný přístup z libovolné služby Azure v rámci Azure na tento server: vybráno
Výběrem možnosti Zkontrolovat a vytvořit zkontrolujte výběry a výběrem možnosti Vytvořit zřiďte server. Tato operace může trvat několik minut.
Na webu Azure Portal přejděte na Server PostgreSQL. Na stránce Přehled vyhledejte hodnotu název serveru a potom ji poznamenejte pro pozdější použití. Potřebujete ji ke konfiguraci proměnných prostředí pro aplikaci v Azure Spring Apps.
V navigační nabídce vyberte Databáze a vytvořte databázi – například úkol.
3.4. Připojení instance aplikace k instanci PostgreSQL
K připojení instancí služby použijte následující postup:
Na webu Azure Portal přejděte ke své instanci Azure Spring Apps.
V navigační nabídce otevřete aplikace a pak vyberte Vytvořit aplikaci.
Na stránce Vytvořit aplikaci vyplňte název aplikace simple-todo-api a jako typ nasazení vyberte artefakty Java .
Výběrem Vytvořit dokončete vytvoření aplikace a poté zvolte aplikaci, abyste si zobrazili její podrobnosti.
Přejděte do aplikace, kterou jste vytvořili na webu Azure Portal. Na stránce Přehled vyberte Přiřadit koncový bod , aby se veřejný koncový bod aplikace zpřístupnil. Uložte adresu URL pro přístup k aplikaci po nasazení.
V navigačním podokně vyberte Konektor služby a pak vyberte Vytvořit a vytvořte nové připojení služby.
Vyplňte záložku Základy následujícími informacemi:
- Typ služby: DB flexibilní server pro PostgreSQL
- Název připojení: Vyplní se automaticky vygenerovaný název, který lze také upravit.
- Předplatné: Vyberte předplatné.
- Flexibilní server PostgreSQL: my-demo-pgsql
- Databáze PostgreSQL: Vyberte databázi, kterou jste vytvořili.
- Typ klienta: SpringBoot
Nakonfigurujte kartu Další: Ověřování s následujícími informacemi:
Note
Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Tok ověřování popsaný v tomto postupu, například pro databáze, mezipaměti, zasílání zpráv nebo služby AI, vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna v jiných tocích. Tento tok používejte pouze v případě, že nejsou možné bezpečnější možnosti, jako jsou spravované identity pro připojení bez hesel či klíčů. V případě místních operací počítačů upřednostňujete identity uživatelů pro připojení bez hesla nebo bez klíčů.
- Vyberte typ ověřování, který chcete použít mezi výpočetní službou a cílovou službou.: Vyberte Připojovací řetězec.
- Pokračovat v...: Výběr přihlašovacích údajů databáze
- Uživatelské jméno: myadmin
- Heslo: Zadejte heslo.
Vyberte Další: Sítě. Pomocí výchozí možnosti Konfigurovat pravidla brány firewall povolte přístup k cílové službě.
Vyberte Další: Zkontrolujte a Vytvořte , abyste zkontrolovali výběry, a pak výběrem možnosti Vytvořit vytvořte připojení.
3.5. Zpřístupnění rozhraní RESTful API
Pomocí následujících kroků zpřístupněte rozhraní RESTful API v Microsoft Entra ID:
Přihlaste se do Azure Portalu.
Pokud máte přístup k více tenantům, pomocí filtru Directory + předplatného (
) vyberte tenanta, ve kterém chcete aplikaci zaregistrovat.Vyhledejte a vyberte Microsoft Entra ID.
V části Spravovatvyberte Registrace aplikací>Nová registrace.
Do pole Název zadejte název aplikace – například Todo. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.
U podporovaných typů účtů vyberte Účty v libovolném organizačním adresáři (libovolný adresář Microsoft Entra – Víceklient) a osobní účty Microsoft.
Vyberte Zaregistrovat a vytvořte aplikaci.
Na stránce Přehled aplikace vyhledejte hodnotu Aplikační (klientské) ID a poznamenejte si ji pro pozdější použití. Potřebujete ho ke konfiguraci konfiguračního souboru YAML pro tento projekt.
V části Spravovat vyberte Zveřejnit rozhraní API, na začátku stránky vyhledejte identifikátor URI ID aplikace a pak vyberte Přidat.
Na stránce Upravit identifikátor URI ID aplikace přijměte navrhovaný identifikátor URI ID aplikace (
api://{client ID}) nebo použijte smysluplný název místo ID klienta, napříkladapi://simple-todoa pak vyberte Uložit.V části Spravovat vyberte Zveřejnit rozhraní API>Přidat obor a zadejte následující informace:
- Jako název oboru zadejte ToDo.Read.
- U možnosti Kdo může souhlasit, vyberte pouze správce.
- Jako zobrazovaný název souhlasu správce zadejte Číst data ToDo.
- Jako popis souhlasu správce zadejte Umožňuje ověřeným uživatelům číst data ToDo.
- V případě státu ho ponechte povolenou.
- Vyberte Přidat rozsah.
Opakujte předchozí kroky a přidejte další dva obory: ToDo.Write a ToDo.Delete.
3.6. Aktualizace konfigurace aplikace
Pomocí následujících kroků aktualizujte soubor YAML tak, aby používal informace o vaší aplikaci zaregistrované v Microsoft Entra k navázání relace s aplikací RESTful API:
Vyhledejte soubor src/main/resources/application.yml aplikace
simple-todo-api. Aktualizujte konfiguraci vspring.cloud.azure.active-directoryčásti tak, aby odpovídala následujícímu příkladu. Zástupné symboly nezapomeňte nahradit hodnotami, které jste vytvořili dříve.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>Note
V tokenech v1.0 konfigurace vyžaduje ID klienta rozhraní API, zatímco v tokenech v2.0 můžete v požadavku použít ID klienta nebo identifikátor URI ID aplikace. Obě možnosti můžete nakonfigurovat tak, aby správně dokončily ověřování cílové skupiny.
Hodnoty povolené pro
tenant-idjsou:common,organizations,consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním nájemcem na vícenájemcovou najdete v kapitole Převod jednoklientských aplikací na vícenájemcovou vMicrosoft Entra ID.Pomocí následujícího příkazu znovu sestavte ukázkový projekt:
./mvnw clean package
4. Nasazení aplikace do Azure Spring Apps
Aplikaci teď můžete nasadit do Azure Spring Apps.
Pomocí následujících kroků nasaďte modul plug-in Maven pro Azure Spring Apps:
Přejděte do úplného adresáře a spuštěním následujícího příkazu nakonfigurujte aplikaci v Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:configNásledující seznam popisuje interakce příkazů:
- Přihlášení OAuth2: Musíte autorizovat přihlášení k Azure na základě protokolu OAuth2.
- Vyberte předplatné: Vyberte číslo seznamu předplatných instance Azure Spring Apps, kterou jste vytvořili. Výchozí hodnota je první předplatné v seznamu. Pokud použijete výchozí číslo, stiskněte klávesu Enter přímo.
- Použití existujících aplikací Azure Spring Apps v Azure: Stisknutím klávesy y použijte existující instanci Azure Spring Apps.
- Vyberte Azure Spring Apps pro nasazení: Vyberte počet instance Azure Spring Apps, kterou jste vytvořili. Pokud použijete výchozí číslo, stiskněte klávesu Enter přímo.
- Použijte existující aplikaci ve službě Azure Spring Apps <s názvem> vaší instance: Stisknutím klávesy y použijte vytvořenou aplikaci.
- Potvrďte uložení všech výše uvedených konfigurací: Stiskněte y. Pokud stisknete klávesu n, konfigurace se neuloží do souborů POM.
K nasazení aplikace použijte následující příkaz:
./mvnw azure-spring-apps:deployNásledující seznam popisuje interakci s příkazy:
- Přihlášení OAuth2: Musíte autorizovat přihlášení k Azure na základě protokolu OAuth2.
Po spuštění příkazu se z následujících zpráv protokolu můžete přesvědčit, že nasazení proběhlo úspěšně:
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-api-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-api)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-api.azuremicroservices.io
5. Ověření aplikace
Teď můžete získat přístup k rozhraní RESTful API a zjistit, jestli funguje.
5.1. Vyžádání přístupového tokenu
Rozhraní RESTful API fungují jako server prostředků, který je chráněný službou Microsoft Entra ID. Před získáním přístupového tokenu je nutné zaregistrovat jinou aplikaci v Microsoft Entra ID a udělit oprávnění klientské aplikaci, která je pojmenována ToDoWeb.
Registrace klientské aplikace
Pomocí následujícího postupu zaregistrujte aplikaci v MICROSOFT Entra ID, která se používá k přidání oprávnění pro ToDo aplikaci:
Přihlaste se do Azure Portalu.
Pokud máte přístup k více tenantům, pomocí filtru Directory + předplatného (
) vyberte tenanta, ve kterém chcete aplikaci zaregistrovat.Vyhledejte a vyberte Microsoft Entra ID.
V části Spravovatvyberte Registrace aplikací>Nová registrace.
Do pole Název zadejte název aplikace – například ToDoWeb. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.
U podporovaných typů účtů použijte pouze výchozí hodnotu Účty v tomto organizačním adresáři.
Vyberte Zaregistrovat a vytvořte aplikaci.
Na stránce Přehled aplikace vyhledejte hodnotu Aplikační (klientské) ID a poznamenejte si ji pro pozdější použití. Potřebujete ho k získání přístupového tokenu.
Vyberte oprávnění> rozhraní APIPřidat oprávnění>Moje rozhraní API.
ToDoVyberte aplikaci, kterou jste zaregistrovali dříve, a pak vyberte oprávnění ToDo.Read, ToDo.Write a ToDo.Delete. Vyberte Přidat oprávnění.Pokud chcete udělit souhlas správce s oprávněními, která jste přidali, vyberte Udělit souhlas správce pro <vaše jméno> tenanta.
Přidání uživatele pro přístup k rozhraním RESTful API
Pomocí následujícího postupu vytvořte člena uživatele v tenantovi Microsoft Entra. Uživatel pak může spravovat data ToDo aplikace prostřednictvím rozhraní RESTful API.
V části Spravovat vyberte Uživatelé>Nový uživatel>Vytvořit nového uživatele.
Na stránce Vytvořit nového uživatele zadejte následující informace:
- Hlavní název uživatele: Zadejte název uživatele.
- Zobrazované jméno: Zadejte zobrazované jméno uživatele.
- Heslo: Zkopírujte automaticky vygenerované heslo zadané v poli Heslo .
Note
Noví uživatelé musí dokončit první přihlášení a aktualizovat svá hesla, jinak se při získání přístupového tokenu zobrazí
AADSTS50055: The password is expiredchyba.Když se nový uživatel přihlásí, zobrazí se výzva Nutná akce . Ověření můžete přeskočit výběrem možnosti Požádat později .
Výběrem možnosti Zkontrolovat a vytvořit zkontrolujte vybrané položky. Vyberte Vytvořit a vytvořte uživatele.
Aktualizace konfigurace OAuth2 pro autorizaci uživatelského rozhraní Swaggeru
Pomocí následujících kroků aktualizujte konfiguraci OAuth2 pro autorizaci uživatelského rozhraní Swagger. Potom můžete autorizovat uživatele k získání přístupových tokenů prostřednictvím ToDoWeb aplikace.
Otevřete Microsoft Entra ID tenant v Azure portálu a přejděte k registrované
ToDoWebaplikaci.V části Spravovat vyberte Ověřování, vyberte Přidat platformu a pak vyberte Jednostrákovou aplikaci.
Použijte formát
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.htmljako adresu URL pro přesměrování OAuth2 v poli Identifikátory URI přesměrování, poté vyberte Konfigurovat.
Získání přístupového tokenu
Pomocí následujícího postupu použijte metodu toku autorizačního kódu OAuth 2.0 k získání přístupového tokenu s ID Microsoft Entra a pak získejte přístup k rozhraním RESTful API ToDo aplikace:
Otevřete adresu URL vystavenou aplikací a poté vyberte Autorizovat k přípravě ověřování OAuth2.
V okně Dostupné autorizace zadejte ID
ToDoWebklienta aplikace do pole client_id , vyberte všechny obory pro pole Obory , ignorujte pole client_secret a pak vyberte Autorizovat , aby se přesměrovával na přihlašovací stránku Microsoft Entra.
Po dokončení přihlášení s předchozím uživatelem se vrátíte do okna Dostupná autorizace .
5.2. Přístup k rozhraním RESTful API
Pro přístup k rozhraním RESTful API ToDo aplikace v uživatelském rozhraní Swagger použijte následující postup:
Vyberte rozhraní API POST /api/simple-todo/lists a pak vyberte Vyzkoušet. Zadejte následující text požadavku a pak vyberte Spustit a vytvořte seznam úkolů.
{ "name": "My List" }Po dokončení provádění se zobrazí následující text odpovědi:
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }Vyberte rozhraní API POST /api/simple-todo/lists/{listId}/items a pak vyberte Vyzkoušet. Jako listId zadejte ID seznamu úkolů, které jste vytvořili dříve, zadejte následující text požadavku a pak vyberte Spustit a vytvořte položku ToDo.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }Tato akce vrátí následující položku ToDo:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.9033069+08:00", "completedDate": null }Vyberte rozhraní API GET /api/simple-todo/lists a pak vyberte Spustit pro dotazování seznamů úkolů. Tato akce vrátí následující seznamy úkolů:
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]Vyberte rozhraní API GET /api/simple-todo/lists/{listId}/items a pak vyberte Vyzkoušet. Jako listId zadejte ID seznamu úkolů, které jste vytvořili dříve, a pak vyberte Spustit a zadejte dotaz na položky ToDo. Tato akce vrátí následující položku ToDo:
[ { "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.903307+08:00", "completedDate": null } ]Vyberte rozhraní API PUT /api/simple-todo/lists/{listId}/items/{itemId} a pak vyberte Vyzkoušet. Jako listId zadejte ID seznamu úkolů. Jako itemId zadejte ID položky ToDo, zadejte následující text požadavku a pak vyberte Spustit a aktualizujte položku ToDo.
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "dueDate": "2023-07-11T13:59:24.903307+08:00", "state": "inprogress" }Tato akce vrátí následující aktualizovanou položku toDo:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "state": "inprogress", "dueDate": "2023-07-11T05:59:24.903307Z", "completedDate": null }Vyberte rozhraní API DELETE /api/simple-todo/lists/{listId}/items/{itemId} a pak vyberte Vyzkoušet. Jako listId zadejte ID seznamu úkolů. Jako itemId zadejte ID položky ToDo a pak vyberte Spustit , chcete-li položku ToDo odstranit. Měli byste vidět, že kód odpovědi serveru je
204.
6. Vyčištění prostředků
Můžete odstranit skupinu prostředků Azure, což zahrnuje odstranění všech prostředků v této skupině prostředků.
Pomocí následujících kroků odstraňte celou skupinu prostředků, včetně nově vytvořené služby:
Vyhledejte skupinu prostředků na webu Azure Portal.
V navigační nabídce vyberte skupiny prostředků. Pak vyberte název vaší skupiny prostředků , například myresourcegroup.
Na stránce vaší skupiny prostředků vyberte Odstranit. Do textového pole zadejte název vaší skupiny prostředků, abyste potvrdili odstranění – například myresourcegroup. Pak vyberte Odstranit.
7. Další kroky
Další informace najdete v následujících článcích: