Aracılığıyla paylaş


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:

'Oturum aç' uygulaması iletişim kutusunun ekran görüntüsü.

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

  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.

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

  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.

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.

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

    'Yeni istemci gizli dizisi' vurgulanmış 'Sertifikalar ve gizli diziler' uygulamasının ekran görüntüsü.

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

    Yeni istemci gizli dizisinin vurgulandığı uygulamanın ekran görüntüsü.

  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.

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

  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.

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.

    'Yeni kullanıcı' iletişim kutusunun ekran görüntüsü.

    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.

    'Uygulama rolü oluştur' bölmesinin gösterildiği uygulama 'Uygulama rolleri' ekranının ekran görüntüsü.

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

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

  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.

  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.

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

    'Oturum aç' uygulaması iletişim kutusunun ekran görüntüsü.

    Not

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

    'Parolanızı güncelleştirin' uygulamasının iletişim kutusunun ekran görüntüsü.

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

    Uygulama yöneticisi iletisinin ekran görüntüsü.

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