Share via


Spring web uygulamasına Microsoft Entra hesabıyla oturum açma ekleme

Bu makalede, Microsoft Entra hesabıyla oturum açmayı destekleyen bir Spring web uygulamasının nasıl geliştirildiğiniz gösterilmektedir. Bu makaledeki tüm adımları tamamladıktan sonra, web uygulaması anonim olarak erişildiğinde Microsoft Entra oturum açma sayfasına yönlendirilir. Aşağıdaki ekran görüntüsünde Microsoft Entra oturum açma sayfası gösterilmektedir:

Screenshot of application 'Sign in' dialog.

Önkoşullar

Bu makaledeki adımları tamamlamak için aşağıdaki önkoşullar gereklidir:

  • Desteklenen bir Java Development Kit (JDK). Azure'da geliştirme yaparken kullanılabilecek JDK'ler hakkında daha fazla bilgi için bkz . Azure ve Azure Stack'te Java desteği.
  • Apache Maven, sürüm 3.0 veya üzeri.
  • Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.

Önemli

Bu makaledeki adımları tamamlamak için Spring Boot sürüm 2.5 veya üzeri gereklidir.

Spring Initializr kullanarak uygulama oluşturma

  1. https://start.spring.io/ adresine göz atın.

  2. Java ile Maven projesi oluşturmak istediğinizi belirtin, uygulamanız için Grup ve Yapıt adlarını girin.

  3. Spring Web, Microsoft Entra Id ve OAuth2 İstemcisi için Bağımlılıklar ekleyin.

  4. Sayfanın en altında OLUŞTUR düğmesini seçin.

    Screenshot of Spring Initializr with basic options.

  5. İstendiğinde, projeyi yerel bilgisayarınızda bir yola indirin.

Microsoft Entra örneği oluşturma

Active Directory örneğini oluşturma

Mevcut bir örneğin yöneticisiyseniz bu işlemi atlayabilirsiniz.

  1. https://portal.azure.com adresinden oturum açın.

  2. Tüm hizmetler'i, kimlik'i ve ardından Microsoft Entra Id'yi seçin.

  3. Kuruluş adı ve İlk etki alanı adı bölümlerini doldurun. Dizininizin tam URL'sini kopyalayın. Bu öğreticinin ilerleyen bölümlerinde kullanıcı hesapları eklemek için URL'yi kullanacaksınız. (Örneğin: azuresampledirectory.onmicrosoft.com.)

    Dizininizin tam URL'sini kopyalayın. Bu öğreticinin ilerleyen bölümlerinde kullanıcı hesapları eklemek için URL'yi kullanacaksınız. (Örneğin: azuresampledirectory.onmicrosoft.com.).

    İşiniz bittiğinde Oluştur'u seçin. Yeni kaynak oluşturmak birkaç dakika sürebilir.

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

  4. Tamamlandığında, yeni dizine erişmek için görüntülenen bağlantıyı seçin.

    Screenshot of 'Create a tenant' success message.

  5. Kiracı Kimliğini kopyalayın. Bu öğreticinin devamında application.properties dosyanızı yapılandırmak için Kimlik değerini kullanacaksınız.

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

Spring Boot uygulamanız için uygulama kaydı ekleme

  1. Portal menüsünden Uygulama kayıtları'ı ve ardından Uygulamayı kaydet'i seçin.

  2. Uygulamanızı belirtin ve ardından Kaydet'i seçin.

  3. Uygulama kaydınızın sayfası görüntülendiğinde Uygulama (istemci) kimliğinizi ve Dizin (kiracı) kimliğinizi kopyalayın. Bu öğreticinin devamında application.properties dosyanızı yapılandırmak için bu değerleri kullanacaksınız.

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

  4. Sol gezinti bölmesinde Sertifikalar ve gizli diziler'i seçin. Ardından Yeni istemci gizli dizisi'ni seçin.

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

  5. Açıklama ekleyip Süre sonu listesinden süre seçin. Ekle'yi seçin. Anahtarın değeri otomatik olarak doldurulur.

  6. Gizli anahtarın değerini kopyalayıp kaydederek bu öğreticide daha sonra application.properties dosyanızı yapılandırın. (Bu değeri daha sonra alamayacaksınız.)

    Screenshot of application with new client secret highlighted.

  7. Uygulama kaydınızın ana sayfasında Kimlik Doğrulaması'nı ve ardından Platform ekle'yi seçin. Ardından Web uygulamaları'ı seçin.

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

  8. Yeni bir Yeniden Yönlendirme URI'si olarak girin http://localhost:8080/login/oauth2/code/ ve Yapılandır'ı seçin.

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

  9. pom.xml dosyasını 3.0.0'dan önceki bir Microsoft Entra başlangıç sürümünü kullanacak şekilde değiştirdiyseniz: Örtük verme ve karma akışlar'ın altında Kimlik belirteçleri (örtük ve karma akışlar için kullanılır) seçeneğini belirleyip Kaydet'i seçin.

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

