Azure Active Directory B2C kullanarak Java Spring Boot uygulamalarının güvenliğini sağlama
Bu makalede, Java için Azure AD B2C Spring Boot Starter istemci kitaplığını kullanarak Azure Active Directory B2C kiracınızdaki kullanıcılarda oturum açan bir Java Spring Boot web uygulaması gösterilmektedir. OpenID Bağlan protokollerini kullanır.
Aşağıdaki diyagramda uygulamanın topolojisi gösterilmektedir:
İstemci uygulaması, bir kullanıcıda oturum açmak ve Azure AD B2C'den kimlik belirteci almak için Java için Azure AD B2C Spring Boot Starter istemci kitaplığını kullanır. Kimlik belirteci, kullanıcının Azure AD B2C ile kimliğinin doğrulandığını kanıtlar ve kullanıcının korumalı yollara erişmesini sağlar.
Önkoşullar
- JDK sürüm 15. Bu örnek Java 15 yüklü bir sistemde geliştirilmiştir, ancak diğer sürümlerle uyumlu olabilir.
- Maven 3
- Bu örneği Visual Studio Code'da çalıştırmak için Visual Studio Code için Java Uzantı Paketi önerilir.
- Azure AD B2C kiracısı. Daha fazla bilgi için bkz . Öğretici: Azure Active Directory B2C kiracısı oluşturma
- Visual Studio Code
- Visual Studio Code için Azure Araçları
Öneriler
- Spring Framework hakkında biraz bilgi
- Linux/OSX terminali veya Windows PowerShell hakkında biraz bilgi
- Belirteçlerinizi incelemek için jwt.ms.
- Ağ etkinliğinizi izlemek ve sorun gidermek için Fiddler .
- En son gelişmelerden haberdar olmak için Microsoft Entra Id Blogunu izleyin.
Örneği ayarlama
Aşağıdaki bölümlerde örnek uygulamanın nasıl ayarlanacağı gösterilmektedir.
Örnek depoyu kopyalama veya indirme
Örneği kopyalamak için bir Bash penceresi açın ve aşağıdaki komutu kullanın:
git clone https://github.com/Azure-Samples/ms-identity-java-spring-tutorial.git
cd ms-identity-java-spring-tutorial
cd 1-Authentication/sign-in-b2c
Alternatif olarak, ms-identity-java-spring-tutorial deposuna gidin, ardından .zip dosyası olarak indirin ve sabit sürücünüze ayıklayın.
Önemli
Windows'ta dosya yolu uzunluğu sınırlamalarını önlemek için depoyu sabit sürücünüzün köküne yakın bir dizine kopyalayın veya ayıklayın.
Bu örnek, tanıtım amacıyla önceden kayıtlı bir uygulamayla birlikte gelir. Kendi Azure AD B2C kiracınızı ve uygulamanızı kullanmak istiyorsanız uygulamayı Azure portalında kaydedin ve yapılandırın. Daha fazla bilgi için Uygulamayı kaydetme bölümüne bakın. Aksi takdirde, Örneği çalıştırma bölümündeki adımlarla devam edin.
Uygulamalarınızı oluşturmak istediğiniz Azure AD B2C kiracısını seçin
Kiracınızı seçmek için aşağıdaki adımları kullanın:
Azure Portal’ında oturum açın.
Hesabınız birden fazla Azure AD B2C kiracısında mevcutsa, Azure portalının köşesinde profilinizi seçin ve ardından Dizini değiştir'i seçerek oturumunuzu istediğiniz Azure AD B2C kiracısına değiştirin.
Kullanıcı akışları ve özel ilkeler oluşturma
Kaydolma, oturum açma, profil düzenleme ve parola sıfırlama gibi yaygın kullanıcı akışları oluşturmak için bkz . Öğretici: Azure Active Directory B2C'de kullanıcı akışları oluşturma.
Azure Active Directory B2C'de de özel ilkeler oluşturmayı düşünmelisiniz. Ancak, bu görev bu öğreticinin kapsamının dışındadır. Daha fazla bilgi için bkz . Azure AD B2C özel ilkesine genel bakış.
Dış kimlik sağlayıcıları ekleme
Bkz . Öğretici: Azure Active Directory B2C'de uygulamalarınıza kimlik sağlayıcıları ekleme.
Uygulamayı kaydetme (java-spring-webapp-auth-b2c)
Uygulamayı kaydetmek için aşağıdaki adımları kullanın:
Gezinti bölmesinde Uygulama Kayıtları'nı ve ardından Yeni kayıt'ı seçin.
Görüntülenen Uygulamayı kaydet sayfasında aşağıdaki uygulama kayıt bilgilerini girin:
- Ad bölümünde, uygulamanın kullanıcılarına görüntülenmesi için anlamlı bir uygulama adı girin. Örneğin,
java-spring-webapp-auth-b2c
. - Desteklenen hesap türleri altında, herhangi bir kimlik sağlayıcısı veya kuruluş dizinindeki hesaplar (Kullanıcı akışı olan kullanıcıların kimliklerini doğrulamak için) seçeneğini belirleyin.
- Yeniden Yönlendirme URI'si (isteğe bağlı) bölümünde, birleşik giriş kutusunda Web'i seçin ve aşağıdaki yeniden yönlendirme URI'sini girin:
http://localhost:8080/login/oauth2/code/
.
- Ad bölümünde, uygulamanın kullanıcılarına görüntülenmesi için anlamlı bir uygulama adı girin. Örneğin,
Uygulamayı kaydetmek için Kaydet'i seçin.
Uygulamanın kayıt sayfasında, daha sonra kullanmak üzere Uygulama (istemci) kimliği değerini bulun ve kopyalayın. Bu değeri uygulamanızın yapılandırma dosyasında veya dosyalarında kullanırsınız.
Yaptığınız değişiklikleri kaydetmek için Kaydet'i seçin.
Uygulamanın kayıt sayfasında, gizli dizi oluşturmak ve sertifikaları karşıya yüklemek için sayfayı açmak için gezinti bölmesindeki Sertifikalar ve gizli diziler bölmesini seçin.
Gizli anahtarlar bölümünün altında, Yeni gizli anahtar'ı seçin.
Uygulama gizli dizisi gibi bir açıklama yazın.
Güvenlikle ilgili endişelerinize göre kullanılabilir sürelerden birini (örneğin, 2 yıl içinde) seçin.
Ekle'yi seçin. Oluşturulan değer görüntülenir.
Oluşturulan değeri kopyalayıp sonraki adımlarda kullanmak üzere kaydedin. Kodunuzun yapılandırma dosyaları için bu değere ihtiyacınız vardır. Bu değer yeniden görüntülenmez ve başka bir yolla alamazsınız. Bu nedenle, başka bir ekrana veya bölmeye gitmeden önce Azure portalından kaydettiğinizden emin olun.
Uygulamayı (java-spring-webapp-auth-b2c) uygulama kaydınızı kullanacak şekilde yapılandırma
Uygulamayı yapılandırmak için aşağıdaki adımları kullanın:
Not
Aşağıdaki adımlarda veya ClientID
AppId
ile Application ID
aynıdır.
Projeyi IDE'nizde açın.
src/main/resources/application.yml dosyasını açın.
client-id
özelliğini bulun ve mevcut değeri Azure portalından uygulama kimliğiyle veyaclientId
java-spring-webapp-auth-b2c
uygulamanın kimliğiyle değiştirin.client-secret
özelliğini bulun ve mevcut değeri Azure portalından uygulamanın oluşturulmasıjava-spring-webapp-auth-b2c
sırasında kaydettiğiniz değerle değiştirin.base-uri
özelliğini bulun ve değerininfabrikamb2c
iki örneğini, Uygulamayı Azure portalında oluşturduğunuzjava-spring-webapp-auth-b2c
Azure AD B2C kiracısının adıyla değiştirin.sign-up-or-sign-in
özelliğini bulun ve azure portalında uygulamayı oluşturduğunuz Azure AD B2C kiracısında oluşturduğunuz kaydolma/oturum açma kullanıcı akışı ilkesininjava-spring-webapp-auth-b2c
adıyla değiştirin.profile-edit
özelliğini bulun ve azure portalında uygulamayı oluşturduğunuzjava-spring-webapp-auth-b2c
Azure AD B2C kiracısında oluşturduğunuz parola sıfırlama kullanıcı akışı ilkesinin adıyla değiştirin.password-reset
özelliğini bulun ve azure portalında uygulamayı oluşturduğunuz Azure AD B2C kiracısında oluşturduğunuz profil düzenleme kullanıcı akışı ilkesininjava-spring-webapp-auth-b2c
adıyla değiştirin.src/main/resources/templates/navbar.html dosyasını açın.
ve akışlarına
b2c_1_susi
yönelik başvuruları bulun ve bunları veprofile-edit
kullanıcı akışlarınızlasign-up-sign-in
b2c_1_edit_profile
değiştirin.
Örneği çalıştırma
Aşağıdaki bölümlerde, örneğin Azure Spring Apps'e nasıl dağıtılacağı gösterilmektedir.
Önkoşullar
Hedef abonelikte ilk kez bir Azure Spring Apps Kurumsal plan örneği dağıtıyorsanız Azure Market'deki Kurumsal plan'ın Gereksinimler bölümüne bakın.
Azure Spring Apps için Maven Eklentisi. Maven tercih ettiğiniz geliştirme aracı değilse, diğer araçları kullanan aşağıdaki benzer öğreticilere bakın:
Spring projesini hazırlama
Projeyi hazırlamak için aşağıdaki adımları kullanın:
Projeyi oluşturmak için aşağıdaki Maven komutunu kullanın:
mvn clean package
Aşağıdaki komutu kullanarak örnek projeyi yerel olarak çalıştırın:
mvn spring-boot:run
Maven eklentisini yapılandırma
Azure Spring Apps için Maven eklentisini kullanarak uygulamayı yapılandırmak üzere projenin kökünde aşağıdaki komutu çalıştırın:
mvn com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
Aşağıdaki listede komut etkileşimleri açıklanmaktadır:
- OAuth2 oturum açma: OAuth2 protokolüne göre Azure'da oturum açmayı yetkilendirmeniz gerekir.
- Aboneliği seçin: Azure Spring Apps örneğinizi oluşturmak istediğiniz abonelik listesi numarasını seçin. Bu numara varsayılan olarak listedeki ilk aboneliktir. Varsayılan sayıyı kullanmak istiyorsanız Enter tuşuna basın.
- Azure Spring Apps adını girin: Oluşturmak istediğiniz spring apps örneğinin adını girin. Varsayılan adı kullanmak istiyorsanız Enter tuşuna basın.
- Kaynak grubu adını girin: Spring apps örneğinizi oluşturmak istediğiniz kaynak grubunun adını girin. Varsayılan adı kullanmak istiyorsanız Enter tuşuna basın.
- Sku'lar: Spring apps örneğiniz için kullanmak istediğiniz SKU'yu seçin. Varsayılan sayıyı kullanmak istiyorsanız Enter tuşuna basın.
- Uygulama adını (tanıtım) girin: Bir uygulama adı girin. Varsayılan proje yapıt kimliğini kullanmak istiyorsanız Enter tuşuna basın.
- Çalışma zamanları: Spring apps örneğiniz için kullanmak istediğiniz çalışma zamanını seçin. Bu durumda, varsayılan sayıyı kullanmanız gerekir, bu nedenle Enter tuşuna basın.
- Bu uygulama için genel erişimi kullanıma sunma (azure için önyükleme): y tuşuna basın.
- Yukarıdaki tüm yapılandırmaları kaydetmek için onaylayın: y tuşuna basın. n tuşuna basarsanız, yapılandırma .pom dosyasına kaydedilmez.
Aşağıdaki örnekte dağıtım işleminin çıkışı gösterilmektedir:
Summary of properties:
Subscription id : 12345678-1234-1234-1234-123456789101
Resource group name : rg-ms-identity-spring-boot-webapp
Azure Spring Apps name : cluster-ms-identity-spring-boot-webapp
Runtime Java version : Java 11
Region : eastus
Sku : Standard
App name : ms-identity-spring-boot-webapp
Public access : true
Instance count/max replicas : 1
CPU count : 1
Memory size(GB) : 2
Confirm to save all the above configurations (Y/n):
[INFO] Configurations are saved to: /home/user/ms-identity-java-spring-tutorial/1-Authentication/sign-in/pom. xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:57 min
[INFO] Finished at: 2024-02-14T13:50:44Z
[INFO] ------------------------------------------------------------------------
Seçimlerinizi onayladıktan sonra eklenti, uygulamanızı Azure Spring Apps'te çalışacak şekilde yapılandırmak için gerekli eklenti öğesini ve ayarlarını projenizin pom.xml dosyasına ekler.
pom.xml dosyasının ilgili bölümü aşağıdaki örneğe benzer olmalıdır:
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-spring-apps-maven-plugin</artifactId>
<version>1.19.0</version>
<configuration>
<subscriptionId>12345678-1234-1234-1234-123456789101</subscriptionId>
<resourceGroup>rg-ms-identity-spring-boot-webapp</resourceGroup>
<clusterName>cluster-ms-identity-spring-boot-webapp</clusterName>
<region>eastus</region>
<sku>Standard</sku>
<appName>ms-identity-spring-boot-webapp</appName>
<isPublic>true</isPublic>
<deployment>
<cpu>1</cpu>
<memoryInGB>2</memoryInGB>
<instanceCount>1</instanceCount>
<runtimeVersion>Java 11</runtimeVersion>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
Azure Spring Apps yapılandırmalarını doğrudan pom.xml dosyanızda değiştirebilirsiniz. Bazı yaygın yapılandırmalar aşağıdaki tabloda listelenmiştir:
Özellik | Zorunlu | Açıklama |
---|---|---|
subscriptionId |
yanlış | Abonelik kimliği. |
resourceGroup |
true | Azure Spring Apps örneğinin Azure kaynak grubu. |
clusterName |
true | Azure Spring Apps küme adı. Zaten bir Azure Spring Apps örneğinin dağıtılmış olduğu bir abonelik ve kaynak grubu kullanıyorsanız, dağıtmak için bu mevcut kümeyi de kullanabilirsiniz. |
appName |
true | Azure Spring Apps'te uygulamanızın adı. |
region |
yanlış | Azure Spring Apps örneğinizin barındırıldığı bölge. Varsayılan değer şudur: eastus . Geçerli bölgeler için bkz . Desteklenen Bölgeler. |
sku |
yanlış | Azure Spring Apps örneğinizin fiyatlandırma katmanı. Varsayılan değer, Basic yalnızca geliştirme ve test ortamları için uygun olan değeridir. |
runtime |
yanlış | Çalışma zamanı ortamı yapılandırması. Daha fazla bilgi için bkz . Yapılandırma Ayrıntıları. |
deployment |
yanlış | Dağıtım yapılandırması. Daha fazla bilgi için bkz . Yapılandırma Ayrıntıları. |
Yapılandırmaların tam listesi için eklenti başvuru belgelerine bakın. Tüm Azure Maven eklentileri ortak bir yapılandırma kümesini paylaşır. Bu yapılandırmalar için bkz . Ortak Yapılandırmalar. Azure Spring Apps'e özgü yapılandırmalar için bkz . Azure Spring Apps: Yapılandırma Ayrıntıları.
ve appName
değerlerini daha sonra kullanmak üzere bir kenara kaydettiğinizden clusterName
emin olun.
Uygulamayı dağıtım için hazırlama
Uygulamanızı Azure Spring Apps'e dağıttığınızda, yeniden yönlendirme URL'niz Azure Spring Apps'te dağıtılan uygulama örneğinizin yeniden yönlendirme URL'sine dönüşür. application.yml dosyanızdaki bu ayarları değiştirmek için aşağıdaki adımları kullanın:
Aşağıdaki örnekte gösterildiği gibi uygulamanızın src\main\resources\application.yml dosyasına gidin ve değerini
post-logout-redirect-uri
dağıtılan uygulamanızın etki alanı adıyla değiştirin. Örneğin, önceki adımda vems-identity-spring-boot-webapp
uygulama adınız için Azure Spring Apps örneğinizi seçtiysenizcluster-ms-identity-spring-boot-webapp
, şimdi değeri içinpost-logout-redirect-uri
kullanmanızhttps://cluster-ms-identity-spring-boot-webapp-ms-identity-spring-boot-webapp.azuremicroservices.io
gerekir.post-logout-redirect-uri: https://<cluster-name>-<app-name>.azuremicroservices.io
Bu dosyayı kaydettikten sonra uygulamanızı yeniden derlemek için aşağıdaki komutu kullanın:
mvn clean package
Önemli
Uygulamanın application.yml dosyası şu anda parametresindeki istemci gizli dizinizin değerini barındırıyor client-secret
. Bu değeri bu dosyada tutmak iyi bir uygulama değildir. Bunu bir Git deposuna işliyorsanız da risk alıyor olabilirsiniz.
Ek bir güvenlik adımı olarak, bu değeri Azure Key Vault'ta depolayabilir ve anahtarı uygulamanızda kullanılabilir hale getirmek için Key Vault'tan yükleyebilirsiniz.
Microsoft Entra ID uygulama kaydınızı güncelleştirme
Azure Spring Apps'te yeniden yönlendirme URI'si dağıtılan uygulamanızda değiştiğinden, Microsoft Entra Id uygulama kaydınızda yeniden yönlendirme URI'sini de değiştirmeniz gerekir. Bu değişikliği yapmak için aşağıdaki adımları kullanın:
Geliştiriciler için Microsoft kimlik platformu Uygulama kayıtları sayfasına gidin.
Uygulama kaydınızı aramak için arama kutusunu kullanın; örneğin,
java-servlet-webapp-authentication
.Adını seçerek uygulama kaydınızı açın.
Menüden Kimlik Doğrulaması'nı seçin.
Web - Yeniden Yönlendirme URI'leri bölümünde URI Ekle'yi seçin.
Uygulamanızın URI'sini doldurun; örneğin,
https://<cluster-name>-<app-name>.azuremicroservices.io/login/oauth2/code/
öğesini ekleyerek/login/oauth2/code/
.Kaydet'i seçin.
Uygulamayı dağıtma
Uygulamayı dağıtmak için aşağıdaki komutu kullanın:
mvn azure-spring-apps:deploy
Aşağıdaki listede komut etkileşimi açıklanmaktadır:
- OAuth2 oturum açma: OAuth2 protokolüne göre Azure'da oturum açmayı yetkilendirmeniz gerekir.
Komut yürütüldükten sonra, dağıtımın başarılı olduğunu aşağıdaki günlük iletilerinden görebilirsiniz:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo-default-x-xxxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:UNREGISTERED
[INFO] InstanceName:demo-default-x-xxxxxxxxx-xxxxx Status:Terminating Reason:null DiscoverStatus:UNREGISTERED
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io
Uygulamayı doğrulama
Dağıtım tamamlandıktan sonra çıkış uygulaması URL'si ile uygulamaya erişin. Herhangi bir dağıtım sorununu araştırmak üzere uygulamanın günlüklerini denetlemek için aşağıdaki adımları kullanın:
Dağıtım bölümünün Çıkışlar sayfasından çıkış uygulaması URL'sine erişin.
Azure Spring Apps örneğine Genel Bakış sayfasının gezinti bölmesinden Günlükler'i seçerek uygulamanın günlüklerini denetleyin.
Örneği keşfetme
Örneği keşfetmek için aşağıdaki adımları kullanın:
- Ekranın ortasında oturum açma veya oturum kapatma durumunun görüntülendiğine dikkat edin.
- Köşedeki bağlama duyarlı düğmeyi seçin. Bu düğme, uygulamayı ilk kez çalıştırdığınızda Oturum Aç'ı okur. Alternatif olarak, belirteç ayrıntılarının bağlantısını seçin. Bu sayfa korumalı olduğundan ve kimlik doğrulaması gerektirdiğinden, otomatik olarak oturum açma sayfasına yönlendirilirsiniz.
- Sonraki sayfada yönergeleri izleyin ve seçtiğiniz kimlik sağlayıcısının bir hesabıyla oturum açın. E-posta adresi kullanarak B2C kiracısında yerel bir hesaba kaydolmayı veya oturum açmayı da seçebilirsiniz.
- Oturum açma akışını başarıyla tamamladıktan sonra, oturum açma akışınızı tetikleyen düğmeye bağlı olarak oturum açma durumunu gösteren giriş sayfasına veya belirteç ayrıntıları sayfasına yönlendirilmelisiniz.
- Bağlama duyarlı düğmenin artık Oturumu kapat ifadesinin yer aldığından ve kullanıcı adınızı görüntülediğine dikkat edin.
- Giriş sayfasındaysanız kimlik belirtecinin çözülen taleplerinden bazılarını görmek için Kimlik Belirteci Ayrıntıları'nı seçin.
- Profilinizi düzenleyin. Görünen adınız, ikamet yeriniz ve mesleğiniz gibi ayrıntıları değiştirmek için profili düzenle'yi seçin.
- Oturumu kapatmak için köşedeki düğmeyi kullanın. Durum sayfası yeni durumu yansıtır.
Kod hakkında
Bu örnek, Kullanıcıları Azure AD B2C kiracınızda oturum açmak üzere Java için Azure AD B2C Spring Boot Starter istemci kitaplığının nasıl kullanılacağını gösterir. Örnek ayrıca Spring Oauth2 İstemcisi ve Spring Web önyükleme başlatıcılarını da kullanır. Örnek, oturum açmış kullanıcının ayrıntılarını görüntülemek için Azure AD B2C'den alınan kimlik belirtecinden gelen talepleri kullanır.
İçindekiler
Aşağıdaki tabloda örnek proje klasörünün içeriği gösterilmektedir:
Dosya/klasör | Açıklama |
---|---|
pom.xml | Uygulama bağımlılıkları. |
src/main/resources/templates/ | Kullanıcı arabirimi için Kekik Şablonları. |
src/main/resources/application.yml | Uygulama ve Microsoft Entra Boot Starter kitaplık yapılandırması. |
src/main/java/com/microsoft/azuresamples/msal4j/msidentityspringbootwebapp/ | Bu dizin ana uygulama giriş noktasını, denetleyiciyi ve yapılandırma sınıflarını içerir. |
.../MsIdentitySpringBootWebappApplication.java | Ana sınıf. |
.../SampleController.java | Uç nokta eşlemeleri olan denetleyici. |
.../SecurityConfig.java | Güvenlik yapılandırması - örneğin, hangi yolların kimlik doğrulaması gerektirdiği. |
.../Utilities.java | Yardımcı program sınıfı - örneğin, filtre kimliği belirteci talepleri. |
CHANGELOG.md | Örnekteki değişikliklerin listesi. |
CONTRIBUTING.md | Örneğe katkıda bulunma yönergeleri. |
LİSANS | Örneğin lisansı. |
Kimlik belirteci talepleri
Belirteç ayrıntılarını ayıklamak için uygulama, aşağıdaki örnekte gösterildiği gibi, aşağıdaki örnekte gösterildiği gibi bir istek eşlemesinde Spring Security'nin AuthenticationPrincipal
ve OidcUser
nesnesini kullanır. Bu uygulamanın kimlik belirteci taleplerini nasıl kullandığına ilişkin tüm ayrıntılar için Örnek Denetleyici'ye bakın.
import org.springframework.security.oauth2.core.oidc.user.OidcUser;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
//...
@GetMapping(path = "/some_path")
public String tokenDetails(@AuthenticationPrincipal OidcUser principal) {
Map<String, Object> claims = principal.getIdToken().getClaims();
}
Oturum açma ve oturum kapatma bağlantıları
Oturum açmak için uygulama, aşağıdaki örnekte gösterildiği gibi Java için Azure AD B2C Spring Boot Starter istemci kitaplığı tarafından otomatik olarak yapılandırılan Azure AD B2C oturum açma uç noktasına bir istekte bulunur:
<a class="btn btn-success" href="/oauth2/authorization/{your-sign-up-sign-in-user-flow}">Sign In</a>
Oturum kapatma için uygulama, aşağıdaki örnekte gösterildiği gibi uç noktaya bir POST isteğinde logout
bulunur:
<form action="#" th:action="@{/logout}" method="post">
<input class="btn btn-warning" type="submit" value="Sign Out" />
</form>
Kimlik doğrulamasına bağımlı kullanıcı arabirimi öğeleri
Uygulamanın kullanıcı arabirimi şablonu sayfalarında, Spring Security Thymeleaf etiketlerini kullanan aşağıdaki örnekte gösterildiği gibi, kullanıcının kimliğinin doğrulanıp doğrulanmadığına göre görüntülenecek içeriği belirlemek için bazı basit mantık vardır:
<div sec:authorize="isAuthenticated()">
this content only shows to authenticated users
</div>
<div sec:authorize="isAnonymous()">
this content only shows to not-authenticated users
</div>
WebSecurityConfigurerAdapter ile yolları koruma
Varsayılan olarak, uygulama kimlik belirteci ayrıntıları sayfasını yalnızca oturum açmış kullanıcıların erişebilmesi için korur. Uygulama, application.yml dosyasından app.protect.authenticated
özelliğinden bu yolları yapılandırıyor. Uygulamanızın özel gereksinimlerini yapılandırmak için sınıflarınızdan birini genişletebilirsiniz WebSecurityConfigurerAdapter
. Örneğin, aşağıdaki kodda gösterilen bu uygulamanın SecurityConfig sınıfına bakın:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${app.protect.authenticated}")
private String[] protectedRoutes;
private final AADB2COidcLoginConfigurer configurer;
public SecurityConfig(AADB2COidcLoginConfigurer configurer) {
this.configurer = configurer;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http.authorizeRequests()
.antMatchers(protectedRoutes).authenticated() // limit these pages to authenticated users (default: /token_details)
.antMatchers("/**").permitAll() // allow all other routes.
.and()
.apply(configurer)
;
// @formatter:off
}
}
Daha Fazla Bilgi
- Microsoft kimlik platformu (Geliştiriciler için Microsoft Entra Id)
- Microsoft Authentication Library'ye (MSAL) genel bakış
- Hızlı Başlangıç: Microsoft kimlik platformu ile uygulama kaydetme
- Hızlı Başlangıç: Web API'lerine erişmek için bir istemci uygulaması yapılandırma
- Microsoft Entra ID uygulama onayı deneyimlerini anlama
- Kullanıcı ve yönetici onaylarını anlama
- Microsoft Entra ID'de uygulama ve hizmet sorumlusu nesnelerine genel bakış
- Ulusal Bulutlar
- MSAL kod örnekleri
- Java için Microsoft Entra ID Spring Boot Starter istemci kitaplığı
- Java için Azure Active Directory B2C Spring Boot Starter istemci kitaplığı
- Java için Microsoft Kimlik Doğrulama Kitaplığı (MSAL4J)
- MSAL4J Wiki
- Kimlik belirteçleri
- Microsoft kimlik platformu'nde belirteçlere erişme
OAuth 2.0 protokollerinin bu senaryoda ve diğer senaryolarda nasıl çalıştığı hakkında daha fazla bilgi için bkz . Microsoft Entra Id için Kimlik Doğrulama Senaryoları.
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