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.
Önemli
1 Mayıs 2025 tarihinden itibaren Azure AD B2C artık yeni müşteriler için satın alınamayacak. SSS bölümünden daha fazla bilgi edinebilirsiniz.
Bu makalede , .NET için Açık Web Arabirimi'ni (OWIN) uygulayan web API'lerinde birden çok belirteç verene yönelik desteği etkinleştirmeye yönelik bir teknik açıklanmaktadır. Azure Active Directory B2C (Azure AD B2C) API'lerini ve uygulamalarını bir etki alanından diğerine geçirirken birden çok belirteç uç noktasını desteklemek yararlı olur. Örneğin, login.microsoftonline.com'danb2clogin.com'a veya özel bir etki alanına.
API'nize b2clogin.com, login.microsoftonline.com veya özel bir etki alanı tarafından verilen belirteçleri kabul etme desteği ekleyerek, login.microsoftonline.com tarafından verilen belirteçler için API desteğini kaldırmadan önce web uygulamalarınızı aşamalı olarak taşıyabilirsiniz.
Aşağıdaki bölümlerde , Microsoft OWIN ara yazılım bileşenlerini (Katana) kullanan bir web API'sinde birden çok verenin nasıl etkinleştirileceğine ilişkin bir örnek verilmiştir. Kod örnekleri Microsoft OWIN ara yazılımına özgü olsa da, genel teknik diğer OWIN kitaplıkları için geçerli olmalıdır.
Önkoşullar
Bu makaledeki adımlara devam etmeden önce aşağıdaki Azure AD B2C kaynaklarının yerinde olması gerekir:
Belirteç veren uç noktalarını edinin
Öncelikle API'nizde desteklemek istediğiniz her veren için belirteç veren uç nokta URI'lerini almanız gerekir. Azure AD B2C kiracınız tarafından desteklenen b2clogin.com ve login.microsoftonline.com uç noktalarını almak için Azure portalında aşağıdaki yordamı kullanın.
Mevcut kullanıcı akışlarınızdan birini seçerek başlayın:
Azure portalında Azure AD B2C kiracınıza gidin
İlkeler altında Kullanıcı akışları (ilkeler) seçeneğini seçin
Var olan bir ilkeyi seçin, örneğin B2C_1_signupsignin1 ve ardından Kullanıcı akışını çalıştır'ı seçin
Sayfanın üst kısmındaki Kullanıcı akışını çalıştır başlığı altında, köprüyü seçerek bu kullanıcı akışının OpenID Connect bulma uç noktasına gidin.
Tarayıcınızda açılan sayfada değeri kaydedin
issuer, örneğin:https://your-b2c-tenant.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/Diğer etki alanını seçmek için Etki alanı seçin açılan listesini kullanın, ardından önceki iki adımı bir kez daha gerçekleştirin ve değerini kaydedin
issuer.
Şimdi kaydedilmiş aşağıdakine benzer iki URI'niz olmalıdır:
https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
https://your-b2c-tenant.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/
Özel ilkeler
Kullanıcı akışları yerine özel ilkeleriniz varsa, veren URI'leri almak için benzer bir işlem kullanabilirsiniz.
- Azure AD B2C kiracınıza erişin
- Kimlik Deneyimi Çerçevesi'ne tıklayın
- Bağlı taraf ilkelerinizden birini seçin, örneğin B2C_1A_signup_signin
- Alan adı seç açılır listesini kullanarak bir etki alanı seçin, örneğin yourtenant.b2clogin.com
- OpenID Connect bulma uç noktası altında görüntülenen köprüyü seçin
-
issuerdeğerini kaydedin - Diğer etki alanı için 4-6 arası adımları gerçekleştirin, örneğin login.microsoftonline.com
Örnek kodunu alma
Artık her iki belirteç uç noktası URI'sine sahip olduğunuza göre, her iki uç noktanın da geçerli yetkilendiriciler olduğunu belirtmek için kodunuzu güncelleştirmeniz gerekir. Bir örneği izleyip örnek uygulamayı indirin veya kopyalayın, ardından örneği her iki uç noktayı da geçerli verenler olarak destekleyecek şekilde güncelleştirin.
Arşivi indirin: active-directory-b2c-dotnet-webapp-and-webapi-master.zip
git clone https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi.git
Web API'sinde birden çok vereni etkinleştirme
Bu bölümde, her iki jeton veren uç noktasının da geçerli olduğunu belirtmek için kodu güncelleştirirsiniz.
Visual Studio'da B2C-WebAPI-DotNet.sln çözümünü açma
TaskService projesinde, düzenleyicinizde TaskService\App_Start\Startup.Auth.cs dosyasını açın
Dosyanın en üstüne aşağıdaki
usingyönergeyi ekleyin:using System.Collections.Generic;ValidIssuersözelliğiniTokenValidationParameterstanıma ekleyin ve önceki bölümde kaydettiğiniz her iki URI'yi de belirtin:TokenValidationParameters tvps = new TokenValidationParameters { // Accept only those tokens where the audience of the token is equal to the client ID of this app ValidAudience = ClientId, AuthenticationType = Startup.DefaultPolicy, ValidIssuers = new List<string> { "https://login.microsoftonline.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/", "https://{your-b2c-tenant}.b2clogin.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/"//, //"https://your-custom-domain/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/v2.0/" } };
TokenValidationParametersMSAL.NET tarafından sağlanır ve Startup.Auth.cs kodun sonraki bölümünde OWIN ara yazılımı tarafından tüketilir. Birden çok geçerli veren belirtildiğinde, OWIN uygulama işlem hattı her iki belirteç uç noktasının da geçerli verenler olduğunu fark eder.
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
// This SecurityTokenProvider fetches the Azure AD B2C metadata & from the OpenID Connect metadata endpoint
AccessTokenFormat = new JwtFormat(tvps, new tCachingSecurityTokenProvider(String.Format(AadInstance, ultPolicy)))
});
Daha önce belirtildiği gibi, diğer OWIN kitaplıkları genellikle birden çok sağlayıcıyı desteklemek için benzer bir özellik sağlar. Her kitaplık için örnek sağlamak bu makalenin kapsamı dışında olsa da, çoğu kitaplık için benzer bir teknik kullanabilirsiniz.
Web uygulamasında uç noktaları değiştirme
Her iki URI de web API'niz tarafından desteklendiği için artık web uygulamanızı b2clogin.com uç noktasından belirteçleri alacak şekilde güncelleştirmeniz gerekir.
Örneğin, TaskWebApp projesinin TaskWebApp\ida:AadInstance dosyasındaki değeri değiştirerek örnek web uygulamasını yeni uç noktayı kullanacak şekilde yapılandırabilirsiniz.
ida:AadInstance değerini, TaskWebApp'taki Web.config içinde {your-b2c-tenant-name}.b2clogin.com yerine login.microsoftonline.com'ye başvuracak şekilde değiştirin.
Önce:
<!-- Old value -->
<add key="ida:AadInstance" value="https://login.microsoftonline.com/tfp/{0}/{1}" />
"Sonra, {your-b2c-tenant} değerini B2C kiracınızın adıyla değiştirin:"
<!-- New value -->
<add key="ida:AadInstance" value="https://{your-b2c-tenant}.b2clogin.com/tfp/{0}/{1}" />
Web uygulamasının yürütülmesi sırasında uç nokta dizeleri oluşturulduğunda, belirteçler istediğinde b2clogin.com tabanlı uç noktalar kullanılır.
Özel etki alanı kullanılırken:
<!-- Custom domain -->
<add key="ida:AadInstance" value="https://custom-domain/{0}/{1}" />
Sonraki Adımlar
Bu makalede, birden çok veren uç noktasından belirteçleri kabul etmek için Microsoft OWIN ara yazılımını (Katana) uygulayan bir web API'sini yapılandırma yöntemi sunulmuştur. Fark edebileceğiniz gibi, hem TaskService hem de TaskWebApp projelerinin Web.Config dosyalarında, bu projeleri kendi kiracınızda oluşturmak ve çalıştırmak istiyorsanız değiştirilmesi gereken birkaç dize daha vardır. Projelerin nasıl çalıştığını görmek istiyorsanız, projeleri uygun şekilde değiştirebilirsiniz, ancak bunu yapmak için tam bir adım adım bu makalenin kapsamı dışındadır.
Azure AD B2C tarafından yayılan farklı güvenlik belirteçleri türleri hakkında daha fazla bilgi için bkz. Azure Active Directory B2C'de belirteçlere genel bakış.