Bejelentkezés hozzáadása Microsoft Entra-fiókkal egy Spring-webalkalmazáshoz

Ez a cikk bemutatja, hogyan fejleszthet olyan Spring-webalkalmazást, amely támogatja a Microsoft Entra-fiók általi bejelentkezést. A jelen cikk összes lépésének befejezése után a webalkalmazás átirányítja a Microsoft Entra bejelentkezési lapjára, amikor névtelenül hozzáfér. Az alábbi képernyőképen a Microsoft Entra bejelentkezési oldala látható:

Screenshot of application 'Sign in' dialog.

Előfeltételek

A cikk lépéseinek elvégzéséhez a következő előfeltételek szükségesek:

  • Egy támogatott Java fejlesztői készlet (JDK). Az Azure-beli fejlesztés során használható JDK-król további információt az Azure-ban és az Azure Stackben elérhető Java-támogatásban talál.
  • Apache Maven, 3.0-s vagy újabb verzió.
  • Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot.

Fontos

A cikkben ismertetett lépések elvégzéséhez a Spring Boot 2.5-ös vagy újabb verziójára van szükség.

Alkalmazás létrehozása a Spring Initializr használatával

  1. Nyissa meg a következő címet: https://start.spring.io/.

  2. Adja meg, hogy Maven-projektet szeretne létrehozni Java használatával, majd adja meg az alkalmazáshoz tartozó Group (Csoport) és Artifact (Összetevő) neveit.

  3. Függőségek hozzáadása a Spring Webhez, a Microsoft Entra-azonosítóhoz és az OAuth2-ügyfélhez.

  4. A lap alján válassza a GENERATE gombot.

    Screenshot of Spring Initializr with basic options.

  5. Ha a rendszer kéri, töltse le a projektet a helyi számítógépre.

Microsoft Entra-példány létrehozása

Az Active Directory-példány létrehozása

Ha Ön egy meglévő példány rendszergazdája, kihagyhatja ezt a folyamatot.

  1. Jelentkezzen be a https://portal.azure.com webhelyen.

  2. Válassza az Összes szolgáltatás, majd az Identitás, majd a Microsoft Entra-azonosító lehetőséget.

  3. Írja be a Szervezet nevét és a Kezdeti tartománynevet. Másolja ki a könyvtár teljes URL-címét. Az OKTATÓANYAG későbbi részében az URL-cím használatával vehet fel felhasználói fiókokat. (Például: azuresampledirectory.onmicrosoft.com)

    Másolja ki a könyvtár teljes URL-címét. Az OKTATÓANYAG későbbi részében az URL-cím használatával vehet fel felhasználói fiókokat. (Például: azuresampledirectory.onmicrosoft.com.).

    Ha végzett, válassza a Létrehozás lehetőséget. Az új erőforrás létrehozása néhány percet vesz igénybe.

    Screenshot of the Configuration section of the Microsoft Entra ID 'Create a tenant' screen.

  4. Ha elkészült, válassza a megjelenített hivatkozást az új könyvtár eléréséhez.

    Screenshot of 'Create a tenant' success message.

  5. Másolja ki a bérlőazonosítót. Az id érték használatával konfigurálhatja az application.properties fájlt az oktatóanyag későbbi részében.

    Screenshot of Microsoft Entra tenant screen with 'Tenant ID' highlighted.

