Aracılığıyla paylaş


Azure Active Directory B2C ile MSAL4J kullanarak Java Tomcat uygulamaları için oturum açmayı etkinleştirme

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.

Aşağıdaki diyagramda uygulamanın topolojisi gösterilmektedir:

Diagram that shows the topology of the app.Uygulamanın topolojisini gösteren diyagram.

Uygulama, kullanıcılarda oturum açmak ve Azure AD B2C'den 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

Öneriler

Ö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-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ırma 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:

  1. Azure Portal’ında oturum açın.

  2. 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 özel ilkeler oluşturmayı da göz önünde bulundurmalısınız, ancak bu, bu öğreticinin 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:

  1. Azure portalına gidin ve Azure AD B2C'yi seçin.

  2. Gezinti bölmesinde Uygulama Kayıtları'nı ve ardından Yeni kayıt'ı seçin.

  3. 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, ms-identity-b2c-java-servlet-webapp-authentication.
    • 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, birleşik giriş kutusunda Web'i seçin ve aşağıdaki yeniden yönlendirme URI'sini girin: http://localhost:8080/ms-identity-b2c-java-servlet-webapp-authentication/auth_redirect.
  4. Uygulamayı kaydetmek için Kaydet'i seçin.

  5. 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.

  6. Yaptığınız değişiklikleri kaydetmek için Kaydet'i seçin.

  7. Uygulamanın kayıt sayfasında, gizli dizi oluşturabileceğiniz ve sertifikaları karşıya yükleyebileceğiniz sayfayı açmak için gezinti bölmesinde Sertifikalar ve gizli diziler'i seçin.

  8. Gizli anahtarlar bölümünün altında, Yeni gizli anahtar'ı seçin.

  9. Uygulama gizli dizisi gibi bir açıklama yazın.

  10. Kullanılabilir sürelerden birini seçin: 1 yıl içinde, 2 yıl içinde veya Hiçbir Zaman Dolmaz.

  11. Ekle'yi seçin. Oluşturulan değer görüntülenir.

  12. 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 ClientIDAppIdile Application ID aynıdır.

  1. Projeyi IDE'nizde açın.

  2. ./src/main/resources/authentication.properties dosyasını açın.

  3. aad.clientId özelliğini bulun ve mevcut değeri Azure portalından uygulama kimliğiyle veya clientIdms-identity-b2c-java-servlet-webapp-authentication uygulamanın kimliğiyle değiştirin.

  4. aad.secret özelliğini bulun ve mevcut değeri Azure portalından uygulamanın oluşturulması ms-identity-b2c-java-servlet-webapp-authentication sırasında kaydettiğiniz değerle değiştirin.

  5. aad.scopes özelliğini bulun ve mevcut application clientId değerini bu bölümün 1. adımında içine yerleştirdiğiniz aad.clientId değerle değiştirin.

  6. aad.authority özelliğini bulun ve ilk örneğini fabrikamb2c Azure portalında uygulamayı oluşturduğunuz Azure AD B2C kiracısının ms-identity-b2c-java-servlet-webapp-authentication adıyla değiştirin.

  7. aad.authority özelliğini bulun ve ikinci örneğini fabrikamb2c Azure portalında uygulamayı oluşturduğunuz Azure AD B2C kiracısının ms-identity-b2c-java-servlet-webapp-authentication adıyla değiştirin.

  8. aad.signInPolicy ö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ışı ilkesinin ms-identity-b2c-java-servlet-webapp-authentication adıyla değiştirin.

  9. aad.passwordResetPolicy özelliğini bulun ve azure portalında uygulamayı oluşturduğunuz ms-identity-b2c-java-servlet-webapp-authentication Azure AD B2C kiracısında oluşturduğunuz parola sıfırlama kullanıcı akışı ilkesinin adıyla değiştirin.

  10. aad.editProfilePolicy ö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ışı ilkesinin ms-identity-b2c-java-servlet-webapp-authentication adıyla değiştirin.

Örneği oluşturma

Maven kullanarak örneği oluşturmak için, örneğin pom.xml dosyasını içeren dizine gidin ve 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

Aşağıdaki bölümlerde, örneğin Azure Uygulaması Hizmetine nasıl dağıtılacağı gösterilmektedir.

Önkoşullar

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 bkz . Maven eklentileriyle kimlik doğrulaması.

