IdentityServer4 Yazı Serisi #6 – Introspection Endpoint
Merhaba,
IdentityServer4 Yazı Serisinin bir önceki Discovery Endpoint başlıklı makalesinde IdentityServer4 framework’ünün hali hazırda endpoint’leri olduğundan bahsettik ve bunlar arasından Auth Server’ı keşfetmemizi sağlayan Discovery Endpoint’i ele aldık. Bu içeriğimizde ise client açısından elde edilen token değerinin hedef API için yetkili olup olmadığını denetlememizi sağlayan Introspection Endpoint’i inceliyor olacağız.
Introspection Endpoint Nedir?
Yukarıda bahsedildiği gibi client tarafında bulunan token değerinin hedef API için uygun olduğunu doğrulamak için kullanılan endpoint çeşididir. Buradaki doğrulama esasında kimlik doğrulamasının ta kendisidir. /connect/introspect
adresinden ilgili endpoint tetiklenebilir.
Introspection Endpoint’i Tetikleme
Bunun için öncelikle elimizde hali hazırda bir token değerinin olması gerekmektedir.
İlgili token değerini edindikten sonra Introspection Endpoint’i tetikleyebiliriz.
Introspection Endpoint’i tetikleyebilmek için öncelikle ‘Authorization’ sekmesinden ‘Basic Auth’u seçiniz. ‘Basic Auth’; temel seviyede kullanıcı adı ve şifre ile kimlik doğrulamasıdır. Dolayısıyla burada da API’lar için bir kimlik doğrulama gerçekleştirilmektedir. Burada API’ların username ve password değerleri için Auth Server‘da tanımlanan ve temel konfigürasyonları bulunduran ‘Config.cs’ dosyasındaki ‘GetApiResources’ metodunda aşağıdaki eklemelerin yapılması gerekmektedir.
Görüldüğü üzere sistemde kullanılacak API’ları ifade etmek için tanımlanan ‘ApiResource’lere, ‘ApiSecrets’ property’si üzerinden bir secret değer eklenmiştir. Bu değer ilgili API’ların password niteliğine karşılık gelmektedir. Kırmızıyla işaretlenmiş olan resource isimleri ise username’e tekabül etmektedir.
Velhasıl, ilgili değerleri alanlarına yazdıktan sonra ‘Body’ sekmesinden ‘token’ tanımına karşılık JWT değerini vererek ‘POST’ edilmesi yeterli olacaktır.
Sonuç olarak istek neticesinde elde edilen değere göz atarsanız eğer ilgili token’ın hedef API’a uygunluk derecesini görebilir ve hangi yetkilerle erişim sağlanabileceğini dahi inceleyebilirsiniz. Tabi yetkisiz bir token’ın değerlendirilmesinde bulunuyorsanız
sonucunu elde edersiniz…
Misal,’HalkBank’ API’ına erişim yetkisi olmayan bir client’ın elde ettiği token değerini ilgili API için deneyerek, sonuçlarını incelemeyi deneyebilirsiniz 😉 Buyrun pratiksel bir vazifeyle sizleri baş başa bırakıyorum 🙂
İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…
Not : Örnek uygulamayı indirebilmek için buraya tıklayınız.
1 Cevap
[…] IdentityServer4 Yazı Serisi #6 – Introspection Endpoint […]