Alkalmazásregisztráció hozzáadása a Spring Boot-alkalmazáshoz

  1. A portál menüjében válassza a Alkalmazásregisztrációk, majd az Alkalmazás regisztrálása lehetőséget.

  2. Adja meg az alkalmazást, majd válassza a Regisztráció lehetőséget.

  3. Amikor megjelenik az alkalmazásregisztráció lapja, másolja ki az alkalmazás (ügyfél) azonosítóját és a címtár (bérlő) azonosítóját. Ezekkel az értékekkel konfigurálhatja az application.properties fájlt az oktatóanyag későbbi részében.

    Screenshot of application with 'Application (client) ID' and 'Directory (tenant) ID' highlighted.

  4. Válassza a Tanúsítványok > titkos kulcsok lehetőséget a bal oldali navigációs panelen. Ezután válassza az Új ügyfélkulcs lehetőséget.

    Screenshot of application 'Certificates & secrets' screen with 'New client secret' highlighted.

  5. Adjon hozzá egy Leírást, és válassza ki az időtartamot a Lejárat listában. Válassza a Hozzáadás lehetőséget. A kulcshoz tartozó értéket automatikusan kitölti a rendszer.

  6. Másolja ki és mentse a titkos ügyfélkód értékét az application.properties fájl konfigurálásához az oktatóanyag későbbi részében. (Ezt az értéket később nem fogja tudni lekérni.)

    Screenshot of application with new client secret highlighted.

  7. Az alkalmazásregisztráció fő lapján válassza a Hitelesítés lehetőséget, majd válassza a Platform hozzáadása lehetőséget. Ezután válassza ki a webalkalmazásokat.

    Screenshot of application Authentication screen with 'Configure platforms' section showing and Web platform highlighted.

  8. Adjon meg http://localhost:8080/login/oauth2/code/ új átirányítási URI-t, majd válassza a Konfigurálás lehetőséget.

    Screenshot of application Authentication screen with 'Configure Web' section showing and 'Redirect URIs' highlighted.

  9. Ha a pom.xml fájlt úgy módosította, hogy a Microsoft Entra 3.0.0-nál korábbi verzióját használja: az Implicit engedélyezési és hibrid folyamatok területen válassza ki az azonosító jogkivonatokat (implicit és hibrid folyamatokhoz), majd válassza a Mentés lehetőséget.

    Screenshot of application Authentication screen with 'ID tokens' selected.

Felhasználói fiók hozzáadása a címtárhoz, és a fiók hozzáadása egy appRole-hoz

  1. Az Active Directory Áttekintés lapján válassza a Felhasználók, majd az Új felhasználó lehetőséget.

  2. Amikor megjelenik a Felhasználó panel, adja meg a Felhasználónevet és a Nevet. Válassza a Létrehozás parancsot.

    Screenshot of 'New user' dialog.

    Feljegyzés

    A felhasználónév megadásakor meg kell adnia a címtár URL-címét az oktatóanyag korábbi szakaszából. Példa:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Az alkalmazásregisztráció fő lapján válassza az Alkalmazásszerepkörök lehetőséget, majd válassza az Alkalmazásszerepkör létrehozása lehetőséget. Adja meg az űrlapmezők értékeit, válassza a Do you want to enable this app role?, then select Apply (Alkalmazás) lehetőséget.

    Screenshot of application 'App roles' screen with 'Create app role' pane showing.

  4. A Microsoft Entra könyvtár Áttekintés lapján válassza a Nagyvállalati alkalmazások lehetőséget.

    Screenshot of Microsoft Entra ID 'Enterprise applications' screen.

  5. Válassza a Minden alkalmazás lehetőséget, majd válassza ki azt az alkalmazást, amelybe az előző lépésben hozzáadta az alkalmazásszerepkört.

    Screenshot of 'Enterprise applications' screen with 'All applications' list showing.

  6. Válassza a Felhasználók és csoportok lehetőséget, majd a Felhasználó/csoport hozzáadása lehetőséget.

  7. A Felhasználók csoportban válassza a Nincs kijelölve lehetőséget. Jelölje ki a korábban létrehozott felhasználót, válassza a Kiválasztás, majd a Hozzárendelés lehetőséget. Ha korábban több alkalmazásszerepkört is létrehozott, válasszon ki egy szerepkört.

    Screenshot of application 'Add Assignment' screen with Users pane showing.

  8. Lépjen vissza a Felhasználók panelre, válassza ki a tesztfelhasználót, és válassza a Jelszó kérése lehetőséget, és másolja a jelszót. A jelszót akkor fogja használni, amikor az oktatóanyag későbbi részében bejelentkezik az alkalmazásba.

    Screenshot of user with 'Temporary password' field highlighted.