Eklentiyi yapılandırmak için aşağıdaki adımları kullanın:

  1. 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:config
    
  2. Yeni çalıştırma yapılandırması oluştur için Y tuşuna basın ve ardından Enter tuşuna basın.

  3. İşletim sistemi için değer tanımla için Windows için 1'e veya Linux için 2'ye basın ve ardından Enter tuşuna basın.

  4. JavaVersion için değer tanımla için Java 11 için 2 tuşuna basın ve ardından Enter tuşuna basın.

  5. webContainer için değer tanımla için Tomcat 9.0 için 4 tuşuna basın ve ardından Enter tuşuna basın.

  6. pricingTier için değer tanımla alanında, varsayılan P1v2 katmanını seçmek için Enter tuşuna basın.

  7. Onayla için Y tuşuna basın ve 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 şudur: centralus. Geçerli bölgeler için bkz . Desteklenen Bölgeler.
pricingTier yanlış Uygulamanızın fiyatlandırma katmanı. Varsayılan değer bir P1v2 üretim iş yükü içindir. Java geliştirme ve test için önerilen en düşük değerdir B2. Daha fazla bilgi için bkz . App Service Fiyatlandırması.
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 Uygulaması Hizmetine özgü yapılandırmalar için bkz. Azure uygulaması: Yapılandırma Ayrıntıları.

ve resourceGroup değerlerini daha sonra kullanmak üzere bir kenara kaydettiğinizden appName 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:

  1. Aşağıdaki örnekte gösterildiği gibi uygulamanızın authentication.properties dosyasına gidin ve değerini app.homePage dağıtılan uygulamanızın etki alanı adıyla değiştirin. Örneğin, önceki adımda uygulama adınızı seçtiysenizexample-domain, şimdi değeri için app.homePage kullanmanız https://example-domain.azurewebsites.net gerekir. Protokolü httphttpsolarak da 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.net
    
  2. Bu dosyayı kaydettikten sonra uygulamanızı yeniden derlemek için aşağıdaki komutu kullanın:

    mvn clean package
    

Önemli

Aynı authentication.properties dosyasında, için bir ayarınız aad.secretvardı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 dizi değerini kodunuzdan kaldırmak için App Service'e Dağıtma - Gizli diziyi kaldırma bölümünde daha ayrıntılı yönergeler bulabilirsiniz. Bu kılavuz, gizli dizi değerini Key Vault'a göndermek ve Key Vault Başvurularını kullanmak için ek adımlar ekler.

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:

  1. Geliştiriciler için Microsoft kimlik platformu Uygulama kayıtları sayfasına gidin.

  2. Uygulama kaydınızı aramak için arama kutusunu kullanın; örneğin, java-servlet-webapp-authentication.

  3. Adını seçerek uygulama kaydınızı açın.

  4. Menüden Kimlik Doğrulaması'nı seçin.

  5. Web - Yeniden Yönlendirme URI'leri bölümünde URI Ekle'yi seçin.

  6. Uygulamanızın URI'sini doldurun; örneğin, https://<your-app-name>.azurewebsites.net/auth/redirectöğesini ekleyerek /auth/redirect .

  7. Kaydet'i seçin.

Uygulamayı dağıtma

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 konumunda http://<your-app-name>.azurewebsites.net/hazırdır. Uygulamanın başlangıç sayfasını görmeniz gereken yerel web tarayıcınızla URL'yi msal4j-servlet-auth açın.

Örneği keşfetme

Örneği keşfetmek için aşağıdaki adımları kullanın:

  1. Ekranın ortasında oturum açma veya oturum kapatma durumunun görüntülendiğine dikkat edin.
  2. Köşedeki bağlama duyarlı düğmeyi seçin. Bu düğme, uygulamayı ilk kez çalıştırdığınızda Oturum Aç'ı okur.
  3. Sonraki sayfada yönergeleri izleyin ve seçtiğiniz kimlik sağlayıcısının bir hesabıyla oturum açın.
  4. 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.
  5. Kimlik belirtecinin çözülen taleplerinden bazılarını görmek için Kimlik Belirteci Ayrıntıları'nı seçin.
  6. 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.
  7. Oturumu kapatmak için köşedeki düğmeyi kullanın.
  8. Oturumu kapatdıktan sonra, belirteç ayrıntıları sayfası için aşağıdaki URL'ye gidin: http://localhost:8080/ms-identity-b2c-java-servlet-webapp-authentication/auth_token_details. Burada, uygulamanın kimlik belirteci talepleri yerine nasıl bir 401: unauthorized hata görüntülediğine bakabilirsiniz.

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ıştırılır ve özellik okuyucu ve günlükçü yapılandırılır.
authentication.properties Microsoft Entra Kimliği ve program yapılandırması.
AuthenticationFilter.java Kimliği doğrulanmamış istekleri korumalı kaynaklara 401 sayfasına yönlendirir.
MsalAuthSession ile örneği oluşturma HttpSession. 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 Örneğin lisansı.

