Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
De Basic, Standarden Enterprise--plannen zijn op 17 maart 2025 buiten gebruik gesteld. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het Standaardverbruik en het toegewezen-plan zijn op 30 september 2024 met een uitfasering begonnen, met een volledige beëindiging eind maart 2025. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op:✅ Standaardverbruik en speciaal gereserveerd (Preview)
In deze quickstart ziet u hoe u de communicatie tussen een clienttoepassing en een microservicetoepassing die wordt gehost in Azure Spring Apps beveiligt en wordt afgeschermd met een Spring Cloud Gateway-app. De clienttoepassing wordt geverifieerd als een beveiligingsprincipaal om contact te starten met de microservice die is geïmplementeerd in Azure Spring Apps, met behulp van de app die is gebouwd met Spring Cloud Gateway. Deze methode maakt gebruik van de tokenrelais van Spring Cloud Gateway en de resourceserverfuncties van Spring Security voor de processen van verificatie en autorisatie, die worden gerealiseerd door de uitvoering van de OAuth 2.0-clientreferentiestroom.
In de volgende lijst ziet u de samenstelling van het voorbeeldproject:
- Books SPA: Deze Single Page Application (SPA), lokaal gehost, communiceert met de Books-microservice voor het toevoegen van boeken of het zoeken naar boeken.
- Boeken microservice:
- Een Spring Cloud Gateway-app die wordt gehost in Azure Spring Apps. Deze app werkt als gateway voor de RESTful API's van Books.
- Een Spring Boot RESTful API-app die wordt gehost in Azure Spring Apps. In deze app worden de boekgegevens opgeslagen in een H2-database. De Books-service biedt twee REST-eindpunten voor het schrijven en lezen van boeken.
1. Vereisten
- Een Azure-abonnement. Als u geen abonnement hebt, maakt u een gratis account voordat u begint.
- Git.
- Java Development Kit (JDK), versie 17.
- Een Microsoft Entra-tenant. Zie quickstart: Een nieuwe tenant maken in Microsoft Entra-id voor meer informatie over het maken van een Microsoft Entra-tenant.
- Azure CLI versie 2.45.0 of hoger.
- Installeer Node.js.
2. Het Spring-project voorbereiden
Gebruik de volgende stappen om de app lokaal te klonen en uit te voeren:
Gebruik de volgende opdracht om het voorbeeldproject te klonen vanuit GitHub:
git clone https://github.com/Azure-Samples/azure-spring-apps-sso-client-credential.git -b consumption-plan
Gebruik de volgende opdracht om de back-endservices van Books te bouwen:
cd azure-spring-apps-sso-client-credential ./mvnw clean package
Betreed de SPA-projectmap en gebruik het volgende commando om de afhankelijkheden te installeren:
npm install @azure/msal-node
3. De cloudomgeving voorbereiden
De belangrijkste resources die nodig zijn om dit voorbeeld uit te voeren, zijn een Azure Spring Apps-exemplaar en een Azure Database for PostgreSQL-exemplaar. Deze sectie bevat de stappen voor het maken van deze resources.
3.1. Meld u aan bij het Azure Portal
Open uw webbrowser en ga naar Azure Portal. Voer uw referenties in om u aan te melden bij Azure Portal. De standaardweergave is uw service-dashboard.
3.2. Een Azure Spring Apps-exemplaar maken
Gebruik de volgende stappen om een service-exemplaar te maken:
Selecteer Een resource maken in de hoek van Azure Portal.
Kies Compute>Azure Spring Apps.
Vul het formulier Basisbeginselen in met de volgende gegevens:
Instelling Voorgestelde waarde Beschrijving Abonnement De naam van uw abonnement Het Azure-abonnement dat u wilt gebruiken voor uw server. Als u meerdere abonnementen hebt, kiest u het abonnement waarin u wilt worden gefactureerd voor de resource. Resourcegroep myresourcegroup Een nieuwe resourcegroepnaam of een bestaande naam uit uw abonnement. Naam myasa Een unieke naam die uw Azure Spring Apps-service identificeert. De naam moet tussen de 4 en 32 tekens lang zijn en mag alleen kleine letters, cijfers en afbreekstreepjes bevatten. Het eerste teken van de servicenaam moet een letter zijn en het laatste teken moet een letter of een cijfer zijn. Plannen Standaardverbruik en dedicated (voorvertoning) Het prijspakket regelt de middelen en kosten die aan uw instantie zijn gekoppeld. Regio De regio het dichtst bij uw gebruikers De locatie die zich het dichtst bij uw gebruikers bevindt. Container Apps-omgeving myacaenv Selecteer welk Container Apps-omgevingsexemplaar hetzelfde virtuele netwerk moet delen met andere diensten en resources. Gebruik de volgende tabel als richtlijn voor het maken van de Container Apps-omgeving:
Instelling Voorgestelde waarde Beschrijving Omgevingsnaam myacaenv Een unieke naam die uw Azure Container Apps Environment-service identificeert. Plannen Verbruik Het prijsplan bepaalt de resources en kosten die aan uw exemplaar zijn gekoppeld. Zoneredundant Uitgeschakeld Of u uw Container Apps Environment-service in een Azure-beschikbaarheidszone wilt maken. Belangrijk
Het verbruiksprofiel heeft een factureringsmodel voor betalen naar gebruik, zonder beginkosten. U wordt gefactureerd voor het dedicated workloadprofiel op basis van de geprovisioneerde resources. Zie Workload-profielen in de Consumption + Dedicated-plan structuuromgevingen in Azure Container Apps (preview) en Azure Spring Apps prijzen voor meer informatie.
Selecteer Controleren en Maken om uw selecties te controleren. Selecteer Maken om het Azure Spring Apps-exemplaar in te richten.
Selecteer het pictogram Meldingen (een klok) op de werkbalk om het implementatieproces te bewaken. Nadat de implementatie is voltooid, kunt u Vastmaken aan dashboard selecteren. Hiermee maakt u een tegel voor deze service op uw Azure Portal-dashboard als snelkoppeling naar de overzichtspagina van de service. Selecteer Ga naar de resource om de overzichtspagina van de service te openen.
Gebruik de volgende opdracht om de Eureka-server in te schakelen. Vervang de tijdelijke aanduidingen door uw eigen waarden die u in de vorige stap hebt gemaakt.
az spring eureka-server enable \ --resource-group <resource-group-name> \ --name <Azure-Spring-Apps-instance-name>
3.3. De toepassing Books registreren
Deze sectie bevat de stappen voor het registreren van een toepassing voor het toevoegen van app-rollen in Microsoft Entra ID, die wordt gebruikt voor het beveiligen van de RESTful-API's in Azure Spring Apps.
Ga naar de startpagina van Azure Portal.
Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement (
) om de tenant te selecteren waarin u een toepassing wilt registreren.
Zoek Microsoft Entra ID en selecteer deze.
Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld Boeken. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Bij Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om het YAML-configuratiebestand voor dit project te configureren.
Onder Beheer selecteer Een API beschikbaar maken, zoek de Toepassings-ID URI aan het begin van de pagina en selecteer vervolgens Toevoegen.
Op de pagina Bewerken toepassings-ID URI, accepteer de voorgestelde URI voor de toepassings-ID (
api://{client ID}
) of gebruik een betekenisvolle naam in plaats van de client-ID, zoalsapi://books
, en selecteer vervolgens Opslaan.Selecteer onder Beheren de app-rollenApp-rol maken en voer vervolgens de volgende gegevens in:>
- Voer bij Weergavenaamschrijven in.
- Voor toegestane lidtypen, selecteer Toepassingen.
- Voer Books.Write in als waarde.
- Voor Beschrijving, voer Boeken toevoegen in.
Herhaal de vorige stap om een andere app-rol toe te voegen:
Books.Read
.
3.4. De SPA-applicatie registreren
De RESTful API-app books fungeert als een resourceserver, die wordt beveiligd door Microsoft Entra ID. Voordat u een toegangstoken verkrijgt, moet u een andere toepassing registreren in De Microsoft Entra-id en machtigingen verlenen aan de clienttoepassing, die de naam SPA
heeft.
Ga terug naar uw tenant in Microsoft Entra ID.
Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
Voer bijvoorbeeld een naam in voor uw toepassing in het
SPA
.Gebruik voor ondersteunde accounttypen alleen de standaardaccounts in deze organisatiemap.
Selecteer Registreren om de toepassing te maken.
Zoek de waarde Toepassings-id (client) op de app-pagina Overzicht en noteer deze voor gebruik later. U hebt het nodig om een toegangstoken te bemachtigen.
Selecteer API-machtigingen>Voeg een machtigings-API>toe die door mijn organisatie wordt gebruikt. Selecteer de
Books
toepassing die u eerder hebt geregistreerd, selecteer de machtigingen Books.Read en Books.Write en selecteer vervolgens Machtigingen toevoegen.Selecteer Beheerderstoestemming verlenen voor <de naam> van uw tenant om beheerderstoestemming te verlenen voor de machtigingen die u hebt toegevoegd.
Navigeer naar Certificaten en geheimen en selecteer vervolgens Nieuw clientgeheim.
Op de pagina Een clientgeheim toevoegen voer een beschrijving in voor het geheim voor de client, selecteer een vervaldatum en selecteer vervolgens Toevoegen.
Zoek de waarde van het geheim en noteer het voor later gebruik. U hebt het nodig om een toegangstoken te verkrijgen.
3.5. De configuratie van de Boekenservice-app bijwerken
Zoek het bestand boeken-service/src/main/resources/application.yml voor de books-service
app. Werk de configuratie in de spring.cloud.azure.active-directory
sectie bij zodat deze overeenkomt met het volgende voorbeeld. Vervang de tijdelijke aanduidingen door de waarden die u eerder hebt gemaakt.
spring:
cloud:
azure:
active-directory:
credential:
client-id: <your-application-ID-of-Books>
app-id-uri: <your-application-ID-URI-of-Books>
Gebruik de volgende opdracht om het voorbeeldproject opnieuw te bouwen:
./mvnw clean package
4. De apps implementeren in Azure Spring Apps
In de volgende stappen ziet u hoe u de apps implementeert in Azure.
4.1. De microservice-apps implementeren in Azure Spring Apps
Gebruik de volgende stappen om de apps te implementeren in Azure Spring Apps met behulp van de Maven-invoegtoepassing voor Azure Spring Apps:
Navigeer naar de voorbeeldprojectmap en gebruik vervolgens de volgende opdracht om de app te configureren in Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.18.0:config
In de volgende lijst worden de opdrachteninteracties beschreven:
- Selecteer onderliggende modules die u wilt configureren (invoernummers gescheiden door komma, bijvoorbeeld: [1-2,4,6], ENTER om ALLES te selecteren): druk op Enter om alles te selecteren.
- OAuth2-aanmelding: autoriseren van de aanmelding bij Azure op basis van het OAuth2-protocol.
- Abonnement selecteren: selecteer het abonnementslijstnummer van het Azure Spring Apps-exemplaar dat u hebt gemaakt. Dit is standaard het eerste abonnement in de lijst. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
- Selecteer Azure Spring Apps voor implementatie: selecteer het lijstnummer van het Azure Spring Apps-exemplaar dat u hebt gemaakt. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
-
Selecteer apps om openbare toegang beschikbaar te maken: (invoernummers gescheiden door komma, bijvoorbeeld: [1-2,4,6], ENTER om GEEN te selecteren): Voer 1 voor
gateway-service
in. - Bevestig dat u alle bovenstaande configuraties (Y/n) wilt opslaan: voer y in. Als u n invoert, wordt de configuratie niet opgeslagen in de POM-bestanden.
Gebruik de volgende opdracht om de app te implementeren:
./mvnw azure-spring-apps:deploy
In de volgende lijst wordt de interactie met de opdracht beschreven:
- OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren op basis van het OAuth2-protocol.
Nadat de opdracht is uitgevoerd, ziet u de volgende logboekberichten, die aangeven dat de implementatie is geslaagd.
[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. ...
De URL van de uitvoertoepassing is het basiseindpunt voor toegang tot de ToDo RESTful API-toepassing.
4.2. De SPA-app lokaal uitvoeren
Werk de configuratie in het SPA
toepassingsscriptbestand spa/server.js bij zodat deze overeenkomt met het volgende voorbeeld. Vervang de tijdelijke aanduidingen door uw eigen waarden die u in de vorige stap hebt gemaakt.
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"]
};
Gebruik in de SPA-projectmap de volgende opdracht om lokaal uit te voeren:
node server.js
Notitie
De SPA-app is een statische webtoepassing die kan worden geplaatst op elke webserver.
5. De app valideren
U hebt toegang tot de Books SPA-app die via de gateway-service
app communiceert met de RESTful API's van Books.
Ga naar
http://localhost:3000
in uw browser om toegang te krijgen tot de toepassing.Voer waarden in voor Auteur en Titel en selecteer Boek toevoegen. U ziet een antwoord dat lijkt op het volgende voorbeeld:
Book added successfully: {"id":1,"author":"Jeff Black","title":"Spring In Action"}
6. Bronnen opschonen
U kunt de Azure-resourcegroep verwijderen, met alle resources uit de resourcegroep. Gebruik de volgende stappen om de hele resourcegroep te verwijderen, inclusief de zojuist gemaakte service:
Zoek je resourcegroep in de Azure-portal.
Selecteer Resourcegroepen en selecteer vervolgens de naam van uw resourcegroep, bijvoorbeeld myresourcegroup.
Op de pagina van uw resourcegroep selecteert u Verwijderen. Voer de naam van uw resourcegroep in het tekstvak in om het verwijderen te bevestigen.
Selecteer Verwijderen.
7. Volgende stappen
Raadpleeg voor meer informatie de volgende artikelen: