Aracılığıyla paylaş


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:

Uygulama 'Oturum aç' 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 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. Maven projesi oluşturmak istediğinizi, Javaile belirtin ve uygulamanız için 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. Spring Cloud Azure Ürün Reçetesini (BOM) <dependencyManagement> bölümüne ekleyin:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>5.23.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 kullanacaksınız.

  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 alamayacaksı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'siniiçin girin veYapı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 izin ve karma akışlaraltında, Kimlik belirteçleri (örtük ve karma akışlar için kullanılır)seçin, ardından Kaydetseçin.

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

  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.

    '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 rolleriseçin ve ardından uygulama rolü oluşturseçin. Form alanları için değer sağlayın, Bu uygulama rolünü etkinleştirmek istiyor musunuz? öğesini seçin, sonra Uygulaseç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 uygulamalarseçin ve ardından önceki adımda uygulama rolünü eklediğiniz uygulamayı seçin.

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

  7. Kullanıcılaraltında Seçili Yokseçin. Daha önce oluşturduğunuz kullanıcıyı seçin, Seç kısmında’i seçin ve ardından Ata kısmında’ü 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 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 öğreticinin önceki bölümlerinde oluşturduğunuz ve indirdiğiniz proje arşivindeki dosyaları bir dizine ayıklayın.

  2. Projenizdeki src/main/resources klasörüne gidin, ardından 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 spring-cloud-azure-starter-active-directory tarafından sağlanan özellikleri etkinleştirme
    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, ardından 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. Uygulamanız Maven tarafından derlenip başlatıldıktan sonra http://localhost:8080/Admin bir web tarayıcısında açın. Sizden bir kullanıcı adı ve parola istenmelidir.

    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ı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ı ile yeni bir Java web uygulaması oluşturdunuz, yeni bir Microsoft Entra kiracısı yapılandırdınız, kiracıya yeni bir uygulama kaydettiniz ve sonra uygulamanızı web uygulamasını korumak için Spring anotasyonları ve sınıflarını kullanacak şekilde yapılandırdınız.

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