Kurz: Ověřování klienta pomocí brány Spring Cloud v Azure Spring Apps
Poznámka:
Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.
Tento článek se vztahuje na: ✔️ Standardní spotřeba a vyhrazená (Preview)
V tomto rychlém startu se dozvíte, jak zabezpečit komunikaci mezi klientskou aplikací a aplikací mikroslužeb hostovanou v Azure Spring Apps a chráněnou aplikací Spring Cloud Gateway. Klientská aplikace je ověřená jako objekt zabezpečení, který iniciuje kontakt s mikroslužbou nasazenou v Azure Spring Apps pomocí aplikace vytvořené pomocí brány Spring Cloud. Tato metoda využívá funkce Token Relay služby Spring Cloud Gateway a Spring Security Resource Server pro procesy ověřování a autorizace, které byly realizovány prostřednictvím spuštění toku přihlašovacích údajů klienta OAuth 2.0.
Následující seznam ukazuje složení ukázkového projektu:
- Books SPA: Tato jednostránkové aplikace (SPA), hostovaná místně, komunikuje s mikroslužbou Books pro přidávání nebo vyhledávání knih.
- Mikroslužba knihy:
- Aplikace Spring Cloud Gateway hostovaná v Azure Spring Apps Tato aplikace funguje jako brána pro rozhraní RESTful API Books.
- Aplikace ROZHRANÍ RESTful API spring Boot hostovaná v Azure Spring Apps Tato aplikace ukládá informace o knize do databáze H2. Služba Books zveřejňuje dva koncové body REST pro zápis a čtení knih.
1. Požadavky
- Předplatné Azure. Pokud předplatné nemáte, vytvořte si před zahájením bezplatný účet .
- Git
- Java Development Kit (JDK) verze 17.
- Tenant Microsoft Entra. Další informace o tom, jak vytvořit tenanta Microsoft Entra, najdete v tématu Rychlý start: Vytvoření nového tenanta v Microsoft Entra ID.
- Azure CLI verze 2.45.0 nebo vyšší
- Nainstalujte Node.js.
2. Příprava projektu Spring
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/azure-spring-apps-sso-client-credential.git -b consumption-plan
Pomocí následujícího příkazu sestavte back-endové služby Books:
cd azure-spring-apps-sso-client-credential ./mvnw clean package
Zadejte adresář projektu SPA a pomocí následujícího příkazu nainstalujte závislosti:
npm install @azure/msal-node
3. Příprava cloudového prostředí
Hlavní prostředky potřebné ke spuštění této ukázky jsou instance Azure Spring Apps a instance Azure Database for PostgreSQL. Tato část obsahuje postup vytvoření těchto prostředků.
3.1. Přihlaste se k portálu Azure Portal.
Otevřete webový prohlížeč a přejděte na web Azure Portal. Zadejte svoje přihlašovací údaje pro přihlášení k webu Azure Portal. Výchozím zobrazením je váš řídicí panel služby.
3.2. Vytvoření instance Azure Spring Apps
K vytvoření instance služby použijte následující postup:
V rohu webu Azure Portal vyberte Vytvořit prostředek .
Vyberte Compute>Azure Spring Apps.
Vyplňte formulář Základy s následujícími informacemi:
Nastavení Navrhovaná hodnota Popis Předplatné 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 prostředků myresourcegroup Název nové skupiny prostředků nebo některé ze stávajících ve vašem předplatném. Název 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. Plánování Standardní spotřeba a vyhrazená verze (Preview) Cenový plán určuje prostředky a náklady spojené s vaší instancí. Oblast Oblast nejbližší vašim uživatelům Umístění co nejblíže vašim uživatelům. Prostředí Container Apps myacaenv Vyberte instanci prostředí Container Apps, která se má sdílet se stejnou virtuální sítí s dalšími službami a prostředky. Jako vodítko pro vytvoření prostředí Container Apps použijte následující tabulku:
Nastavení Navrhovaná hodnota Popis Název prostředí myacaenv Jedinečný název, který identifikuje vaši službu Azure Container Apps Environment. Plánování Využití Cenový plán určuje prostředky a náklady spojené s vaší instancí. Zónově redundantní Zakázáno Určuje, jestli chcete vytvořit službu Container Apps Environment v zóně dostupnosti Azure. Důležité
Profil úlohy Consumption má model fakturace s průběžnými platbami bez počátečních nákladů. Na základě zřízených prostředků se vám účtuje vyhrazený profil úloh. Další informace najdete v tématech Profily úloh ve struktuře plánů Consumption a Dedicated v cenách Azure Container Apps (Preview) a Azure Spring Apps.
Výběrem možnosti Zkontrolovat a Vytvořit zkontrolujte vybrané možnosti. Výběrem možnosti Vytvořit zřídí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 možnost Připnout na řídicí panel, který vytvoří dlaždici pro tuto službu na řídicím panelu webu Azure Portal jako zástupce na stránce Přehled služby. Výběrem možnosti Přejít k prostředku otevřete stránku Přehled služby.
Pomocí následujícího příkazu povolte server Eureka. Zástupné symboly nezapomeňte nahradit vlastními hodnotami, které jste vytvořili v předchozím kroku.
az spring eureka-server enable \ --resource-group <resource-group-name> \ --name <Azure-Spring-Apps-instance-name>
3.3. Registrace aplikace Books
Tato část obsahuje postup registrace aplikace pro přidání aplikačních rolí do MICROSOFT Entra ID, který se používá k ochraně rozhraní RESTful API v Azure Spring Apps.
Přejděte na domovskou stránku webu Azure Portal.
Pokud máte přístup k více tenantům, pomocí filtru Adresář a předplatné ( ) vyberte tenanta, ve kterém chcete aplikaci zaregistrovat.
Vyhledejte a vyberte Microsoft Entra ID.
V části Spravovat vyberte Registrace aplikací> Nová registrace.
Do pole Název zadejte název aplikace, například Knihy. 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 Pouze účty v tomto organizačním adresáři.
Výběrem možnosti Registrovat aplikaci vytvořte.
Na stránce Přehled aplikace vyhledejte hodnotu ID aplikace (klienta) a potom ji poznamenejte 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://books
a pak vyberte Uložit.V části Spravovat vyberte Role>aplikace Vytvořit roli aplikace a zadejte následující informace:
- Jako zobrazovaný název zadejte Write.
- V seznamu Povolené typy členů vyberte Aplikace.
- Jako hodnotu zadejte Books.Write.
- Jako popis zadejte Přidání knih.
Opakováním předchozího kroku přidejte další roli aplikace:
Books.Read
.
3.4. Registrace aplikace SPA
Aplikace Books RESTful API funguje jako server prostředků, který je chráněný id Microsoft Entra. Před získáním přístupového tokenu budete muset zaregistrovat jinou aplikaci v MICROSOFT Entra ID a udělit oprávnění klientské aplikaci, která má název SPA
.
Vraťte se ke svému tenantovi v Microsoft Entra ID.
V části Spravovat vyberte Registrace aplikací> Nová registrace.
Do pole Název zadejte název aplikace, například
SPA
.U podporovaných typů účtů použijte pouze výchozí účty v tomto organizačním adresáři.
Výběrem možnosti Registrovat aplikaci vytvořte.
Na stránce Přehled aplikace vyhledejte hodnotu ID aplikace (klienta) a potom ji poznamenejte pro pozdější použití. Potřebujete ho k získání přístupového tokenu.
Vyberte oprávnění>rozhraní API Pro přidání rozhraní API oprávnění>, která moje organizace používá.
Books
Vyberte aplikaci, kterou jste zaregistrovali dříve, vyberte oprávnění Books.Read and Books.Write a pak 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řejděte na Certifikáty a tajné kódy a pak vyberte Nový tajný klíč klienta.
Na stránce Přidat tajný klíč klienta zadejte popis tajného kódu, vyberte datum vypršení platnosti a pak vyberte Přidat.
Vyhledejte hodnotu tajného kódu a potom ho poznamenejte pro pozdější použití. Potřebujete ho k získání přístupového tokenu.
3.5. Aktualizace konfigurace aplikace Books Service
Vyhledejte soubor books-service/src/main/resources/application.yml aplikace books-service
. Aktualizujte konfiguraci v spring.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:
credential:
client-id: <your-application-ID-of-Books>
app-id-uri: <your-application-ID-URI-of-Books>
Pomocí následujícího příkazu znovu sestavte ukázkový projekt:
./mvnw clean package
4. Nasazení aplikací do Azure Spring Apps
Následující kroky ukazují, jak nasadit aplikace do Azure.
4.1. Nasazení aplikací mikroslužeb do Azure Spring Apps
Pomocí následujícího postupu nasaďte aplikace do Azure Spring Apps pomocí modulu plug-in Maven pro Azure Spring Apps:
Přejděte do adresáře ukázkového projektu a pak pomocí následujícího příkazu nakonfigurujte aplikaci v Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.18.0:config
Následující seznam popisuje interakce příkazů:
- Vyberte podřízené moduly, které chcete nakonfigurovat (vstupní čísla oddělená čárkou, např: [1-2,4,6], ENTER vyberte VŠE): Stisknutím klávesy Enter vyberte vše.
- Přihlášení OAuth2: Autorizuje přihlášení do 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.
- Vyberte Azure Spring Apps pro nasazení: Vyberte číslo seznamu instance Azure Spring Apps, kterou jste vytvořili. Pokud použijete výchozí číslo, stiskněte klávesu Enter přímo.
- Vyberte aplikace pro zveřejnění veřejného přístupu: (vstupní čísla oddělená čárkou, např: [1-2,4,6], ENTER a vyberte NONE): Zadejte 1 pro
gateway-service
. - Potvrďte uložení všech výše uvedených konfigurací (Y/n):Zadejte y. Pokud zadáte n, konfigurace se neuloží do souborů POM.
K nasazení aplikace použijte následující příkaz:
./mvnw azure-spring-apps:deploy
Ná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 provedení příkazu se zobrazí následující zprávy protokolu, které značí, že nasazení proběhlo úspěšně.
[INFO] Getting public url of app(gateway-service)... [INFO] Application url: https://gateway-service.xxxxxxxxxxxxxx-xxxxxxxx.eastasia.azurecontainerapps.io ... [INFO] Artifact(books-service-0.0.1-SNAPSHOT.jar) is uploaded and deployment(default) is successfully updated. ...
Výstupní adresa URL aplikace je základní koncový bod pro přístup k aplikaci rozhraní API ToDo RESTful.
4.2. Místní spuštění aplikace SPA
Aktualizujte konfiguraci v SPA
souboru skriptu aplikace spa/server.js tak, aby odpovídala následujícímu příkladu. Zástupné symboly nezapomeňte nahradit vlastními hodnotami, které jste vytvořili v předchozím kroku.
const SpringCloudGatewayURL = "<URL exposed by app gateway-service>"
const msalConfig = {
auth: {
clientId: "< SPA App Registration ClientId>",
authority: "https://login.microsoftonline.com/< TenantId >/",
clientSecret: "<SPA App Registration ClientSecret>",
},
};
const tokenRequest = {
scopes: ["<Application ID URI of Books>/.default"]
};
V adresáři projektu SPA spusťte místně následující příkaz:
node server.js
Poznámka:
Aplikace SPA je statická webová aplikace, kterou je možné nasadit na libovolný webový server.
5. Ověření aplikace
Přístup k aplikaci Books SPA, která komunikuje s rozhraními BOOKS RESTful API prostřednictvím gateway-service
aplikace.
Přejděte v
http://localhost:3000
prohlížeči a získejte přístup k aplikaci.Zadejte hodnoty pro Autor a Název a pak vyberte Přidat knihu. Zobrazí se odpověď podobná následujícímu příkladu:
Book added successfully: {"id":1,"author":"Jeff Black","title":"Spring In Action"}
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.
Vyberte skupiny prostředků a 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í.
Vyberte Odstranit.
7. Další kroky
Další informace najdete v následujících článcích:
- Ukázky Azure Spring Apps
- Spring v Azure
- Spring Cloud Azure