ConfidentialClientApplication

ConfidentialClientApplication Aşağıdaki örnekte gösterildiği gibi AuthHelper.java dosyasında bir örnek 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 bir gereksinim olan gizli dizi.
  • Azure AD B2C Yetkilisi kaydolma, oturum açma, profil düzenleme veya parola sıfırlama için uygun UserFlowPolicy olanla birleştirilir.

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:

  1. Oturum açma işleminin ilk adımı, Azure Active Directory B2C kiracınız için uç noktaya istek /authorize göndermektir. MSAL4J ConfidentialClientApplication örneği, 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:

    • AuthorizationRequestUrlParameters: AuthorizationRequestUrl oluşturmak için ayarlanması gereken parametreler.

    • REDIRECT_URI: Burada Azure AD B2C, kullanıcı kimlik bilgilerini topladıktan sonra tarayıcıyı kimlik doğrulama koduyla birlikte yeniden yönlendirir.

    • SCOPES: Kapsamlar , uygulama tarafından istenen izinlerdir.

      Normalde, üç kapsam openid profile offline_access kimlik belirteci yanıtı almak için yeterli olur. 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.

    • ResponseMode.QUERY: 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.

    • Prompt.SELECT_ACCOUNT: Azure AD B2C, kullanıcıdan kimlik doğrulaması yapmak istediği hesabı seçmesini istemelidir.

    • state: Uygulama tarafından her belirteç isteğinde oturuma ayarlanan ve ilgili Azure AD B2C yeniden yönlendirme geri çağrısını aldıktan sonra yok edilen benzersiz bir değişken. Durum değişkeni, öğesine yönelik Azure AD B2C isteklerinin /auth_redirect endpoint aslında bu uygulamadan ve bu oturumdan kaynaklanan Azure AD B2C yetkilendirme isteklerinden olmasını sağlar ve böylece CSRF saldırılarını önler. Bu işlem AADRedirectServlet.java dosyasında yapılır.

    • nonce: Uygulama tarafından her belirteç isteğinde oturuma ayarlanan ve karşılık gelen belirteci aldıktan sonra yok edilen benzersiz bir değişken. Bu nonce, Azure AD B2C tarafından dağıtılan sonuçta elde edilen belirteçlere atılarak belirteç yeniden yürütme saldırısının gerçekleşmediğinden emin olur.

  2. 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 yönelik geçerli bir istek bir yetkilendirme kodu içerir.

  3. Ardından ConfidentialClientApplication örnek, aşağıdaki örnekte gösterildiği gibi bu yetkilendirme kodunu bir kimlik belirteci ve Azure Active Directory B2C'den 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:

    • AuthorizationCodeParameters: Kimlik ve/veya erişim belirteci için Yetkilendirme Kodunu değiştirmek için ayarlanması gereken parametreler.
    • authCode: Yeniden yönlendirme uç noktasında alınan yetkilendirme kodu.
    • REDIRECT_URI: Önceki adımda kullanılan yeniden yönlendirme URI'sinin yeniden geçirilmesi gerekir.
    • SCOPES: Önceki adımda kullanılan kapsamlar yeniden geçirilmelidir.
  4. acquireToken Başarılı olursa, belirteç talepleri ayıklanır ve aşağıdaki örnekte gösterildiği gibi nonce talebi oturumda depolanan nonce ile doğrulanır:

    parseJWTClaimsSetAndStoreResultInSession(msalAuth, result, serializedTokenCache);
    validateNonce(msalAuth)
    processSuccessfulAuthentication(msalAuth);
    
  5. Nonce başarıyla doğrulanırsa, kimlik doğrulama durumu, aşağıdaki örnekte gösterildiği gibi sınıfı tarafından kullanıma sunulan yöntemlerden yararlanarak MsalAuthSession sunucu tarafı oturumuna alınır:

    msalAuth.setAuthenticated(true);
    msalAuth.setUsername(msalAuth.getIdTokenClaims().get("name"));
    

Daha Fazla Bilgi

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ı.