Az alkalmazás konfigurálása és fordítása

  1. Csomagolja ki a fájlokat a korábban létrehozott és letöltött projektarchívumból egy könyvtárba.

  2. Lépjen a projekt src/main/resources mappájába, majd nyissa meg az application.properties fájlt egy szövegszerkesztőben.

  3. Adja meg az alkalmazásregisztráció beállításait a korábban létrehozott értékekkel. Példa:

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Active Directory ID:
    spring.cloud.azure.active-directory.profile.tenant-id=22222222-2222-2222-2222-222222222222
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=11111111-1111-1111-1111-1111111111111111
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz==
    

    Ahol:

    Paraméter Leírás
    spring.cloud.azure.active-directory.enabled A spring-cloud-azure-starter-active-directory által biztosított szolgáltatások engedélyezése
    spring.cloud.azure.active-directory.profile.tenant-id Az Active Directory korábban megadott Címtár-azonosítóját tartalmazza.
    spring.cloud.azure.active-directory.credential.client-id A korábban elvégzett alkalmazásregisztráció Alkalmazásazonosítóját tartalmazza.
    spring.cloud.azure.active-directory.credential.client-secret A korábban elvégzett alkalmazásregisztrációból származó kulcs Értékét tartalmazza.
  4. Mentse és zárja be az application.properties fájlt.

  5. Hozzon létre egy controller nevű mappát az alkalmazás Java-forrásmappájában. Például: src/main/java/com/wingtiptoys/security/controller.

  6. Hozzon létre egy új, HelloController.java nevű fájlt a controller mappában, majd nyissa meg egy szövegszerkesztőben.

  7. Gépelje be a következő kódot, majd mentse és zárja be a fájlt:

    package com.wingtiptoys.security;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.security.access.prepost.PreAuthorize;
    
    @RestController
    public class HelloController {
         @GetMapping("Admin")
         @ResponseBody
         @PreAuthorize("hasAuthority('APPROLE_Admin')")
         public String Admin() {
             return "Admin message";
         }
    }
    

Az alkalmazás összeállítása és tesztelése

  1. Nyisson meg egy parancssort, és váltson a címtár azon mappájára, ahol az alkalmazás pom.xml fájlja található.

  2. Állítsa össze a Spring Boot-alkalmazást a Mavennel, és futtassa. Példa:

    mvn clean package
    mvn spring-boot:run
    

    Screenshot of Maven build output.

  3. Miután az alkalmazást a Maven felépítette és elindította, nyisson meg http://localhost:8080/Admin egy webböngészőben. Meg kell kérnie a felhasználónevet és a jelszót.

    Screenshot of application 'Sign in' dialog.

    Feljegyzés

    AZ új felhasználói fiókba való első bejelentkezéskor a rendszer arra kérheti, hogy változtassa meg jelszavát.

    Screenshot of application 'Update your password' dialog.

  4. Miután sikeresen bejelentkezett, látnia kell a vezérlő "Rendszergazda üzenet" mintáját.

    Screenshot of application admin message.

Összegzés

Ebben az oktatóanyagban létrehozott egy új Java-webalkalmazást a Microsoft Entra starter használatával, konfigurált egy új Microsoft Entra-bérlőt, regisztrált egy új alkalmazást a bérlőben, majd úgy konfigurálta az alkalmazást, hogy a Spring-széljegyzetek és osztályok használatával védje a webalkalmazást.

Lásd még

Következő lépések

Ha szeretne többet megtudni a Spring és az Azure szolgáltatásról, lépjen tovább a Spring on Azure dokumentációs központra.