Azure Application Gateway'de JSON Web Belirteci (JWT) doğrulaması (önizleme)

Azure Application Gateway , gelen HTTPS isteklerinde Microsoft Entra ID (eski adı Azure Active Directory) tarafından verilen JSON Web Belirteçlerini (JWT) doğrular. Bu özellik, arka uç uygulamalarınızda özel kod gerektirmeden web API'leri veya korumalı kaynaklar için ilk atlama kimlik doğrulaması zorlaması sağlar.

Bu özellik, gelen isteklerdeki belirteçlerin bütünlüğünü ve orijinalliğini doğrular. Ardından trafiği arka uç hizmetlerine iletmeden önce erişime izin verilip verilmeyeceğini belirler. Doğrulama başarılı olduğunda, ağ geçidi x-msft-entra-identity üst bilgisini isteğe ekler ve arka uç iletir. Aşağı akış uygulamaları daha sonra doğrulanmış kimlik bilgilerini güvenli bir şekilde kullanabilir.

Application Gateway, uçta belirteç doğrulaması gerçekleştirerek uygulama mimarisini basitleştirir ve genel güvenlik duruşunu güçlendirir. JWT doğrulaması durumsuz. Diğer bir ifadeyle, erişim verilmesi için her isteğin geçerli bir belirteç sunması gerekir.

Application Gateway herhangi bir oturum veya tanımlama bilgisi tabanlı durum korumaz. Bu yaklaşım, istekler arasında tutarlı doğrulama ve Sıfır Güven ilkeleriyle uyumlu olmasını sağlamaya yardımcı olur.

Önemli

Azure Application Gateway'de JWT doğrulaması şu anda önizleme aşamasındadır. Bu önizleme sürümü, bir hizmet düzeyi anlaşması olmaksızın sağlanmaktadır ve üretim iş yükleri için önerilmemektedir. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Önemli özellikler

  • Belirteç doğrulama: JWT imzasını, vereni, kiracıyı, hedef kitleyi ve yaşam ömrünü doğrular. Tokenlar Microsoft Entra ID tarafından düzenlenmelidir.
  • Kimlik yayma: x-msft-entra-identity üst bilgisi tenantId:oid ile arka uca enjekte edilir.
  • Esnek eylemler: Geçersiz jetonlar için Deny (401 durum kodu döndür) veya Allow (kimlik üst bilgisi eklemeden iletmek) olarak yapılandırılır.
  • Çok kiracılı destek: Yaygın kuruluşların ve tüketicilerin kiracı yapılandırmalarını destekler.
  • Yalnızca HTTPS: HTTPS dinleyicileri gerektirir. HTTP desteklenmez.

Application Gateway için JWT Doğrulamasını gösteren diyagram.

Önkoşullar

  • Application Gateway gereksinimleri:

    • Standard_v2 veya WAF_v2 SKU'su. Temel SKU desteklenmez.
    • TLS/SSL sertifikasının yapılandırılmasıyla birlikte bir HTTPS dinleyicisi.
    • Azure Resource Manager API sürüm 2025-03-01 veya üzeri.
  • Ağ gereksinimleri:

    • Application Gateway alt ağı login.microsoftonline.com adresine 443 numaralı TCP bağlantı noktası üzerinden giden bağlantı.
  • Microsoft Entra Id gereksinimleri:

    • Microsoft Entra Id'de web API'nizin kaydı.
    • Bir hizmete erişim talebinde bulunmak için bir Microsoft Entra ID çağrısı. Microsoft Entra Id bir erişim belirteci ile yanıt verir.
  • Application Gateway'de JWT doğrulaması yapılandırması.

Microsoft Entra ID'de bir uygulama kaydetme

  1. Azure portalında Uygulama kayıtları'na gidin.

  2. Yeni kayıtseçin.

  3. Ad alanına MyWebAPI girin.

  4. Desteklenen hesap türleri için Yalnızca bu kuruluş dizinindeki hesaplar (yalnızca Microsoft - Tek kiracı) seçeneğini belirleyin.

    Uyarı

    Desteklenen hesap türleri şunlardır:

    • Tek kiracı (yalnızca bu dizin)
    • Çok Kiracılı (herhangi bir Microsoft Entra Id dizini)
    • Herhangi bir Microsoft Entra Id dizinindeki hesaplar ve kişisel Microsoft hesapları
  5. Yeniden Yönlendirme URI'sinde (isteğe bağlı) kutuları boş bırakabilirsiniz. Bu ayar API senaryoları için gerekli değildir.

  6. Kaydıseçin.

  7. Uygulama (istemci) kimliği ve Dizin (kiracı) kimliği değerlerini not edin.

  8. (İsteğe bağlı) Uygulama kimliği URI'si yapılandırma:

    1. API kullanıma sunma>Uygulama Kimliği URI'sini ayarlama bölümüne gidin.
    2. Varsayılan api://<ClientID> URI'yi veya özel bir URI'yi kullanın (örneğin, https://api.contoso.com).
  9. (İsteğe bağlı) API kapsamlarını tanımlama:

    • Bir API Yayınla>Kapsam Ekle'ye gidin.

    Bu özellik, gelecekteki yetkilendirme özelliklerine yöneliktir. Önizleme için gerekli değildir.

