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

Bu makalede, Microsoft Entra hesabıtarafından 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:

Spring web uygulamasının Microsoft Entra oturum açma sayfasının ekran görüntüsü.

Önkoşullar

Bu makaledeki adımları tamamlamak için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Desteklenen bir Java Geliştirme Seti (JDK). Azure'da geliştirme yaparken kullanılabilecek JDK'ler hakkında daha fazla bilgi için bkz. Azure'da Java desteği ve Azure Stack.
  • Apache Maven, sürüm 3.0 veya daha yüksek.
  • Bir Azure aboneliği. Azure aboneliğiniz yoksaücretsiz bir 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 gidin.

  2. Java ile bir Maven projesi oluşturmak istediğinizi belirtin. Uygulamanızın Grup ve Yapıt adlarını girin.

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

  4. Sayfanın en altında GENERATE düğmesini seçin.

  5. İstendiğinde, projeyi yerel bilgisayarınızdaki bir dizine indirin.

Microsoft Entra bağımlılığını ekleme

  1. İndirilen proje dosyalarını yerel bilgisayarınızdaki bir dizine ayıklayın.

  2. pom.xml dosyasını bir metin düzenleyicisinde açın.

  3. Bölüme Spring Cloud Azure Ürün Reçetesini <dependencyManagement> (BOM) ekleyin.

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>7.4.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
  4. Spring Cloud Azure Starter Microsoft Entra bağımlılığını <dependencies> bölümüne ekleyin.

    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-active-directory</artifactId>
    </dependency>
    
  5. pom.xml dosyasını kaydedin ve kapatın.

Microsoft Entra örneğini oluşturma

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

  1. https://portal.azure.comoturumu açın.

  2. Tüm hizmetleriseçin, sonra Kimlikve sonra Microsoft Entra ID.

  3. Kuruluş adınızı ve İlk etki alanı adınızıgirin. 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şturdüğmesini seçin. Yeni kaynağın oluşturulması birkaç dakika sürer.

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

  5. Kiracı Kimliğinikopyalayın. Bu öğreticinin ilerleyen bölümlerinde application.properties dosyanızı yapılandırmak için ID değerini kullanacaksınız.

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

  1. Portal menüsünden Uygulama kayıtları'nı seçin ve ardından Uygulama 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 Kiracı Kimliğinizi kopyalayın. Bu öğreticinin devamında application.properties dosyanızı yapılandırmak için bu değerleri kullanın.

  4. Gezinti bölmesinde sertifikalar & sırlar seçin. Ardından Yeni istemci gizli anahtarıseçeneğini seçin.

    'Yeni istemci gizli anahtarı' vurgulanmış 'Sertifikalar & gizli bilgileri' uygulamasının ekranı.

  5. Açıklama ekleyin ve Süre Sonu listesinden süreyi seçin. 'ı seçin'i ekleyin. Anahtarın değeri otomatik olarak doldurulur.

  6. Bu öğreticide daha sonra application.properties dosyanızı yapılandırmak için istemci gizliliğinin değerini kopyalayın ve kaydedin. (Bu değeri daha sonra alamazsınız.)

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

  7. Uygulama kaydınızın ana sayfasında Kimlik Doğrulamaseçin, ardından Bir platform ekleyinseçeneğini seçin. Ardından web uygulamalarıseçin.

  8. Yeni bir Yeniden Yönlendirme URI'si için http://localhost:8080/login/oauth2/code/ girin ve sonra 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) ve ardından Kaydet'i seçin.

Kullanıcı hesabı ekleme ve Microsoft Entra uygulama rolü atama

  1. Microsoft Entra ID kiracınızın 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 Adgirin. Ardından Oluştur'useçin.

    Kullanıcı hesabı oluşturmaya yönelik 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. Mesela:

    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ındanKurumsal uygulamalar'ı seçin.

  5. Tüm uygulamalar'ı seçin ve ardından önceki 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ılaraltında Seçili Yokseç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. Parolayı kopyalayın. Bu öğreticinin ilerleyen bölümlerinde uygulamanızda oturum açarken parolayı kullanırsınız.

Uygulamanızı yapılandırma ve derleme

  1. Bu öğreticinin önceki bölümlerinde oluşturduğunuz ve indirdiğiniz proje arşivindeki dosyaları bir dizine ayıklayın.

  2. Projenizde 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. Mesela:

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Microsoft Entra ID tenant ID:
    spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID>
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=<client-ID>
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
    

    Nerede:

    Parametre Açıklama
    spring.cloud.azure.active-directory.enabled tarafından spring-cloud-azure-starter-active-directorysağlanan özellikleri etkinleştirir.
    spring.cloud.azure.active-directory.profile.tenant-id Microsoft Entra Id kiracınızın önceki kiracı kimliğini içerir.
    spring.cloud.azure.active-directory.credential.client-id Uygulama kaydınızı daha önce tamamladığınızda aldığınız Uygulama Kimliği içerir.
    spring.cloud.azure.active-directory.credential.client-secret Daha önce tamamladığınız uygulama kayıt anahtarınızdan ve değerlerini içerir.
  4. application.properties dosyasını kaydedin ve kapatın.

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

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

  7. Aşağıdaki kodu girin ve 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. Bir komut istemi açın ve dizini uygulamanızın pom.xml dosyasının bulunduğu klasörle değiştirin.

  2. Spring Boot uygulamanızı Maven ile derleyin ve çalıştırın. Mesela:

    mvn clean package
    mvn spring-boot:run
    
  3. Maven uygulamanızı derleyip başladıktan sonra bir web tarayıcısında açın http://localhost:8080/Admin . Kullanıcı adı ve parola girmeniz istenir.

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

    Not

    Bu yeni bir kullanıcı hesabı için ilk oturum açma işlemiyse parolanızı değiştirmeniz istenebilir.

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

  4. Başarıyla oturum açtığınızda, denetleyiciden alınan örnek "Yönetici iletisi" metnini görürsünüz.

    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ı yapılandırdı, kiracıya yeni bir uygulama kaydettiniz ve ardından uygulamanızı Web uygulamasını korumak için Spring ek açıklamalarını ve sınıflarını kullanacak şekilde yapılandırdık.

Ayrıca bkz.

Sonraki adımlar

Spring ve Azure hakkında daha fazla bilgi edinmek için Azure'da Spring belge merkezine geçin.

Azure'da İlkbahar