Delen via


Quickstart: RESTful API-toepassing implementeren in Azure Spring Apps

Notitie

De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.

Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.

In dit artikel wordt beschreven hoe u een RESTful API-toepassing implementeert die wordt beveiligd door Microsoft Entra ID in Azure Spring Apps. Het voorbeeldproject is een vereenvoudigde versie op basis van de Simple Todo-webtoepassing , die alleen de back-endservice biedt en Microsoft Entra-id gebruikt om de RESTful-API's te beveiligen.

Deze RESTful-API's worden beveiligd door op rollen gebaseerd toegangsbeheer (RBAC) toe te passen. Anonieme gebruikers hebben geen toegang tot gegevens en mogen de toegang voor verschillende gebruikers niet beheren. Anonieme gebruikers hebben alleen de volgende drie machtigingen:

  • Lezen: Met deze machtiging kan een gebruiker de ToDo-gegevens lezen.
  • Schrijven: Met deze machtiging kan een gebruiker de ToDo-gegevens toevoegen of bijwerken.
  • Verwijderen: Met deze machtiging kan een gebruiker de ToDo-gegevens verwijderen.

Nadat de implementatie is geslaagd, kunt u de API's bekijken en testen via de Swagger-gebruikersinterface.

Schermopname van de Swagger-gebruikersinterface waarin het API-document wordt weergegeven.

In het volgende diagram ziet u de architectuur van het systeem:

Diagram met de architectuur van een Spring-webtoepassing.

In dit artikel worden de volgende opties beschreven voor het maken van resources en het implementeren ervan in Azure Spring Apps:

  • De optie Azure Portal + Maven-invoegtoepassing biedt een conventionelere manier om resources te maken en toepassingen stap voor stap te implementeren. Deze optie is geschikt voor Spring-ontwikkelaars die azure-cloudservices voor het eerst gebruiken.
  • De Azure Developer CLI-optie is een efficiëntere manier om automatisch resources te maken en toepassingen te implementeren via eenvoudige opdrachten. De Azure Developer CLI maakt gebruik van een sjabloon om de Benodigde Azure-resources in te richten en de toepassingscode te implementeren. Deze optie is geschikt voor Spring-ontwikkelaars die bekend zijn met Azure-cloudservices.

In dit artikel worden de volgende opties beschreven voor het maken van resources en het implementeren ervan in Azure Spring Apps:

  • De optie Azure Portal + Maven-invoegtoepassing biedt een conventionelere manier om resources te maken en toepassingen stap voor stap te implementeren. Deze optie is geschikt voor Spring-ontwikkelaars die azure-cloudservices voor het eerst gebruiken.
  • De Azure CLI-optie maakt gebruik van een krachtig opdrachtregelprogramma voor het beheren van Azure-resources. Deze optie is geschikt voor Spring-ontwikkelaars die bekend zijn met Azure-cloudservices.

1. Vereisten

2. Het Spring-project voorbereiden

Als u de RESTful API-app wilt implementeren, moet u eerst het Spring-project voorbereiden om lokaal te worden uitgevoerd.

Gebruik de volgende stappen om de app lokaal te klonen en uit te voeren:

  1. Gebruik de volgende opdracht om het voorbeeldproject te klonen vanuit GitHub:

    git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
    
  2. Als u de app lokaal wilt uitvoeren, voert u eerst de stappen in de RESTful API's beschikbaar maken uit en werkt u eerst de configuratiesecties van de toepassing bij en gebruikt u vervolgens de volgende opdracht om de voorbeeldtoepassing uit te voeren met Maven:

    cd ASA-Samples-Restful-Application
    ./mvnw spring-boot:run
    

3. De cloudomgeving voorbereiden

De belangrijkste resources die nodig zijn om deze voorbeeld-app uit te voeren, zijn een Azure Spring Apps-exemplaar en een Azure Database for PostgreSQL-exemplaar. In de volgende secties wordt beschreven hoe u deze resources maakt.

3.1. Meld u aan bij het Azure Portal

Ga naar Azure Portal en voer uw referenties in om u aan te melden bij de portal. De standaardweergave is uw service-dashboard.

3.2. Een Azure Spring Apps-exemplaar maken