Application Gateway'de JWT doğrulamayı yapılandırma

  1. Önizleme yapılandırma portalını açın.

  2. Application Gateway örneğinizi açın, soldaki menüden Ayarlar'a gidin ve JWT doğrulama yapılandırmaları>JWT doğrulama yapılandırması ekle'yi seçin.

    Application Gateway için JSON Web Belirteci yapılandırmasını güncelleştirme bölmesinin ekran görüntüsü.

  3. Aşağıdaki ayrıntıları sağlayın:

    Setting Example Description
    İsim jwt-policy-1 Doğrulama yapılandırması için tanıdık ad
    Yetkisiz İstek Deny Eksik veya geçersiz JWT'leri olan istekleri reddetme seçeneği
    Kiracı Kimlik <your-tenant-id> Geçerli GUID veya bir common, organizationsveya consumers
    Müşteri Kimliği <your-client-id> Microsoft Entra'da kayıtlı uygulamanın GUID'i
    Kitleler <api://<client-id> (İsteğe bağlı) Ek geçerli hedef kitle talep değerleri (en fazla 5)
  4. Yeni bir yönlendirme kuralına ihtiyacınız varsa, yapılandırmayı aşağıdaki bölümde açıklandığı gibi bir yönlendirme kuralıyla ilişkilendirin.

Yönlendirme kuralı oluşturma (gerekirse)

  1. Application Gateway>Kuralları>Yönlendirme kuralı ekle'ye gidin.

  2. Aşağıdaki öğeleri girin veya seçin:

    • Dinleyici: Protokol HTTPS, atanmış sertifika veya Azure Key Vault sırrını kullanın.
    • Arka uç hedefi: Bir arka uç havuzu seçin veya oluşturun.
    • Arka uç ayarları: Uygun bir HTTP/HTTPS bağlantı noktası kullanın.
    • Kural adı: gibi jwt-route-rulebir ad girin.
  3. Bu kuralı JWT doğrulama yapılandırmanıza bağlayın.

JWT doğrulama yapılandırmanız artık güvenli bir HTTPS dinleyicisi ve yönlendirme kuralına eklenmiştir.

Güvenli uygulamaya her isteği içeren bir JWT erişim belirteci gönderme

Application Gateway'in korunmasına yardımcı olduğu bir uygulamaya güvenli bir şekilde erişmek için istemcinin önce Microsoft Entra Id belirteç uç noktasından bir JWT erişim belirteci alması gerekir. İstemci daha sonra bu belirteci Application Gateway'e gönderdiği her istekte yetkilendirme üst bilgisine (örneğin, Authorization: Bearer TOKEN) ekler.

Application Gateway, isteği arka uç uygulamasına iletmeden önce belirteci doğrular. Bu doğrulama yalnızca kimliği doğrulanmış ve yetkili trafiğin güvenli uygulamaya ulaşmasını sağlar.

Daha fazla bilgi için Microsoft kimlik platformunda erişim belirteçleri bölümüne bakın.

İsteklerin beklenen sonuçları

Scenario HTTP durumu Kimlik üst bilgisi Notes
Geçerli belirteç, action=Allow 200 Hediye Belirteç doğrulandı, kimlik iletildi
Geçersiz belirteç, action=Deny 401 Yok Ağ geçidi blokları isteği
Eksik belirteç, action=Deny 401 Yok Yetkilendirme başlığı yok
Eksik oid talep, action=Deny 403 Yok Kritik iddia eksik

Backend doğrulaması

Kimlik doğrulamasını x-msft-entra-identity onaylamak için üst bilgiyi kontrol edin.

401 ve 403 yanıtlarında sorun giderme

İstekler 401 veya 403 durumunu döndürürse şunları doğrulayın:

  • Configuration
    • Kiracı Kimliği veya veren kimliği (iss), Microsoft Entra kiracınızla eşleşir.
    • İzleyici (aud), yapılandırılan istemci kimliği veya hedef kitle listesiyle eşleşir.
  • Jeton bütünlüğü
    • Belirtecin süresi dolmamış (exp) ve nbf gelecekte geçerli değildir.
  • Biçimlendirme isteme
    • Authorization: Bearer <access_token> üst bilgi mevcut ve sağlam.
  • Ağ geçidi politika yerleştirme
    • JWT doğrulaması doğru dinleyiciye ve yönlendirme kuralına bağlanır.
  • Hala başarısız mı?
    • Doğru hedef kitle için yeni bir belirteç alın.
    • Ayrıntılı bir hata nedeni için Application Gateway erişim günlüklerini denetleyin.

Azure'da JWT doğrulaması ve ilgili kimlik özellikleri hakkında daha fazla bilgi edinmek için: