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:
Ö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
https://start.spring.io/ adresine göz atın.
Java ile Maven projesi oluşturmak istediğinizi belirtin, uygulamanız için Grup ve Yapıt adlarını girin.
Spring Web, Microsoft Entra Id ve OAuth2 İstemcisi için Bağımlılıklar ekleyin.
Sayfanın en altında OLUŞTUR düğmesini seçin.
İ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.
https://portal.azure.com adresinden oturum açın.
Tüm hizmetler'i, kimlik'i ve ardından Microsoft Entra Id'yi seçin.
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.
Tamamlandığında, yeni dizine erişmek için görüntülenen bağlantıyı seçin.
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
Portal menüsünden Uygulama kayıtları'ı ve ardından Uygulamayı kaydet'i seçin.
Uygulamanızı belirtin ve ardından Kaydet'i seçin.
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.
Sol gezinti bölmesinde Sertifikalar ve gizli diziler'i seçin. Ardından Yeni istemci gizli dizisi'ni seçin.
Açıklama ekleyip Süre sonu listesinden süre seçin. Ekle'yi seçin. Anahtarın değeri otomatik olarak doldurulur.
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.)
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.
Yeni bir Yeniden Yönlendirme URI'si olarak girin http://localhost:8080/login/oauth2/code/ ve Yapılandır'ı seçin.
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
Active Directory'nizin Genel Bakış sayfasında Kullanıcılar'ı ve ardından Yeni kullanıcı'yı seçin.
Kullanıcı paneli görüntülendiğinde Kullanıcı adı ve Adı bilgilerini girin. Daha sonra, Oluştur'u seçin.
Not
Kullanıcı adını girerken bu öğreticinin önceki bölümlerinden dizin URL'nizi belirtmeniz gerekir. Örneğin:
test-user@azuresampledirectory.onmicrosoft.com
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.
Microsoft Entra dizininizin Genel Bakış sayfasında Kurumsal uygulamalar'ı seçin.
Tüm uygulamalar'ı ve ardından önceki bir adımda uygulama rolünü eklediğiniz uygulamayı seçin.
Kullanıcılar ve gruplar'ı ve ardından Kullanıcı/grup ekle'yi seçin.
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.
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
Bu öğreticide daha önce oluşturduğunuz ve indirdiğiniz proje arşivindeki dosyaları bir dizine ayıklayın.
Projenizdeki src/main/resources klasörüne gidin ve application.properties dosyasını bir metin düzenleyicisinde açın.
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. Application.properties dosyasını kaydedin ve kapatın.
Uygulamanızın Java kaynak klasöründe controller adlı bir klasör oluşturun. Örneğin: src/main/java/com/wingtiptoys/security/controller.
controller klasöründe HelloController.java adlı yeni bir Java dosyası oluşturun ve bir metin düzenleyicide açın.
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
Komut istemini açın ve dizini değiştirip uygulamanızın pom.xml dosyasının bulunduğu klasöre geçin.
Spring Boot uygulamanızı Maven’le oluşturun ve çalıştırın. Örneğin:
mvn clean package mvn spring-boot:run
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.Not
Yeni bir kullanıcı hesabıyla ilk kez oturum açıyorsanız parolanızı değiştirmeniz istenebilir.
Başarıyla oturum açtıktan sonra, denetleyiciden alınan örnek "Yönetici iletisi" metnini görmeniz gerekir.
Ö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.
- Yeni kullanıcı arabirimi seçenekleri hakkında bilgi için bkz. Yeni Azure portalı uygulama kaydı eğitim kılavuzu
Sonraki adımlar
Spring ve Azure hakkında daha fazlasını öğrenmek için Azure’da Spring belge merkezinde çalışmaya devam edin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin