JWT (JSON Web Token) nedir; TR7'de nerede kullanılır?
Kısa cevap
JWT (JSON Web Token), noktalarla ayrılmış üç bölümden oluşan token biçimidir: header, payload ve signature (RFC 7519). Header ile payload Base64URL ile kodlanmış JSON'dur; payload kullanıcı ve yetki bilgilerini claim olarak taşır, signature ise token'ın değiştirilmediğini ve kimin ürettiğini doğrulamaya yarar. Standart JWT imzalıdır ama şifreli değildir; payload'ı herkes okuyabilir. TR7'de iki yerde kullanılır: Smart Variable fonksiyonlarındaki JWT Header Query ve JWT Payload Query, bir header'da ya da cookie'de taşınan token'ın header ve payload bölümünden JSON path ile değer okur; bu değer koşullarda, aksiyonlarda ve persistence anahtarlarında kullanılır. AGS'de OpenID Connect sağlayıcısının döndürdüğü ID token bir JWT'dir ve imzası JWKS URI adresindeki anahtarlarla doğrulanır.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Smart Variable kullanılan alanlar → Add Variable penceresi → Add Functions | JWT Header Query, JWT Payload Query; argüman JSON path (varsayılan $.key) | Token'daki bir değere (ör. kullanıcı adı, rol) göre koşul, aksiyon ya da persistence anahtarı oluşturma |
| AGS → Authentication → Authentication Providers (OpenID Connect) | JWKS URI, Skip Signature Verification (varsayılan kapalı) | ID token imzasının doğrulanması |
| Aynı form (OAuth2, OpenID Connect) | Custom User Attribute Mapping; JSONata bağlamı Identity Claims (OAuth2 / OIDC) | ID token claim'lerinin AGS kullanıcı alanlarına eşlenmesi |
Bölümler
| Bölüm | İçerik | Smart Variable fonksiyonu |
|---|---|---|
| Header | İmza algoritması (alg), anahtar kimliği (kid), tür | JWT Header Query |
| Payload | Claim'ler: kullanıcı (sub), issuer (iss), geçerlilik süresi (exp), kapsam | JWT Payload Query |
| Signature | Header ve payload'ın imzası | - |
Sık Karıştırılan Noktalar
- "JWT içeriği şifrelidir." Standart JWT yalnızca imzalıdır; payload Base64URL çözülerek okunabilir, bu yüzden token'a hassas veri konmaz.
- "JWT payload query token'ı doğrular." Fonksiyon yalnızca belirtilen yoldaki değeri okur; token'ın imzası ve süresi bu fonksiyonla denetlenmez. Token'ın geçerliliği onu üreten sistemde ya da token'ı kabul eden uygulamada doğrulanır.
- "Her token JWT'dir." Access token'lar sağlayıcıya göre opak bir değer de olabilir; JWT fonksiyonları yalnızca JWT biçimindeki token'larda anlamlı sonuç verir (Access token ile ID token arasındaki fark nedir?).
Dokümantasyonda nasıl yapılır
