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 hızlı başlangıçta, Microsoft.Identity.Web kullanarak Microsoft Entra ID ile oturum açan kullanıcılar için bir ASP.NET Core web uygulaması oluşturacaksınız. Şablondan yeni bir projenin iskelesini oluşturabilir veya mevcut bir uygulamaya kimlik doğrulaması ekleyebilirsiniz.
Microsoft Entra kiracınız yoksa, başlamadan önce bir ücretsiz hesap oluşturun.
Önkoşullar
- .NET 9 SDK
- Microsoft Entra ID kiracısı
- Microsoft Entra tenant'ınızda bir uygulama kaydı. Oluşturmanız gerekiyorsa bkz. Uygulamanızı kaydetme.
Şablondan proje oluşturma
Kullanmaya başlamanın en hızlı yolu, önceden yapılandırılmış kimlik doğrulamasıyla yeni bir projenin iskelesini oluşturmaktır.
Tek kuruluşlu kimlik doğrulamasıyla yeni bir web uygulaması oluşturmak ve proje dizinine gitmek için aşağıdaki komutları çalıştırın:
dotnet new webapp --auth SingleOrg --name MyWebApp
cd MyWebApp
Şablon, Microsoft.Identity.Web'ün zaten yapılandırıldığı bir proje oluşturur. Yalnızca uygulama kayıt bilgilerinizi sağlamanız gerekir.
Yer tutucu değerlerini açın appsettings.json ve uygulama kaydınızdaki Uygulama (istemci) kimliği ve Dizin (kiracı) kimliği ile değiştirin:
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "your-tenant-id",
"ClientId": "your-client-id",
"CallbackPath": "/signin-oidc"
}
}
Oturum açma işleminin çalıştığını doğrulamak için uygulamayı başlatın:
dotnet run
https://localhost:5001 Adresine gidin ve Oturum aç'ı seçin. Microsoft oturum açma istemi görüntülenirse yapılandırma doğru olur.
Mevcut bir web uygulamasına kimlik doğrulaması ekleme
Mevcut bir ASP.NET Core uygulamanız varsa, Microsoft Entra oturum açma eklemek için bu adımları izleyin.
NuGet paketlerini yükleme
Microsoft.Identity.Web kitaplıklarını ekleyin.
Microsoft.Identity.Web paketi kimlik doğrulamasını işler ve Microsoft.Identity.Web.UI önceden oluşturulmuş oturum açma ve oturumu kapatma kullanıcı arabirimi bileşenleri sağlar:
dotnet add package Microsoft.Identity.Web
dotnet add package Microsoft.Identity.Web.UI
Kimlik doğrulama hizmetlerini yapılandırma
Program.cs öğesini açın ve kimlik doğrulama hizmetlerini ekleyin. Aşağıdaki kod OpenID Connect kimlik doğrulamasını Microsoft Entra ile kaydeder, aşağı akış API çağrıları için belirteç almayı etkinleştirir ve oturum açma/oturum kapatma kullanıcı arabirimini ekler:
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;
var builder = WebApplication.CreateBuilder(args);
// Add authentication
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(builder.Configuration, "AzureAd")
.EnableTokenAcquisitionToCallDownstreamApi() // Optional: if calling APIs
.AddInMemoryTokenCaches(); // For production, use distributed cache
// Add Razor Pages or MVC
builder.Services.AddRazorPages()
.AddMicrosoftIdentityUI(); // Adds sign-in/sign-out UI
var app = builder.Build();
// Configure middleware
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication(); // Add authentication middleware
app.UseAuthorization();
app.MapRazorPages();
app.MapControllers();
app.Run();
Microsoft Entra yapılandırması ekleme
appsettings.json öğesini açın ve AzureAd bölümünü ekleyin. Yer tutucu değerlerini uygulama kaydınızın Uygulama (istemci) kimliğiyle değiştirin. Uygulamanız için uygun hedef kitleye ayarlayın TenantId :
{
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"TenantId": "common",
"ClientId": "your-client-id-from-app-registration",
"CallbackPath": "/signin-oidc"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Identity.Web": "Information"
}
}
}
TenantId Değeri, hangi hesapların oturum açabileceğini belirler:
| Değer | Kabul edilen hesaplar |
|---|---|
common |
İş/okul ve kişisel Microsoft hesapları |
organizations |
Yalnızca iş/okul hesapları |
consumers |
Yalnızca kişisel Microsoft hesapları |
<your-tenant-id> |
Tek kiracılı — yalnızca kuruluşunuz |
Sayfalarınızı koruma
Özniteliği, [Authorize] oturum açma gerektiren sayfalara veya denetleyicilere ekleyin.
Razor Pages için [Authorize] özniteliği kimliği doğrulanmamış kullanıcıları oturum açma sayfasına yönlendirir. Oturum açıldıktan sonra, kullanıcı talepleri Name ve preferred_username gibi User nesnesi aracılığıyla kullanılabilir.
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.RazorPages;
[Authorize] // Require authentication
public class IndexModel : PageModel
{
public void OnGet()
{
var userName = User.Identity?.Name;
var userEmail = User.FindFirst("preferred_username")?.Value;
}
}
MVC denetleyicileri için aynı [Authorize] öznitelik denetleyici veya eylem düzeyinde geçerlidir:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
[Authorize] // Require authentication
public class HomeController : Controller
{
public IActionResult Index()
{
var userName = User.Identity?.Name;
return View();
}
}
Oturum açma ve oturum kapatma bağlantıları ekleme
Kullanıcıların oturum açıp kapatabilmesi için düzeninize gezinti bağlantıları ekleyin. MicrosoftIdentity alan yolları Microsoft.Identity.Web.UI paketi tarafından sağlanır. Aşağıdaki Razor işaretlemesi, kullanıcının kimlik doğrulama durumuna göre Oturumu kapat veya Oturum aç'ı koşullu olarak işler:
<ul class="navbar-nav">
@if (User.Identity?.IsAuthenticated == true)
{
<li class="nav-item">
<span class="nav-link">Hello @User.Identity.Name!</span>
</li>
<li class="nav-item">
<a class="nav-link" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a>
</li>
}
else
{
<li class="nav-item">
<a class="nav-link" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a>
</li>
}
</ul>
Çalıştırma ve test
Kimlik doğrulamasının çalıştığını doğrulamak için uygulamayı başlatın:
dotnet run
https://localhost:5001 adresine gidin.
Oturum aç bağlantısını görmeniz gerekir. Microsoft oturum açma akışının başarıyla tamamlandığını onaylamak için seçin.
Uygulamanızı kaydedin
Henüz bir uygulama kaydınız yoksa, Azure portalında bir uygulama kaydı oluşturmak için bu adımları izleyin.
- Azure portalında oturum açın.
- Microsoft Entra Id>Uygulama kayıtları>Yeni kayıt'a gidin.
- Bir görünen ad girin (örneğin, "Web Uygulamam").
- Desteklenen hesap türlerini seçin:
- Tek kiracı — Yalnızca kuruluşunuzdaki kullanıcılar
- Çok kiracılı — Herhangi bir organizasyondaki kullanıcılar
- Multi-tenant + personal — Tüm Microsoft hesapları
-
Yeniden Yönlendirme URI'sinin altında platformu Web olarak ayarlayın ve girin
https://localhost:5001/signin-oidc. - Kaydıseçin.
- Genel bakış sayfasında Uygulama (istemci) kimliğini ve Dizin (kiracı) kimliğini kopyalayın. Bu değerlere
appsettings.jsoniçindekiClientIdveTenantIdalanları için ihtiyacınız vardır.
İsteğe bağlı ayarları yapılandırma
Senaryonuz bu ek ayarları gerektirebilir.
Kimlik belirteci verme özelliğini etkinleştirme — Bazı karma kimlik doğrulama senaryoları kimlik belirteçlerinin doğrudan yetkilendirme uç noktasından verilmesini gerektirir. Yetkilendirme kodu akışı (Microsoft.Identity.Web tarafından kullanılır) önerilen yaklaşımdır. Bu ayarı yalnızca senaryonuz özel olarak gerektiriyorsa etkinleştirin:
- Uygulama kaydınızda Kimlik Doğrulaması'na gidin.
- Örtük yetkilendirme ve karma akışlar altında Kimlik belirteçlerini seçin.
- Kaydetseçeneğini seçin.
Note
Örtük yetki akışı eski bir akıştır. Microsoft, tüm yeni uygulamalar için PKCE ile yetkilendirme kodu akışını önerir. Daha fazla bilgi için Microsoft kimlik platformu belgelerine bakın.
Ön kanal çıkış URL’si yapılandırın — Kullanıcılar, Microsoft Entra'dan çıktıklarında uygulamanızda da oturumlarının kapandığından emin olun:
- Uygulama kaydınızda Kimlik Doğrulaması'na gidin.
-
Ön kanal oturumu kapatma URL'si altına şunu girin:
https://localhost:5001/signout-oidc. - Kaydetseçeneğini seçin.
Sık karşılaşılan hataları giderme
Oturum açma sırasında sorunlarla karşılaşırsanız bu yaygın hataları denetleyin.
| Error | Nedeni | Çözüm |
|---|---|---|
| AADSTS50011: Kayıtlı yanıt adresi yok | Kod ve uygulama kayıt bilgisi arasında yeniden yönlendirme URI uyuşmazlığı | Uygulama kaydınızdaki yeniden yönlendirme URI'sinin (CallbackPathvarsayılan olarak) eşleştiğinden /signin-oidc emin olun |
| AADSTS700016: Uygulama bulunamadı | Yapılandırmada hatalı ClientId |
içindeki appsettings.json uygulama kaydınızla eşleşdiğini onaylayın |
| Yetkili yapılandırma hatası | Eksik veya geçersiz Instance veya TenantId |
Instance olarak ayarlayın https://login.microsoftonline.com/ ve geçerli olduğunu onaylayın TenantId |