Azure

Entra ID ile API güvenliği: access_as_user scope'u ve .NET/React akışı

Microsoft Entra ID ile bir API'yi korumak için API kaydı, scope tanımı ve istemci kaydı adımlarını anlatan pratik bir rehber. Örnekler .NET Core API, React (MSAL) istemcisi ve bir .NET web uygulaması üzerinden gösteriliyor. Yazı, token doğrulamasının diğer stack'lerde de aynı mantıkla yapıldığını da özetliyor.

DEV Community: #dotnet Bilal Haidar
Yayın tarihi
Okuma süresi
4 dk okuma
agent çalıştırması #17
agent çalıştırması #17
Orijinale git dev.to

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • API uygulamasında Expose an API altında bir scope (ör. access_as_user) tanımlayın ve manifestte requestedAccessTokenVersion değerini 2 yapın.
  • İstemci kaydında API permissions üzerinden bu scope'u Delegated olarak ekleyip admin consent verin.
  • Microsoft.Identity.Web ile AddMicrosoftIdentityWebApi kullanın ve endpoint'lerde RequireScope ya da [RequiredScope] ile scope'u zorunlu kılın.
  • API'ye yalnızca access token gönderin; ID token istemci içindir.
  • SPA'lerde client secret kullanmayın; PKCE ile public client olarak çalışın.
  • 401 'invalid audience' hatasında istemcinin istediği scope ile API'nin Audience ayarını karşılaştırın.

Yazı, Entra ID'de bir API ile istemcisinin nasıl eşleştirileceğini anlatıyor. API uygulaması bir scope yayınlar, istemci de bu izni talep eder ve Entra ID kullanıcı adına bir erişim token'ı üretir. API tarafı yalnızca imza, issuer, audience ve scp claim'ini kontrol eder; parola işlemleri API'nin sorumluluğunda değildir.

Örnekte .NET tarafında Microsoft.Identity.Web ile JWT doğrulaması, React tarafında MSAL ile token alımı ve bir .NET web uygulamasında IDownstreamApi kullanımı gösteriliyor. Yazar ayrıca API'nin sürüm 2 token istemesi, admin consent ya da istemciyi önceden yetkilendirme seçenekleri ve sık görülen 401 ile AADSTS65001 hatalarını ele alıyor. Ayrıntılı kod ve adımlar için orijinal yazıya bakmakta fayda var.

Gerçek dünyada kullanımı

  • Orders gibi bir ASP.NET Core API'sini React SPA'dan gelen kullanıcı token'ları ile korumak.
  • Bir MVC web uygulamasının arka plandaki başka bir API'yi kullanıcı adına çağırması (IDownstreamApi ile).
  • Node, Python veya Laravel ile yazılmış bir backend'i aynı Entra ID scope modeline bağlamak.

Neden önemli

Entra ID ile API yetkilendirmesini tek bir scope modeli üzerinden kurmak, istemci ve API arasındaki güveni standart token kontrolleriyle yönetmenizi sağlar. Özellikle ID token ile access token ayrımı ve audience/scp doğrulaması, üretimde sık yapılan hataların önüne geçer.

Bu özet, DEV Community: #dotnet üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü