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, kendi ASP.NET web uygulamanıza Azure Active Directory B2C (Azure AD B2C) kimlik doğrulaması ekleme adımları gösterilmektedir. OpenID Connect protokolunu kullanan ASP.NET Core ara yazılımı ile ASP.NET Core web uygulaması oluşturmayı öğrenin.
Örnek web uygulamasını kendi web uygulamanızla değiştirerek örnek web uygulamasında kimlik doğrulamasını yapılandırma ile birlikte bu makaleyi kullanın.
Önkoşullar
Önkoşulları ve tümleştirme yönergelerini gözden geçirmek için bkz. Örnek bir web uygulamasında kimlik doğrulamasını yapılandırma.
1. Adım: Web uygulaması projesi oluşturma
Mevcut bir ASP.NET model-view-controller (MVC) web uygulaması projesi kullanabilir veya yeni bir proje oluşturabilirsiniz. Yeni proje oluşturmak için bir komut kabuğu açın ve aşağıdaki komutu girin:
dotnet new mvc -o mywebapp
Yukarıdaki komut aşağıdakileri yapar:
- Yeni bir MVC web uygulaması oluşturur.
- parametresi,
-o mywebapp
uygulamanın kaynak dosyalarıyla mywebapp adlı bir dizin oluşturur.
2. Adım: Kimlik doğrulama kitaplıklarını ekleme
Web uygulamanıza Azure AD B2C kimlik doğrulaması ve yetkilendirme desteği eklemeyi basitleştiren bir ASP.NET Core kitaplıkları kümesi olan Microsoft Identity Web kitaplığını ekleyin. Microsoft Identity Web kitaplığı, tanımlama bilgisi tabanlı kimlik doğrulaması ile kimlik doğrulama işlem hattını ayarlar. HTTP kimlik doğrulama iletileri, belirteç doğrulama, talep ayıklama ve daha fazlasını gönderme ve alma işlemleriyle ilgilenir.
Microsoft Identity Web kitaplığını eklemek için aşağıdaki komutları çalıştırarak paketleri yükleyin:
dotnet add package Microsoft.Identity.Web
dotnet add package Microsoft.Identity.Web.UI
3. Adım: Kimlik doğrulama kitaplıklarını başlatma
Microsoft Identity Web ara yazılımı, barındırma işlemi başladığında çalışan bir başlangıç sınıfı kullanır. Bu adımda, kimlik doğrulama kitaplıklarını başlatmak için gerekli kodu eklersiniz.
Startup.cs açın ve sınıfın başına aşağıdaki using
bildirimleri ekleyin:
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
Microsoft Identity Web, web uygulamanızı korumak için tanımlama bilgisi tabanlı kimlik doğrulaması kullandığından, aşağıdaki kod SameSite tanımlama bilgisi ayarlarını ayarlar. Ardından uygulama ayarlarını okur AzureAdB2C
ve ara yazılım denetleyicisini görünümüyle başlatır.
ConfigureServices(IServiceCollection services)
işlevini aşağıdaki kod parçacığıyla değiştirin:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.Unspecified;
// Handling SameSite cookie according to https://learn.microsoft.com/aspnet/core/security/samesite?view=aspnetcore-3.1
options.HandleSameSiteCookieCompatibility();
});
// Configuration to sign-in users with Azure AD B2C
services.AddMicrosoftIdentityWebAppAuthentication(Configuration, "AzureAdB2C");
services.AddControllersWithViews()
.AddMicrosoftIdentityUI();
services.AddRazorPages();
//Configuring appsettings section AzureAdB2C, into IOptions
services.AddOptions();
services.Configure<OpenIdConnectOptions>(Configuration.GetSection("AzureAdB2C"));
}
Aşağıdaki kod tanımlama bilgisi ilkesini ekler ve kimlik doğrulama modelini kullanır.
Configure
işlevini aşağıdaki kod parçacığıyla değiştirin:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
// Add the Microsoft Identity Web cookie policy
app.UseCookiePolicy();
app.UseRouting();
// Add the ASP.NET Core authentication service
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
// Add endpoints for Razor pages
endpoints.MapRazorPages();
});
};
4. Adım: Kullanıcı arabirimi öğelerini ekleme
Kullanıcı arabirimi öğeleri eklemek için, kullanıcıların oturum açıp açmadığını denetlemek için mantık içeren kısmi bir görünüm kullanın. Kullanıcılar oturum açmadıysa, kısmi görünüm oturum açma düğmesini işler. Oturum açmışlarsa kullanıcının görünen adını ve oturum kapatma düğmesini gösterir.
/Views/Shared klasörünün içinde aşağıdaki kod parçacığını içeren yeni bir dosya (_LoginPartial.cshtml) oluşturun:
@using System.Security.Principal
@if (User.Identity.IsAuthenticated)
{
<ul class="nav navbar-nav navbar-right">
<li class="navbar-text">Hello @User.Identity.Name</li>
<!-- The Account controller is not defined in this project. Instead, it is part of Microsoft.Identity.Web.UI nuget package and
it defines some well known actions such as SignUp/In, SignOut and EditProfile-->
<li class="navbar-btn">
<form method="get" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="EditProfile">
<button type="submit" class="btn btn-primary" style="margin-right:5px">Edit Profile</button>
</form>
</li>
<li class="navbar-btn">
<form method="get" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">
<button type="submit" class="btn btn-primary">Sign Out</button>
</form>
</li>
</ul>
}
else
{
<ul class="nav navbar-nav navbar-right">
<li class="navbar-btn">
<form method="get" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">
<button type="submit" class="btn btn-primary">Sign Up/In</button>
</form>
</li>
</ul>
}
/Views/Shared_Layout.cshtml dosyanızı, eklediğiniz _LoginPartial.cshtml dosyasını içerecek şekilde değiştirin. _Layout.cshtml dosyası, kullanıcılara sayfadan sayfaya doğru tutarlı bir deneyim sunan yaygın bir düzendir. Düzen, uygulama üst bilgisi ve alt bilgisi gibi yaygın kullanıcı arabirimi öğelerini içerir.
Uyarı
Çalıştırdığınız .NET Core sürümüne ve mevcut bir uygulamaya oturum açma ekleyip eklemediğinize bağlı olarak, kullanıcı arabirimi öğeleri farklı görünebilir. Öyleyse, _LoginPartial sayfa düzeni içinde uygun konuma eklediğinizden emin olun.
/Views/Shared/_Layout.cshtml dosyasını açın ve aşağıdaki div
öğeyi ekleyin.
<div class="navbar-collapse collapse">
...
</div>
Bu öğeyi aşağıdaki Razor koduyla değiştirin:
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>
<li><a asp-area="" asp-controller="Home" asp-action="Claims">Claims</a></li>
</ul>
<partial name="_LoginPartial" />
</div>
Yukarıdaki Razor kodu, sonraki adımda oluşturacağınız eylemin bağlantısını Claims
içerir.
5. Adım: Talepler görünümünü ekleme
Kimlik belirteci taleplerini görüntülemek için /Views/Home klasörünün altına Claims.cshtml görünümünü ekleyin.
@using System.Security.Claims
@{
ViewData["Title"] = "Claims";
}
<h2>@ViewData["Title"].</h2>
<table class="table-hover table-condensed table-striped">
<tr>
<th>Claim Type</th>
<th>Claim Value</th>
</tr>
@foreach (Claim claim in User.Claims)
{
<tr>
<td>@claim.Type</td>
<td>@claim.Value</td>
</tr>
}
</table>
Bu adımda Claims
görünümünü Giriş denetleyicisine bağlayan eylemi eklersiniz. Eylem Claims
, kimliği doğrulanmış kullanıcılarla Authorize
eyleme erişimi sınırlayan özniteliğini kullanır.
/Controllers/HomeController.cs denetleyicisine aşağıdaki eylemi ekleyin:
[Authorize]
public IActionResult Claims()
{
return View();
}
sınıfının başına aşağıdaki using
bildirimi ekleyin:
using Microsoft.AspNetCore.Authorization;
6. Adım: Uygulama ayarlarını ekleme
Azure AD B2C kimlik sağlayıcısı ayarları appsettings.json dosyasında depolanır. appsettings.jsonaçın ve aşağıdaki ayarları ekleyin:
"AzureAdB2C": {
"Instance": "https://<your-tenant-name>.b2clogin.com",
"ClientId": "<web-app-application-id>",
"Domain": "<your-b2c-domain>",
"SignedOutCallbackPath": "/signout-oidc",
"SignUpSignInPolicyId": "<your-sign-up-in-policy>"
}
Gerekli bilgiler, Örnek bir web uygulamasında kimlik doğrulamasını yapılandırma makalesinde açıklanmıştır. Aşağıdaki ayarları kullanın:
-
Örnek: değerini
<your-tenant-name>
Azure AD B2C kiracı adınızın ilk bölümüyle değiştirin (örneğin,https://contoso.b2clogin.com
). -
Etki alanı: değerini
<your-b2c-domain>
Azure AD B2C tam kiracı adınızla değiştirin (örneğin,contoso.onmicrosoft.com
). -
İstemci Kimliği: değerini
<web-app-application-id>
Uygulama Kimliği ile değiştirin. -
İlke adı: değerini
<your-sign-up-in-policy>
oluşturduğunuz kullanıcı akışlarıyla değiştirin.
7. Adım: Uygulamanızı çalıştırma
- Projeyi derleyin ve çalıştırın.
-
https://localhost:5001
'e gidin. - Kaydol/Giriş'i seçin.
- Kaydolma veya oturum açma işlemini tamamlayın.
Kimliğiniz başarıyla doğrulandıktan sonra görünen adınızı gezinti çubuğunda görürsünüz. Azure AD B2C belirtecinin uygulamanıza döndürdüğü talepleri görüntülemek için Talepler'i seçin.
Sonraki Adımlar
- Web uygulamanız için Azure AD B2C kimlik doğrulama deneyimini özelleştirmeyi ve geliştirmeyi öğrenin.