Gebruik de volgende stappen om een Azure Spring Apps-service-exemplaar te maken:

  1. Selecteer Een resource maken in de hoek van Azure Portal.

  2. Selecteer Compute>Azure Spring Apps.

  3. 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 Enterprise Het prijsplan waarmee de resource en kosten worden bepaald die zijn gekoppeld aan uw exemplaar.
    Regio De regio die zich het dichtst bij uw gebruikers bevindt. De locatie die zich het dichtst bij uw gebruikers bevindt.
    Zoneredundant Niet geselecteerd De optie voor het maken van uw Azure Spring Apps-service in een Azure-beschikbaarheidszone. Deze functie wordt momenteel niet ondersteund in alle regio's.
    Software-IP-plan Betalen per gebruik Het prijsplan waarmee u per gebruik kunt betalen met Azure Spring Apps.
    Voorwaarde Selected Het selectievakje overeenkomst dat is gekoppeld aan de Marketplace-aanbieding. U moet dit selectievakje inschakelen.
    Voorbeeldproject implementeren Niet geselecteerd De optie voor het gebruik van de ingebouwde voorbeeldtoepassing.
  4. Selecteer Controleren en Maken om uw selecties te controleren. Selecteer Vervolgens Maken om het Azure Spring Apps-exemplaar in te richten.

  5. 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.

    Schermopname van Azure Portal met het deelvenster Meldingen voor het maken van Azure Spring Apps.

  6. Selecteer Ga naar de resource om naar de overzichtspagina van Azure Spring Apps te gaan.

3.3. Het PostgreSQL-exemplaar voorbereiden

Gebruik de volgende stappen om een Azure Database for PostgreSQL-server te maken:

  1. Ga naar Azure Portal en selecteer Een resource maken.

  2. Selecteer Databases>Azure Database for PostgreSQL.

  3. Selecteer de implementatieoptie Flexible Server.

    Schermopname van Azure Portal met de optiepagina Azure Database for PostgreSQL-implementatie selecteren.

  4. Vul het tabblad Basisbeginselen in met de volgende informatie:

    • Servernaam: my-demo-pgsql
    • Regio: VS - oost
    • PostgreSQL-versie: 14
    • Workloadtype: Ontwikkeling
    • Hoge beschikbaarheid inschakelen: niet geselecteerd
    • Verificatiemethode: alleen PostgreSQL-verificatie
    • Gebruikersnaam van beheerder: myadmin
    • Wachtwoord en wachtwoord bevestigen: voer een wachtwoord in.
  5. Gebruik de volgende informatie om het tabblad Netwerken te configureren:

    • Connectiviteitsmethode: Openbare toegang (toegestane IP-adressen)
    • Openbare toegang vanuit elke Azure-service binnen Azure tot deze server toestaan: geselecteerd
  6. Selecteer Beoordelen en maken om uw selecties te controleren en selecteer Maken om de server in te richten. Deze bewerking kan enkele minuten duren.

  7. Ga in het Azure Portal naar uw PostgreSQL-server. Zoek op de pagina Overzicht naar de servernaamwaarde en noteer deze voor later gebruik. U hebt deze nodig om de omgevingsvariabelen voor de app in Azure Spring Apps te configureren.

  8. Selecteer Databases in het navigatiemenu om een database te maken, bijvoorbeeld taken.

    Schermopname van Azure Portal met de pagina Databases met het deelvenster Database maken geopend.

3.4. App-exemplaar verbinden met PostgreSQL-exemplaar

Gebruik de volgende stappen om verbinding te maken met uw service-exemplaren:

  1. Ga naar uw Azure Spring Apps-exemplaar in Azure Portal.

  2. Open Apps in het navigatiemenu en selecteer App maken.

  3. Vul op de pagina App maken de naam simple-todo-api van de app in en selecteer vervolgens Java-artefacten als het implementatietype.

  4. Selecteer Maken om het maken van de app te voltooien en selecteer vervolgens de app om de details weer te geven.

  5. Ga naar de app die u hebt gemaakt in Azure Portal. Selecteer op de pagina Overzicht het eindpunt toewijzen om het openbare eindpunt voor de app beschikbaar te maken. Sla de URL op voor toegang tot de app na de implementatie.

  6. Selecteer Serviceconnector in het navigatiedeelvenster en selecteer vervolgens Maken om een nieuwe serviceverbinding te maken.

    Schermopname van Azure Portal met de pagina Serviceconnector voor enterprise-plannen met de knop Maken gemarkeerd.

  7. Vul het tabblad Basisbeginselen in met de volgende informatie:

    • Servicetype: flexibele DB for PostgreSQL-server
    • Verbindingsnaam: er wordt een automatisch gegenereerde naam ingevuld, die ook kan worden gewijzigd.
    • Abonnement: selecteer uw abonnement.
    • Flexibele PostgreSQL-server: my-demo-pgsql
    • PostgreSQL-database: selecteer de database die u hebt gemaakt.
    • Clienttype: SpringBoot

    Schermopname van Azure Portal met het tabblad Basisbeginselen van het deelvenster Verbinding maken om verbinding te maken met Service Bus.

  8. Configureer het tabblad Volgende: Verificatie met de volgende informatie:

    • Selecteer het verificatietype dat u wilt gebruiken tussen uw rekenservice en doelservice.: Selecteer verbindingsreeks.
    • Doorgaan met...: Databasereferenties selecteren
    • Gebruikersnaam: myadmin
    • Wachtwoord: voer uw wachtwoord in.

    Schermopname van Azure Portal met het tabblad Verificatie van het deelvenster Verbinding maken met de optie Verbindingsreeks gemarkeerd.

  9. Selecteer Volgende: Netwerken. Gebruik de standaardoptie Firewallregels configureren om toegang tot de doelservice in te schakelen.

  10. Selecteer Volgende: Controleren en Maken om uw selecties te controleren en selecteer vervolgens Maken om de verbinding te maken.