Dizininize bir kullanıcı hesabı ekleyin ve bu hesabı bir appRole'a ekleyin

  1. Active Directory'nizin Genel Bakış sayfasında Kullanıcılar'ı ve ardından Yeni kullanıcı'yı seçin.

  2. Kullanıcı paneli görüntülendiğinde Kullanıcı adı ve Adı bilgilerini girin. Daha sonra, Oluştur'u seçin.

    Screenshot of 'New user' dialog.

    Not

    Kullanıcı adını girerken bu öğreticinin önceki bölümlerinden dizin URL'nizi belirtmeniz gerekir. Örneğin:

    test-user@azuresampledirectory.onmicrosoft.com

  3. Uygulama kaydınızın ana sayfasında Uygulama rolleri'ni ve ardından Uygulama rolü oluştur'u seçin. Form alanları için değerler sağlayın, Bu uygulama rolünü etkinleştirmek istiyor musunuz? öğesini ve ardından Uygula'yı seçin.

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

  4. Microsoft Entra dizininizin Genel Bakış sayfasında Kurumsal uygulamalar'ı seçin.

    Screenshot of Microsoft Entra ID 'Enterprise applications' screen.

  5. Tüm uygulamalar'ı ve ardından önceki bir adımda uygulama rolünü eklediğiniz uygulamayı seçin.

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

  6. Kullanıcılar ve gruplar'ı ve ardından Kullanıcı/grup ekle'yi seçin.

  7. Kullanıcılar'ın altında Hiçbiri Seçilmedi'yi seçin. Daha önce oluşturduğunuz kullanıcıyı seçin, Seç'i ve ardından Ata'yı seçin. Daha önce birden fazla uygulama rolü oluşturduysanız bir rol seçin.

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

  8. Kullanıcılar paneline dönün, test kullanıcınızı seçin ve Parolayı sıfırla'yı seçin ve parolayı kopyalayın. Bu öğreticinin ilerleyen bölümlerinde uygulamanızda oturum açtığınızda parolayı kullanacaksınız.

    Screenshot of user with 'Temporary password' field highlighted.

Uygulamanızı yapılandırma ve derleme

  1. Bu öğreticide daha önce oluşturduğunuz ve indirdiğiniz proje arşivindeki dosyaları bir dizine ayıklayın.

  2. Projenizdeki src/main/resources klasörüne gidin ve application.properties dosyasını bir metin düzenleyicisinde açın.

  3. Daha önce oluşturduğunuz değerleri kullanarak uygulama kaydınızın ayarlarını belirtin. Örneğin:

    # 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==
    

    Where:

    Parametre Açıklama
    spring.cloud.azure.active-directory.enabled spring-cloud-azure-starter-active-directory tarafından sağlanan özellikleri etkinleştirme
    spring.cloud.azure.active-directory.profile.tenant-id Daha önce aldığınız Active Directory örneğinizin Dizin Kimliği değerini içerir.
    spring.cloud.azure.active-directory.credential.client-id Daha önce tamamladığınız uygulama kaydınızın Uygulama Kimliği değerini içerir.
    spring.cloud.azure.active-directory.credential.client-secret Daha önce tamamladığınız uygulama kaydı anahtarınızın Değer bilgisini içerir.
  4. Application.properties dosyasını kaydedin ve kapatın.

  5. Uygulamanızın Java kaynak klasöründe controller adlı bir klasör oluşturun. Örneğin: src/main/java/com/wingtiptoys/security/controller.

  6. controller klasöründe HelloController.java adlı yeni bir Java dosyası oluşturun ve bir metin düzenleyicide açın.

  7. Aşağıdaki kodu girdikten sonra dosyayı kaydedip kapatın:

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

Uygulamanızı derleme ve test etme

  1. Komut istemini açın ve dizini değiştirip uygulamanızın pom.xml dosyasının bulunduğu klasöre geçin.

  2. Spring Boot uygulamanızı Maven’le oluşturun ve çalıştırın. Örneğin:

    mvn clean package
    mvn spring-boot:run
    

    Screenshot of Maven build output.

  3. Uygulamanız Maven tarafından derlenip başlatıldıktan sonra bir web tarayıcısında açın http://localhost:8080/Admin . Sizden bir kullanıcı adı ve parola istenmelidir.

    Screenshot of application 'Sign in' dialog.

    Not

    Yeni bir kullanıcı hesabıyla ilk kez oturum açıyorsanız parolanızı değiştirmeniz istenebilir.

    Screenshot of application 'Update your password' dialog.

  4. Başarıyla oturum açtıktan sonra, denetleyiciden gelen örnek "Yönetici iletisi" metnini görmeniz gerekir.

    Screenshot of application admin message.

Özet

Bu öğreticide, Microsoft Entra başlatıcısını kullanarak yeni bir Java web uygulaması oluşturdunuz, yeni bir Microsoft Entra kiracısı yapılandırdı, kiracıya yeni bir uygulama kaydettiniz ve sonra uygulamanızı web uygulamasını korumak için Spring ek açıklamalarını ve sınıflarını kullanacak şekilde yapılandırdınız.

Ayrıca bkz.

Sonraki adımlar

Spring ve Azure hakkında daha fazlasını öğrenmek için Azure’da Spring belge merkezinde çalışmaya devam edin.