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.
IdentityServer4 Yazı Serisi #6 – Introspection Endpoint
İlgili token değerini edindikten sonra Introspection Endpoint’i tetikleyebiliriz.
IdentityServer4 Yazı Serisi #6 – Introspection Endpoint
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.
IdentityServer4 Yazı Serisi #6 – Introspection Endpoint
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.
IdentityServer4 Yazı Serisi #6 – Introspection Endpoint

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
IdentityServer4 Yazı Serisi #6 – Introspection Endpoint
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.

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 30 Ekim 2020

    […] IdentityServer4 Yazı Serisi #6 – Introspection Endpoint […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*