3.5. RESTful-API's beschikbaar maken

Gebruik de volgende stappen om uw RESTful-API's beschikbaar te maken in Microsoft Entra-id:

  1. Meld u aan bij het Azure-portaal.

  2. Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.

  3. Zoek Microsoft Entra ID en selecteer deze.

  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.

  5. Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld Todo. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.

  6. Voor ondersteunde accounttypen selecteert u Accounts in een organisatiemap (Elke Microsoft Entra-directory - Multitenant) en persoonlijke Microsoft-accounts.

  7. Selecteer Registreren om de toepassing te maken.

  8. 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.

  9. Selecteer onder Beheren een API beschikbaar maken, zoek de URI van de toepassings-id aan het begin van de pagina en selecteer vervolgens Toevoegen.

  10. Accepteer op de pagina URI van de toepassings-id bewerken de voorgestelde URI voor de toepassings-id (api://{client ID}) of gebruik een betekenisvolle naam in plaats van de client-id, zoals api://simple-todoen selecteer Opslaan.

  11. Selecteer onder Beheren een API>beschikbaar maken en voer vervolgens de volgende gegevens in:

    • Voer ToDo.Read in als bereiknaam.
    • Voor wie toestemming kan geven, selecteert u alleen Beheerders.
    • Voer voor de weergavenaam van beheerderstoestemming de ToDo-gegevens in.
    • Voer voor de beschrijving van beheerderstoestemming geverifieerde gebruikers toe om de ToDo-gegevens te lezen.
    • Houd deze ingeschakeld voor State.
    • Selecteer Bereik toevoegen.
  12. Herhaal de vorige stappen om de andere twee bereiken toe te voegen: ToDo.Write en ToDo.Delete.

    Schermopname van Azure Portal met de pagina Een API beschikbaar maken van een RESTful API-toepassing.

3.6. De toepassingsconfiguratie bijwerken

Gebruik de volgende stappen om het YAML-bestand bij te werken om uw geregistreerde Microsoft Entra-toepassingsgegevens te gebruiken om een relatie tot stand te brengen met de RESTful API-toepassing:

  1. Zoek het bestand src/main/resources/application.yml voor de simple-todo-api 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:
            profile:
              tenant-id: <tenant>
            credential:
              client-id: <your-application-ID-of-ToDo>
            app-id-uri: <your-application-ID-URI-of-ToDo>
    

    Notitie

    In v1.0-tokens is voor de configuratie de client-id van de API vereist, terwijl u in v2.0-tokens de client-id of de URI van de toepassings-id in de aanvraag kunt gebruiken. U kunt beide configureren om de validatie van de doelgroep correct te voltooien.

    De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

  2. Gebruik de volgende opdracht om het voorbeeldproject opnieuw te bouwen:

    ./mvnw clean package
    

4. De app implementeren in Azure Spring Apps

U kunt de app nu implementeren in Azure Spring Apps.

Gebruik de volgende stappen om te implementeren met behulp van de Maven-invoegtoepassing voor Azure Spring Apps:

  1. Navigeer naar de volledige map en voer vervolgens de volgende opdracht uit om de app te configureren in Azure Spring Apps:

    ./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
    

    In de volgende lijst worden de opdrachteninteracties beschreven:

    • OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren 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 .
    • Gebruik bestaande Azure Spring Apps in Azure: Druk op y om het bestaande Azure Spring Apps-exemplaar te gebruiken.
    • Selecteer Azure Spring Apps voor implementatie: selecteer het aantal Azure Spring Apps-exemplaren dat u hebt gemaakt. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
    • Gebruik de bestaande app in Azure Spring Apps <uw exemplaarnaam>: Druk op y om de gemaakte app te gebruiken.
    • Bevestig dat u alle bovenstaande configuraties wilt opslaan: Druk op y. Als u op n drukt, wordt de configuratie niet opgeslagen in de POM-bestanden.
  2. 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 in de volgende logboekberichten dat de implementatie is geslaagd:

[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. De app valideren

U hebt nu toegang tot de RESTful-API om te zien of deze werkt.

5.1. Een toegangstoken aanvragen

De RESTful-API's fungeren 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 ToDoWebheeft.

De clienttoepassing registreren

Gebruik de volgende stappen om een toepassing te registreren in Microsoft Entra ID, die wordt gebruikt om de machtigingen voor de ToDo app toe te voegen:

  1. Meld u aan bij het Azure-portaal.

  2. Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.

  3. Zoek Microsoft Entra ID en selecteer deze.

  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.

  5. Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld ToDoWeb. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.

  6. Gebruik voor ondersteunde accounttypen alleen de standaardwaardeAccounts in deze organisatiemap.

  7. Selecteer Registreren om de toepassing te maken.

  8. 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 verkrijgen.

  9. Selecteer API-machtigingen>Een machtiging toevoegen>Mijn API's. Selecteer de ToDo toepassing die u eerder hebt geregistreerd en selecteer vervolgens de machtigingen ToDo.Read, ToDo.Write en ToDo.Delete . Selecteer Machtigingen toevoegen.

  10. Selecteer Beheerderstoestemming verlenen voor <de naam> van uw tenant om beheerderstoestemming te verlenen voor de machtigingen die u hebt toegevoegd.

    Schermopname van Azure Portal met de API-machtigingen van een webtoepassing.

Gebruiker toevoegen voor toegang tot de RESTful-API's

Gebruik de volgende stappen om een lidgebruiker te maken in uw Microsoft Entra-tenant. Vervolgens kan de gebruiker de gegevens van de ToDo toepassing beheren via RESTful-API's.

  1. Selecteer onder Beheren de optie Nieuwe gebruiker Nieuwe>gebruiker> Maken.

  2. Voer op de pagina Nieuwe gebruiker maken de volgende gegevens in:

    • User principal name: Voer een naam in voor de gebruiker.
    • Weergavenaam: Voer een weergavenaam in voor de gebruiker.
    • Wachtwoord: Kopieer het automatisch gegenereerde wachtwoord in het vak Wachtwoord .

    Notitie

    Nieuwe gebruikers moeten de eerste aanmeldingsverificatie voltooien en hun wachtwoorden bijwerken, anders krijgt u een AADSTS50055: The password is expired foutmelding wanneer u het toegangstoken krijgt.

    Wanneer een nieuwe gebruiker zich aanmeldt, ontvangt deze een actie vereist prompt. Ze kunnen Vragen later kiezen om de validatie over te slaan.

  3. Selecteer Beoordelen en maken om uw selecties te controleren. Selecteer Maken om de gebruiker te maken.

De OAuth2-configuratie voor Swagger UI-autorisatie bijwerken

Gebruik de volgende stappen om de OAuth2-configuratie voor Swagger UI-autorisatie bij te werken. Vervolgens kunt u gebruikers machtigen om toegangstokens te verkrijgen via de ToDoWeb app.

  1. Open uw Microsoft Entra ID-tenant in Azure Portal en ga naar de geregistreerde ToDoWeb app.

  2. Selecteer verificatie onder Beheren, selecteer Een platform toevoegen en selecteer vervolgens toepassing met één pagina.

  3. Gebruik de indeling <your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html als de OAuth2-omleidings-URL in het veld Omleidings-URI's en selecteer vervolgens Configureren.

    Schermopname van Azure Portal met de pagina Verificatie voor Microsoft Entra-id.

2. Het Spring-project voorbereiden

Als u de RESTful API-app wilt implementeren, moet u eerst het Spring-project voorbereiden om lokaal te worden uitgevoerd.

Gebruik de volgende stappen om de app lokaal te klonen en uit te voeren:

  1. Gebruik de volgende opdracht om het voorbeeldproject te klonen vanuit GitHub:

    git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
    
  2. Als u de app lokaal wilt uitvoeren, voert u eerst de stappen in de RESTful API's beschikbaar maken uit en werkt u eerst de configuratiesecties van de toepassing bij en gebruikt u vervolgens de volgende opdracht om de voorbeeldtoepassing uit te voeren met Maven:

    cd ASA-Samples-Restful-Application
    ./mvnw spring-boot:run
    

3. De cloudomgeving voorbereiden

De belangrijkste resources die nodig zijn om deze voorbeeld-app uit te voeren, zijn een Azure Spring Apps-exemplaar en een Azure Database for PostgreSQL-exemplaar. In de volgende secties wordt beschreven hoe u deze resources maakt.

3.1. Meld u aan bij het Azure Portal

Ga naar Azure Portal en voer uw referenties in om u aan te melden bij de 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:

  1. Selecteer Een resource maken in de hoek van de portal.

  2. Selecteer Compute>Azure Spring Apps.

  3. Vul het formulier Basisbeginselen in . Gebruik de volgende tabel als richtlijn voor het invullen van het formulier. De aanbevolen planwaarde is Standaardverbruik en toegewezen (preview).

    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 toegewezen (preview) Het prijsplan bepaalt de resources en kosten die aan uw exemplaar zijn gekoppeld.
    Regio De regio die zich het dichtst bij uw gebruikers bevindt. De locatie die het dichtst bij uw gebruikers is.
    Container Apps-omgeving myenvironment De optie om te selecteren welk Container Apps-omgevingsexemplementatie hetzelfde virtuele netwerk moet delen met andere services en resources.

    Gebruik de volgende tabel als richtlijn voor het maken van de Container Apps-omgeving:

    Instelling Voorgestelde waarde Beschrijving
    Omgevingsnaam myenvironment 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 De optie voor het maken van uw Container Apps Environment-service in een Azure-beschikbaarheidszone.
  4. Selecteer Controleren en Maken om uw selecties te controleren. Selecteer Vervolgens Maken om het Azure Spring Apps-exemplaar in te richten.

  5. 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.

  6. Selecteer Ga naar de resource om de overzichtspagina van de service te openen.

    Schermopname van Azure Portal met de pagina Overzicht met de pagina Meldingen geopend.

Belangrijk

Het workloadprofiel Verbruik heeft een factureringsmodel voor betalen per gebruik, zonder beginkosten. U wordt gefactureerd voor het toegewezen workloadprofiel op basis van de ingerichte resources. Zie Workloadprofielen in Prijzen voor Azure Container Apps en Azure Spring Apps voor meer informatie.

3.3. Het PostgreSQL-exemplaar voorbereiden

Gebruik de volgende stappen om een Azure Database for PostgreSQL-server te maken:

  1. Ga naar Azure Portal en selecteer Een resource maken.

  2. Selecteer Databases>Azure Database for PostgreSQL.

  3. Selecteer de implementatieoptie Flexible Server.

    Schermopname van Azure Portal met de optiepagina Azure Database for PostgreSQL-implementatie selecteren.

  4. Vul het tabblad Basisbeginselen in met de volgende informatie:

    • Servernaam: my-demo-pgsql
    • Regio: VS - oost
    • PostgreSQL-versie: 14
    • Workloadtype: Ontwikkeling
    • Hoge beschikbaarheid inschakelen: niet geselecteerd
    • Verificatiemethode: alleen PostgreSQL-verificatie
    • Gebruikersnaam van beheerder: myadmin
    • Wachtwoord en wachtwoord bevestigen: voer een wachtwoord in.
  5. Gebruik de volgende informatie om het tabblad Netwerken te configureren:

    • Connectiviteitsmethode: Openbare toegang (toegestane IP-adressen)
    • Openbare toegang vanuit elke Azure-service binnen Azure tot deze server toestaan: geselecteerd
  6. Selecteer Beoordelen en maken om uw selecties te controleren en selecteer Maken om de server in te richten. Deze bewerking kan enkele minuten duren.

  7. Ga in het Azure Portal naar uw PostgreSQL-server. Zoek op de pagina Overzicht naar de servernaamwaarde en noteer deze voor later gebruik. U hebt deze nodig om de omgevingsvariabelen voor de app in Azure Spring Apps te configureren.

  8. Selecteer Databases in het navigatiemenu om een database te maken, bijvoorbeeld taken.

    Schermopname van Azure Portal met de pagina Databases met het deelvenster Database maken geopend.

3.4. App-exemplaar verbinden met PostgreSQL-exemplaar

Gebruik de volgende stappen om verbinding te maken met uw service-exemplaren:

  1. Ga naar uw Azure Spring Apps-exemplaar in Azure Portal.

  2. Open Apps in het navigatiemenu en selecteer App maken.

  3. Vul op de pagina App maken de naam simple-todo-api in en selecteer Java-artefacten als het implementatietype.

  4. Selecteer Maken om het maken van de app te voltooien en selecteer de app om de details weer te geven.

  5. Ga naar de app die u hebt gemaakt in Azure Portal. Selecteer op de pagina Overzicht het eindpunt toewijzen om het openbare eindpunt voor de app beschikbaar te maken. Sla de URL op voor toegang tot de app na de implementatie.

  6. Ga naar de app die u hebt gemaakt, vouw Instellingen uit en selecteer Configuratie in het navigatiemenu en selecteer vervolgens Omgevingsvariabelen om de omgevingsvariabelen in te stellen.

  7. Voeg de volgende omgevingsvariabelen toe voor de PostgreSQL-verbinding en selecteer Opslaan om de update van de app-configuratie te voltooien. Vervang de tijdelijke aanduidingen door uw eigen waarden die u eerder hebt gemaakt.

    Omgevingsvariabele Weergegeven als
    SPRING_DATASOURCE_URL jdbc:postgresql://<your-PostgreSQL-server-name>:5432/<your-PostgreSQL-database-name>
    SPRING_DATASOURCE_USERNAME <your-PostgreSQL-admin-user>
    SPRING_DATASOURCE_PASSWORD <your-PostgreSQL-admin-password>

    Schermopname van Azure Portal met het tabblad Omgevingsvariabelen met alle waarden voor de PostgreSQL-verbinding.

3.5. RESTful-API's beschikbaar maken

Gebruik de volgende stappen om uw RESTful-API's beschikbaar te maken in Microsoft Entra-id:

  1. Meld u aan bij het Azure-portaal.

  2. Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.

  3. Zoek Microsoft Entra ID en selecteer deze.

  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.

  5. Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld Todo. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.

  6. Voor ondersteunde accounttypen selecteert u Accounts in een organisatiemap (Elke Microsoft Entra-directory - Multitenant) en persoonlijke Microsoft-accounts.

  7. Selecteer Registreren om de toepassing te maken.

  8. 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.

  9. Selecteer onder Beheren een API beschikbaar maken, zoek de URI van de toepassings-id aan het begin van de pagina en selecteer vervolgens Toevoegen.

  10. Accepteer op de pagina URI van de toepassings-id bewerken de voorgestelde URI voor de toepassings-id (api://{client ID}) of gebruik een betekenisvolle naam in plaats van de client-id, zoals api://simple-todoen selecteer Opslaan.

  11. Selecteer onder Beheren een API>beschikbaar maken en voer vervolgens de volgende gegevens in:

    • Voer ToDo.Read in als bereiknaam.
    • Voor wie toestemming kan geven, selecteert u alleen Beheerders.
    • Voer voor de weergavenaam van beheerderstoestemming de ToDo-gegevens in.
    • Voer voor de beschrijving van beheerderstoestemming geverifieerde gebruikers toe om de ToDo-gegevens te lezen.
    • Houd deze ingeschakeld voor State.
    • Selecteer Bereik toevoegen.
  12. Herhaal de vorige stappen om de andere twee bereiken toe te voegen: ToDo.Write en ToDo.Delete.

    Schermopname van Azure Portal met de pagina Een API beschikbaar maken van een RESTful API-toepassing.

3.6. De toepassingsconfiguratie bijwerken

Gebruik de volgende stappen om het YAML-bestand bij te werken om uw geregistreerde Microsoft Entra-toepassingsgegevens te gebruiken om een relatie tot stand te brengen met de RESTful API-toepassing:

  1. Zoek het bestand src/main/resources/application.yml voor de simple-todo-api 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:
            profile:
              tenant-id: <tenant>
            credential:
              client-id: <your-application-ID-of-ToDo>
            app-id-uri: <your-application-ID-URI-of-ToDo>
    

    Notitie

    In v1.0-tokens is voor de configuratie de client-id van de API vereist, terwijl u in v2.0-tokens de client-id of de URI van de toepassings-id in de aanvraag kunt gebruiken. U kunt beide configureren om de validatie van de doelgroep correct te voltooien.

    De toegestane tenant-id waarden zijn: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden het verkeerde eindpunt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van id-provider bestaat niet in de tenant. Zie De app met één tenant converteren naar meerdere tenants in Microsoft Entra ID voor meer informatie over het converteren van uw app met één tenant.

  2. Gebruik de volgende opdracht om het voorbeeldproject opnieuw te bouwen:

    ./mvnw clean package
    

4. De app implementeren in Azure Spring Apps

U kunt de app nu implementeren in Azure Spring Apps.

Gebruik de volgende stappen om te implementeren met behulp van de Maven-invoegtoepassing voor Azure Spring Apps:

  1. Navigeer naar de volledige map en voer vervolgens de volgende opdracht uit om de app te configureren in Azure Spring Apps:

    ./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
    

    In de volgende lijst worden de opdrachteninteracties beschreven:

    • OAuth2-aanmelding: u moet de aanmelding bij Azure autoriseren 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 .
    • Gebruik bestaande Azure Spring Apps in Azure: Druk op y om het bestaande Azure Spring Apps-exemplaar te gebruiken.
    • Selecteer Azure Spring Apps voor implementatie: selecteer het aantal Azure Spring Apps-exemplaren dat u hebt gemaakt. Als u het standaardnummer gebruikt, drukt u rechtstreeks op Enter .
    • Gebruik de bestaande app in Azure Spring Apps <uw exemplaarnaam>: Druk op y om de gemaakte app te gebruiken.
    • Bevestig dat u alle bovenstaande configuraties wilt opslaan: Druk op y. Als u op n drukt, wordt de configuratie niet opgeslagen in de POM-bestanden.
  2. 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 in de volgende logboekberichten dat de implementatie is geslaagd:

[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO]   InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx  Status:Running Reason:null       DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io

5. De app valideren

U hebt nu toegang tot de RESTful-API om te zien of deze werkt.

5.1. Een toegangstoken aanvragen

De RESTful-API's fungeren 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 ToDoWebheeft.

De clienttoepassing registreren

Gebruik de volgende stappen om een toepassing te registreren in Microsoft Entra ID, die wordt gebruikt om de machtigingen voor de ToDo app toe te voegen:

  1. Meld u aan bij het Azure-portaal.

  2. Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory + abonnement ( ) om de tenant te selecteren waarin u een toepassing wilt registreren.

  3. Zoek Microsoft Entra ID en selecteer deze.

  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.

  5. Voer een naam in voor uw toepassing in het veld Naam , bijvoorbeeld ToDoWeb. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.

  6. Gebruik voor ondersteunde accounttypen alleen de standaardwaardeAccounts in deze organisatiemap.

  7. Selecteer Registreren om de toepassing te maken.

  8. 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 verkrijgen.

  9. Selecteer API-machtigingen>Een machtiging toevoegen>Mijn API's. Selecteer de ToDo toepassing die u eerder hebt geregistreerd en selecteer vervolgens de machtigingen ToDo.Read, ToDo.Write en ToDo.Delete . Selecteer Machtigingen toevoegen.

  10. Selecteer Beheerderstoestemming verlenen voor <de naam> van uw tenant om beheerderstoestemming te verlenen voor de machtigingen die u hebt toegevoegd.

    Schermopname van Azure Portal met de API-machtigingen van een webtoepassing.

Gebruiker toevoegen voor toegang tot de RESTful-API's

Gebruik de volgende stappen om een lidgebruiker te maken in uw Microsoft Entra-tenant. Vervolgens kan de gebruiker de gegevens van de ToDo toepassing beheren via RESTful-API's.

  1. Selecteer onder Beheren de optie Nieuwe gebruiker Nieuwe>gebruiker> Maken.

  2. Voer op de pagina Nieuwe gebruiker maken de volgende gegevens in:

    • User principal name: Voer een naam in voor de gebruiker.
    • Weergavenaam: Voer een weergavenaam in voor de gebruiker.
    • Wachtwoord: Kopieer het automatisch gegenereerde wachtwoord in het vak Wachtwoord .

    Notitie

    Nieuwe gebruikers moeten de eerste aanmeldingsverificatie voltooien en hun wachtwoorden bijwerken, anders krijgt u een AADSTS50055: The password is expired foutmelding wanneer u het toegangstoken krijgt.

    Wanneer een nieuwe gebruiker zich aanmeldt, ontvangt deze een actie vereist prompt. Ze kunnen Vragen later kiezen om de validatie over te slaan.

  3. Selecteer Beoordelen en maken om uw selecties te controleren. Selecteer Maken om de gebruiker te maken.

De OAuth2-configuratie voor Swagger UI-autorisatie bijwerken

Gebruik de volgende stappen om de OAuth2-configuratie voor Swagger UI-autorisatie bij te werken. Vervolgens kunt u gebruikers machtigen om toegangstokens te verkrijgen via de ToDoWeb app.

  1. Open uw Microsoft Entra ID-tenant in Azure Portal en ga naar de geregistreerde ToDoWeb app.

  2. Selecteer verificatie onder Beheren, selecteer Een platform toevoegen en selecteer vervolgens toepassing met één pagina.

  3. Gebruik de indeling <your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html als de OAuth2-omleidings-URL in het veld Omleidings-URI's en selecteer vervolgens Configureren.

    Schermopname van Azure Portal met de pagina Verificatie voor Microsoft Entra-id.

Het toegangstoken verkrijgen

Gebruik de volgende stappen om de OAuth 2.0-autorisatiecodestroommethode te gebruiken om een toegangstoken met Microsoft Entra-id te verkrijgen en vervolgens toegang te krijgen tot de RESTful API's van de ToDo app:

  1. Open de URL die door de app wordt weergegeven en selecteer Autoriseren om de OAuth2-verificatie voor te bereiden.

  2. Voer in het venster Beschikbare autorisaties de client-id van de ToDoWeb app in het veld client_id in, selecteer alle bereiken voor het veld Bereiken , negeer het veld client_secret en selecteer Autoriseren om om te leiden naar de aanmeldingspagina van Microsoft Entra.

Nadat u het aanmelden met de vorige gebruiker hebt voltooid, keert u terug naar het venster Beschikbare autorisaties .

5.2. Toegang tot de RESTful-API's

Gebruik de volgende stappen om toegang te krijgen tot de RESTful API's van de ToDo app in de Swagger-gebruikersinterface:

  1. Selecteer de API POST /api/simple-todo/lists en selecteer vervolgens Uitproberen. Voer de volgende aanvraagtekst in en selecteer vervolgens Uitvoeren om een Takenlijst te maken.

    {
      "name": "My List"
    }
    

    Nadat de uitvoering is voltooid, ziet u de volgende hoofdtekst van het antwoord:

    {
      "id": "<ID-of-the-ToDo-list>",
      "name": "My List",
      "description": null
    }
    
  2. Selecteer de API POST /api/simple-todo/lists/{listId}/items en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in die u eerder hebt gemaakt, voer de volgende aanvraagtekst in en selecteer vervolgens Uitvoeren om een ToDo-item te maken.

    {
      "name": "My first ToDo item", 
      "listId": "<ID-of-the-ToDo-list>",
      "state": "todo"
    }
    

    Met deze actie wordt het volgende taakitem geretourneerd:

    {
      "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
    }
    
  3. Selecteer de API GET /api/simple-todo/lists en selecteer vervolgens Uitvoeren om takenlijsten op te vragen. Met deze actie worden de volgende takenlijsten geretourneerd:

    [
      {
        "id": "<ID-of-the-ToDo-list>",
        "name": "My List",
        "description": null
      }
    ]
    
  4. Selecteer de API GET /api/simple-todo/lists/{listId}/items en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in die u eerder hebt gemaakt en selecteer vervolgens Uitvoeren om een query uit te voeren op de Takenitems. Met deze actie wordt het volgende taakitem geretourneerd:

    [
      {
        "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
      }
    ]
    
  5. Selecteer de API PUT /api/simple-todo/lists/{listId}/items/{itemId} en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in. Voer voor item-id de id van het ToDo-item in, voer de volgende hoofdtekst van de aanvraag in en selecteer vervolgens Uitvoeren om het ToDo-item bij te werken.

    {
      "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"
    }
    

    Met deze actie wordt het volgende bijgewerkte ToDo-item geretourneerd:

    {
      "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
    }
    
  6. Selecteer de API DELETE /api/simple-todo/lists/{listId}/items/{itemId} en selecteer vervolgens Uitproberen. Voer voor listId de takenlijst-id in. Voer voor item-id de item-id Van ToDo in en selecteer Vervolgens Uitvoeren om het ToDo-item te verwijderen. U ziet dat de antwoordcode van de server is 204.

6. Resources 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:

  1. Zoek de resourcegroep in Azure Portal.

  2. Selecteer Resourcegroepen in het navigatiemenu. Selecteer vervolgens de naam van uw resourcegroep, bijvoorbeeld myresourcegroup.

  3. Selecteer Verwijderen op de pagina van de resourcegroep. Voer de naam van uw resourcegroep in het tekstvak in om het verwijderen te bevestigen, bijvoorbeeld myresourcegroup. Selecteer vervolgens Verwijderen.

Gebruik de volgende stappen om de hele resourcegroep te verwijderen, inclusief de zojuist gemaakte service:

  1. Zoek de resourcegroep in Azure Portal.

  2. Selecteer Resourcegroepen in het navigatiemenu. Selecteer vervolgens de naam van uw resourcegroep, bijvoorbeeld myresourcegroup.

  3. Selecteer Verwijderen op de pagina van de resourcegroep. Voer de naam van uw resourcegroep in het tekstvak in om het verwijderen te bevestigen, bijvoorbeeld myresourcegroup. Selecteer vervolgens Verwijderen.

7. Volgende stappen

Raadpleeg voor meer informatie de volgende artikelen: