Access token ile ID token arasındaki fark nedir?
Kısa cevap
Access token, bir uygulamanın kullanıcı adına bir API'ye (ör. sağlayıcının user info endpoint'ine) erişmesini sağlayan izindir; içeriği uygulama için değil, erişilen API için anlamlıdır ve biçimi sağlayıcıya göre değişir (RFC 6749). ID token ise kullanıcının kim olduğunu bildiren, sağlayıcının imzaladığı bir JWT'dir; yalnızca OpenID Connect'te bulunur ve uygulamanın kendisi içindir (OpenID Connect Core 1.0). TR7 AGS'de OAuth2 türü kimliği access token ile user info endpoint'inden alır; OpenID Connect türü ayrıca imzası JWKS URI ile doğrulanan ID token'ı okur. Revoke Tokens on Logout açıkken oturum kapatılırken oturumun token'ları sağlayıcının Token Revocation URL adresine gönderilerek iptal edilir.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| AGS → Authentication → Authentication Providers | Provider Type = OAuth2 ya da OpenID Connect | Kimliğin access token ile mi, ID token ile mi alınacağı |
| Aynı form (Custom Provider) | Token URL, User Info URL, User Info Request Method (varsayılan: GET with Bearer header) | Token'ların alındığı ve access token'ın user info isteğinde gönderildiği yer |
| Aynı form (OpenID Connect) | JWKS URI, Skip Signature Verification, Skip Nonce Validation | ID token'ın doğrulanması |
| Aynı form | Revoke Tokens on Logout (varsayılan kapalı), Token Revocation URL (yalnızca Custom Provider'da) | Çıkışta token'ların sağlayıcıda iptali; hazır sağlayıcılarda revocation adresi katalogdan gelir |
Karşılaştırma
| Access token | ID token | |
|---|---|---|
| Amaç | API'ye erişim izni | Kullanıcının kimliği |
| Kimin için | Resource server (API) | Uygulama (client) |
| Biçim | Sağlayıcıya göre değişir (opak ya da JWT) | Her zaman imzalı JWT |
| Bulunduğu akış | OAuth 2.0 ve OpenID Connect | Yalnızca OpenID Connect |
| TR7'de kullanımı | User info isteği (OAuth2 ve OpenID Connect) | Kimlik ve imza doğrulaması (OpenID Connect) |
Sık Karıştırılan Noktalar
- "Access token kullanıcının kimliğini kanıtlar." Access token bir erişim iznidir; uygulama kimliği ID token'dan ya da user info yanıtından öğrenir.
- "ID token ile API'lere erişilir." ID token uygulama içindir; API çağrılarında access token gönderilir.
- "Çıkışta token'lar her zaman iptal edilir." İptal yalnızca Revoke Tokens on Logout açıkken yapılır; seçenek sağlayıcının token revocation adresi tanımlıyken görünür.
Dokümantasyonda nasıl yapılır
