Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Java için Microsoft Kimlik Doğrulama Kitaplığı'nı (MSAL4J) kullanarak Azure Active Directory B2C'ye (Azure AD B2C) karşı kullanıcıların kimliğini doğrulayan bir Java Tomcat uygulaması gösterilmektedir.
Not
1 Mayıs 2025 itibarıyla Azure Active Directory B2C artık yeni müşteriler için satın alınamaz. Mevcut müşteriler, en az Mayıs 2030'a kadar sağlanan destekle Azure AD B2C'yi kullanmaya devam edebilir. Yeni müşteri kimliği ve erişim yönetimi (CIAM) projeleri için bunun yerine Microsoft Entra Dış Kimlik kullanın.
Aşağıdaki diyagramda uygulamanın topolojisi gösterilmektedir:
Uygulamanın topolojisini gösteren diyagram.
Uygulama, kullanıcıların oturum açmasını sağlamak ve Azure AD B2C'den bir kimlik belirteci almak için MSAL4J kullanır. Kimlik belirteci, kullanıcının bir Azure AD B2C kiracısına karşı kimliğinin doğrulandığını kanıtlar.
Önkoşullar
- JDK sürümü 8 veya üzeri
- Maven 3
- Azure AD B2C kiracısı. Daha fazla bilgi için bkz: Öğretici: Azure Active Directory B2C kiracısı oluşturma
- Azure AD B2C kiracınızdaki bir kullanıcı hesabı.
- Tomcat 9
- Visual Studio Code
- Visual Studio Code için Azure Araçları
Öneriler
- Java / Jakarta Servlet’leri hakkında biraz bilgi sahibi olmak.
- Linux/OSX terminali 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 Blogu'nu takip edin.
Örneği kurun
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-msal-java-samples.git
cd 3-java-servlet-web-app/1-Authentication/sign-in-b2c
Alternatif olarak, ms-identity-msal-java-samples 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.
Örnek uygulamayı Azure AD B2C kiracınıza kaydetme
Örnek, test 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ına kaydetmek ve yapılandırmak için aşağıdaki bölümlerde yer alan adımları izleyin. Aksi takdirde, Örneği çalıştırın adımlarıyla 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
Kayıt olma, 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 Özel ilkeler oluşturmayı da değerlendirmelisiniz, ancak bu eğitimin kapsamı dışındadır.
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 (ms-identity-b2c-java-servlet-webapp-authentication)
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:
- Name bölümüne, uygulama kullanıcılarına gösterilmek üzere anlamlı bir uygulama adı girin - örneğin, .
- Desteklenen hesap türleri'nin altında Herhangi bir kuruluş dizinindeki hesaplar ve kişisel Microsoft hesapları (örneğin Skype, Xbox, Outlook.com) seçeneğini belirleyin.
- Yeniden Yönlendirme URI’si (isteğe bağlı) bölümünde, açılır kutuda Web seçeneğini belirleyin ve aşağıdaki yeniden yönlendirme URI’sini girin: .
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 diziler oluşturabileceğiniz ve sertifikaları yükleyebileceğiniz sayfayı açmak için gezinti bölmesinden Sertifikalar & gizli diziler seçeneğini belirleyin.
Gizli anahtarlar bölümünün altında, Yeni gizli anahtar'ı seçin.
Bir açıklama yazın - örneğin, app secret.
Sır için bir son kullanma tarihi seçin veya özel bir geçerlilik süresi belirtin. İstemci gizli anahtarları en fazla 24 aylık bir geçerlilik süresiyle sınırlıdır ve Microsoft, 12 aydan kısa bir sona erme süresi önerir. Üretim uygulamaları için istemci parolası yerine sertifika veya federe kimlik bilgisi tercih edin.
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ı (ms-identity-b2c-java-servlet-webapp-authentication) uygulama kaydınızı kullanacak şekilde yapılandırın
Uygulamayı yapılandırmak için aşağıdaki adımları kullanın:
Not
Aşağıdaki adımlarda, , veya ile aynıdır.
Projeyi IDE'nizde açın.
./src/main/resources/authentication.properties dosyasını açın.
özelliğini bulun ve mevcut değeri Azure portalındaki uygulamasının uygulama kimliği veya ile değiştirin.
özelliğini bulun ve mevcut değeri, Azure portalında uygulamasını oluştururken kaydettiğiniz değerle değiştirin.
özelliğini bulun ve mevcut application clientId değerini, bu bölümün 1. adımında içine yerleştirdiğiniz değerle değiştirin.
özelliğini bulun ve öğesinin ilk örneğini, Azure portalında uygulamasını oluşturduğunuz Azure AD B2C kiracısının adıyla değiştirin.
özelliğini bulun ve ikinci örneğini, Azure portalında uygulamasını oluşturduğunuz Azure AD B2C kiracısının adıyla değiştirin.
özelliğini bulun ve Azure portalında uygulamasını oluşturduğunuz Azure AD B2C kiracısında oluşturduğunuz kaydolma/oturum açma kullanıcı akışı ilkesinin adıyla değiştirin.
özelliğini bulun ve bunu, Azure portalında uygulamasını oluşturduğunuz Azure AD B2C kiracısında oluşturduğunuz parola sıfırlama kullanıcı akışı ilkesinin adıyla değiştirin.
özelliğini bulun ve bunu, Azure portalında uygulamasını oluşturduğunuz Azure AD B2C kiracısında oluşturduğunuz profil düzenleme kullanıcı akışı ilkesinin adıyla değiştirin.
Örneği oluşturma
Örneği Maven kullanarak derlemek için, örneğe ait pom.xml dosyasını içeren dizine gidin ve ardından aşağıdaki komutu çalıştırın:
mvn clean package
Bu komut, çeşitli uygulama sunucularında çalıştırabileceğiniz bir .war dosyası oluşturur.
Örneği çalıştırma
- Azure App Service'e dağıtın
- Yerel olarak çalıştır
Aşağıdaki bölümlerde, örneğin Azure Uygulaması Hizmetine nasıl dağıtılacağı gösterilmektedir.
Önkoşullar
Azure App Service uygulamaları 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:
- IntelliJ IDEA
- Eclipse
- Visual Studio Code
Maven eklentisini yapılandırma
Azure Uygulaması Hizmeti'ne dağıttığınızda, dağıtım otomatik olarak Azure CLI'dan Azure kimlik bilgilerinizi kullanır. Azure CLI yerel olarak yüklü değilse Maven eklentisi OAuth veya cihaz oturum açma ile kimlik doğrulaması yapar. Daha fazla bilgi için Maven eklentileriyle kimlik doğrulamasına bakın.
Eklentiyi yapılandırmak için aşağıdaki adımları kullanın:
Dağıtımı yapılandırmak için aşağıdaki komutu çalıştırın. Bu komut Azure Uygulaması Hizmeti işletim sistemini, Java sürümünü ve Tomcat sürümünü ayarlamanıza yardımcı olur.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:configYeni çalıştırma yapılandırması oluştur için Y tuşuna basın, ardından Enter tuşuna basın.
İşletim sistemi için değer tanımla için Windows için 1'e veya Linux için 2'ye basın, ardından Enter tuşuna basın.
javaVersion için bir değer tanımla seçeneğinde, Java 11 için 2 tuşuna basın, ardından Enter tuşuna basın.
webContainer için değer tanımla isteminde, Tomcat 9.0 için 4 tuşuna basın, ardından Enter tuşuna basın.
pricingTier için değer tanımla alanında, varsayılan P1v2 katmanını seçmek için Enter tuşuna basın.
Onayla için Y tuşuna basın, ardından Enter tuşuna basın.
Aşağıdaki örnekte dağıtım işleminin çıkışı gösterilmektedir:
Please confirm webapp properties
AppName : msal4j-servlet-auth-1707209552268
ResourceGroup : msal4j-servlet-auth-1707209552268-rg
Region : centralus
PricingTier : P1v2
OS : Linux
Java Version: Java 11
Web server stack: Tomcat 9.0
Deploy to slot : false
Confirm (Y/N) [Y]: [INFO] Saving configuration to pom.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.112 s
[INFO] Finished at: 2024-02-06T08:53:02Z
[INFO] ------------------------------------------------------------------------
Seçimlerinizi onayladıktan sonra eklenti, uygulamanızı Azure Uygulaması Hizmetinde ç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:
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
App Service yapılandırmalarını doğrudan pom.xml 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 | Uygulamanızın Azure kaynak grubu. |
appName |
true | Uygulamanızın adı. |
region |
yanlış | Uygulamanızın barındırıldığı bölge. Varsayılan değer 'dır. Geçerli bölgeler için bkz. Desteklenen Bölgeler. |
pricingTier |
yanlış | Uygulamanızın fiyatlandırma katmanı. Üretim iş yükü için varsayılan değer 'dır. Java geliştirme ve testi için önerilen minimum değer değeridir. Daha fazla bilgi için App Service Fiyatlandırması bölümüne bakın. |
runtime |
yanlış | Çalışma zamanı ortamının yapılandırması. Daha fazla bilgi için, Yapılandırma Ayrıntıları bölümüne bakın. |
deployment |
yanlış | Dağıtım yapılandırması. Daha fazla bilgi için, Yapılandırma Ayrıntıları bölümüne bakın. |
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 Ortak Yapılandırmalar bölümüne bakın. Azure App Service'e özgü yapılandırmalar için Azure uygulaması: Yapılandırma Ayrıntıları konusuna bakın.
Daha sonra kullanmak üzere ve değerlerini sakladığınızdan emin olun.
Uygulamayı dağıtım için hazırlama
Uygulamanızı App Service'e dağıttığınızda, yeniden yönlendirme URL'niz dağıtılan uygulama örneğinizin yeniden yönlendirme URL'sine dönüşür. Özellikler 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 authentication.properties dosyasına gidin ve değerini dağıttığınız uygulamanın etki alanı adı olarak değiştirin. Örneğin, önceki adımda uygulama adınız için seçtiyseniz, şimdi değeri için kullanmanız gerekir. Protokolü de 'den 'e değiştirdiğinizden emin olun.
# app.homePage is by default set to dev server address and app context path on the server # for apps deployed to azure, use https://your-sub-domain.azurewebsites.net app.homePage=https://<your-app-name>.azurewebsites.netBu dosyayı kaydettikten sonra uygulamanızı yeniden derlemek için aşağıdaki komutu kullanın:
mvn clean package
Önemli
Bu aynı authentication.properties dosyasında, için bir ayar vardır. Bu değeri App Service'e dağıtmak iyi bir uygulama değildir. Bu değeri kodunuzda bırakmak ve git deponuza göndermeniz de iyi bir uygulama değildir. Bu gizli değeri kodunuzdan kaldırmak için, App Service'e Dağıtma - Gizli değeri kaldırma bölümünde daha ayrıntılı yönergeler bulabilirsiniz. Bu kılavuzda, gizli değeri Key Vault'a aktarmak ve Key Vault Başvuruları'nı kullanmak için ek adımlar yer alır.
Microsoft Entra ID uygulama kaydınızı güncelleştirme
Yeniden yönlendirme URI'si dağıtılan uygulamanızda Azure Uygulaması Hizmeti'ne değiştiğinden, Microsoft Entra Id uygulama kaydınızdaki 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 platformundaki Uygulama kayıtları sayfasına gidin.
Uygulama kaydınızı aramak için arama kutusunu kullanın - örneğin, .
Adını seçerek uygulama kaydınızı açın.
Menüden Kimlik Doğrulaması'nı seçin.
WebYeniden Yönlendirme URI'leri bölümünde URI Ekle seçeneğini belirleyin.
Uygulamanızın URI'sini girin ve sonuna ekleyin; örneğin, .
Kaydet'i seçin.
Uygulamayı yayınla
Artık uygulamanızı Azure Uygulaması Hizmeti'ne dağıtmaya hazırsınız. Dağıtımı yürütmek üzere Azure ortamınızda oturum açtığınızdan emin olmak için aşağıdaki komutu kullanın:
az login
pom.xml dosyanızda tüm yapılandırma hazır olduğunda, java uygulamanızı Azure'a dağıtmak için aşağıdaki komutu kullanabilirsiniz:
mvn package azure-webapp:deploy
Dağıtım tamamlandıktan sonra uygulamanız adresinde hazırdır. URL’yi yerel web tarayıcınızda açın; burada uygulamasının başlangıç sayfasını görmelisiniz.
Örneği keşfedin
Ö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üğmenin üzerinde, uygulamayı ilk kez çalıştırdığınızda Oturum Aç yazar.
- Sonraki sayfada yönergeleri izleyin ve seçtiğiniz kimlik sağlayıcısının bir hesabıyla oturum açın.
- Bağlama duyarlı düğmenin artık Oturumu kapat yazdığını ve kullanıcı adınızı görüntülediğini fark edin.
- ID belirtecinin çözümlenmiş claim’lerinden bazılarını görmek için ID Token Details seçeneğini belirleyin.
- Profilinizi düzenleme seçeneğiniz de vardır. Görünen adınız, ikamet yeriniz ve mesleğiniz gibi ayrıntıları düzenlemek için bağlantıyı seçin.
- Oturumu kapatmak için köşedeki düğmeyi kullanın.
- Oturumu kapattıktan sonra, belirteç ayrıntıları sayfası için aşağıdaki URL'ye gidin: . Burada, uygulamanın ID belirteci claim’leri yerine bir hatasını nasıl görüntülediğini gözlemleyebilirsiniz.
Kod hakkında
Bu örnekte, Azure AD B2C kiracınızda kullanıcılarla oturum açmak için MSAL4J'nin nasıl kullanılacağı gösterilmektedir.
İçindekiler
Aşağıdaki tabloda örnek proje klasörünün içeriği gösterilmektedir:
| Dosya/klasör | Açıklama |
|---|---|
| AuthHelper.java | Kimlik doğrulaması için yardımcı işlevler. |
| Config.java | Başlangıçta çalışır ve özellik okuyucusunu ve günlükleyiciyi yapılandırır. |
| authentication.properties | Microsoft Entra ID ve program yapılandırması. |
| AuthenticationFilter.java | Korumalı kaynaklara yapılan kimliği doğrulanmamış istekleri 401 sayfasına yönlendirir. |
| MsalAuthSession | Bir ile örnek oluşturuldu. MSAL ile ilgili tüm oturum özniteliklerini oturum özniteliğinde depolar. |
| *Servlet.java | Kullanılabilir tüm uç noktalar, adları Servlet.ile biten Java sınıflarında tanımlanır. |
| CHANGELOG.md | Örnekteki değişikliklerin listesi. |
| CONTRIBUTING.md | Örneğe katkıda bulunma yönergeleri. |
| LİSANS | Örnek için lisans. |
ConfidentialClientApplication
Aşağıdaki örnekte gösterildiği gibi, AuthHelper.java dosyasında bir örneği oluşturulur. Bu nesne, Azure AD B2C yetkilendirme URL'sini oluşturmaya yardımcı olur ve ayrıca bir erişim belirteci için kimlik doğrulama belirtecinin değişimine yardımcı olur.
IClientSecret secret = ClientCredentialFactory.createFromSecret(SECRET);
confClientInstance = ConfidentialClientApplication
.builder(CLIENT_ID, secret)
.b2cAuthority(AUTHORITY + policy)
.build();
Örnek oluşturma için aşağıdaki parametreler kullanılır:
- Uygulamanın İstemci Kimliği.
- Gizli İstemci Uygulamaları için gerekli olan istemci sırrı.
- Kaydolma, oturum açma, profil düzenleme veya parola sıfırlama için uygun ile birleştirilmiş Azure AD B2C yetki URL’si.
Bu örnekte, bu değerler Config.java dosyasındaki bir özellik okuyucu kullanılarak authentication.properties dosyasından okunur.
Adım adım gözden geçirme
Aşağıdaki adımlar, uygulamanın işlevselliğine ilişkin bir kılavuz sağlar:
Oturum açma işleminin ilk adımı, Azure Active Directory B2C kiracınız için uç noktasına bir istek göndermektir. MSAL4J örneği, bir yetkilendirme isteği URL’si oluşturmak için kullanılır ve aşağıdaki örnekte gösterildiği gibi uygulama tarayıcıyı bu URL’ye yönlendirir:
final ConfidentialClientApplication client = getConfidentialClientInstance(policy); final AuthorizationRequestUrlParameters parameters = AuthorizationRequestUrlParameters .builder(REDIRECT_URI, Collections.singleton(SCOPES)).responseMode(ResponseMode.QUERY) .prompt(Prompt.SELECT_ACCOUNT).state(state).nonce(nonce).build(); final String redirectUrl = client.getAuthorizationRequestUrl(parameters).toString(); Config.logger.log(Level.INFO, "Redirecting user to {0}", redirectUrl); resp.setStatus(302); resp.sendRedirect(redirectUrl);Aşağıdaki listede bu kodun özellikleri açıklanmaktadır:
: bir AuthorizationRequestUrl oluşturmak için ayarlanması gereken parametreler.
: Azure AD B2C'nin, kullanıcı kimlik bilgilerini topladıktan sonra tarayıcıyı yetkilendirme koduyla birlikte yönlendirdiği yerdir.
: Kapsamlar, uygulama tarafından talep edilen izinlerdir.
Normalde, kimlik belirteci yanıtı almak için üç kapsam yeterli olurdu. Ancak MSAL4J, Azure AD B2C'den gelen tüm yanıtların da erişim belirteci içermesini gerektirir.
Azure AD B2C'nin bir erişim belirtecinin yanı sıra kimlik belirteci dağıtabilmesi için isteğin ek bir kaynak kapsamı içermesi gerekir. Bu uygulama aslında bir dış kaynak kapsamı gerektirmediğinden, erişim belirteci almak için dördüncü kapsam olarak kendi istemci kimliğini ekler.
Uygulama tarafından istenen kapsamların tam listesini authentication.properties dosyasında bulabilirsiniz.
: Azure AD B2C, yanıtı bir HTTP POST isteğinde form parametreleri olarak veya bir HTTP GET isteğinde sorgu dizesi parametreleri olarak döndürebilir.
: Azure AD B2C, kullanıcıdan kimlik doğrulaması gerçekleştireceği hesabı seçmesini istemelidir.
: Uygulamanın her belirteç isteğinde oturumda ayarladığı ve ilgili Azure AD B2C yeniden yönlendirme geri çağrısı alındıktan sonra yok edilen benzersiz bir değişken. Durum değişkeni, istekte bulunan Azure AD B2C isteklerinin gerçekten bu uygulamadan ve bu oturumdan kaynaklanan Azure AD B2C yetkilendirme istekleri olduğunu güvence altına alarak CSRF saldırılarını önler. Bu işlem AADRedirectServlet.java dosyasında yapılır.
: Uygulama tarafından her belirteç isteğinde oturumda ayarlanan ve ilgili belirteç alındıktan sonra silinen benzersiz bir değişken. Bu nonce, Azure AD B2C tarafından verilen sonuç belirteçlerine aktarılır; böylece belirteç tekrar oynatma saldırısının gerçekleşmesi önlenir.
Kullanıcıya Azure Active Directory B2C tarafından bir oturum açma istemi sunulur. Oturum açma girişimi başarılı olursa, kullanıcının tarayıcısı uygulamanın yeniden yönlendirme uç noktasına yönlendirilir. Bu uç noktaya yapılan geçerli bir istek, bir yetkilendirme kodu içerir.
örneği daha sonra, aşağıdaki örnekte gösterildiği gibi, bu yetkilendirme kodunu Azure Active Directory B2C'den alınan bir kimlik belirteci ve erişim belirteci ile değiştirir:
final AuthorizationCodeParameters authParams = AuthorizationCodeParameters .builder(authCode, new URI(REDIRECT_URI)) .scopes(Collections.singleton(SCOPES)).build(); final ConfidentialClientApplication client = AuthHelper .getConfidentialClientInstance(policy); final Future<IAuthenticationResult> future = client.acquireToken(authParams); final IAuthenticationResult result = future.get();Aşağıdaki listede bu kodun özellikleri açıklanmaktadır:
- : Kimlik belirteci ve/veya erişim belirteci almak için Yetkilendirme Kodunu kullanmak üzere ayarlanması gereken parametreler.
- : Yeniden yönlendirme uç noktasında alınan yetkilendirme kodu.
- : Önceki adımda kullanılan yönlendirme URI’si yeniden iletilmelidir.
- : Önceki adımda kullanılan kapsamlar tekrar iletilmelidir.
başarılı olursa, belirteç claim’leri ayıklanır ve nonce claim’i, aşağıdaki örnekte gösterildiği gibi, oturumda depolanan nonce’a göre doğrulanır:
parseJWTClaimsSetAndStoreResultInSession(msalAuth, result, serializedTokenCache); validateNonce(msalAuth) processSuccessfulAuthentication(msalAuth);Nonce başarıyla doğrulanırsa, kimlik doğrulama durumu, aşağıdaki örnekte gösterildiği gibi, sınıfının sağladığı yöntemlerden yararlanılarak sunucu taraflı bir oturumda saklanır:
msalAuth.setAuthenticated(true); msalAuth.setUsername(msalAuth.getIdTokenClaims().get("name"));
Daha Fazla Bilgi
- Azure Active Directory B2C nedir?
- Active Directory B2C'de kullanılabilecek uygulama türleri
- Azure Active Directory B2C için öneriler ve en iyi uygulamalar
- Azure AD B2C oturumu
- Java için Microsoft Kimlik Doğrulama Kitaplığı (MSAL)
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ı.