IdentityServer4 Yazı Serisi #10 – Resource Owner Credentials Grant(Flow)

Merhaba,

IdentityServer4 Yazı Serisinin bu onuncu makalesinde IdentityServer4’de ki akış tiplerine devam ediyoruz. Şimdi ele alacağımız akışımız Resource Owner Credentials Grant‘tır.

Resource Owner Credentials Grant(Flow) Nedir?

Bu akış kaynaklarda ayriyetten Password Grant olarakta geçmektedir.

Authorization Code Grant ve Implicit Grant akışlarında login olmak isteyen kullanıcının doğrulama işlemlerini Auth Server’a yönlendirerek gerçekleştirmekteyiz. Genellikle bu tercihi tüm sistemin(clientlar, apiler, auth server vs.) tarafımızca geliştirilmediği durumlarda el mahkum yapmamız gayet doğaldır. Lakin tüm sistemi biz geliştiriyorsak bu durumda kullanıcıyı login işlemleri için client üzerinden Auth Server’a yönlendirmek yerine direkt olarak uygulama üzerinde(arkaplanda/backend’de) işlemleri gerçekleştirmek kullanıcı açısından daha uygun olabilir. Aksi taktirde kullanıcıyı başka sayfaya yönlendirmek ve orada yetkilendirme işlemlerini gerçekleştirdikten sonra yine geri client’a yönlendirmek kullanıcı deneyimi açısından pek tercih edilmeyecek bir usuldür.

Client sayısının çok fazla olduğu durumlarda kullanıcı kayıt ve giriş işlemleri tek tek client’larda kodlanmak yerine Auth Server’da yapılması maliyet açısından mantıklıdır. Lakin client sayısı görece azsa Auth Server’a yönlendirmek kullanıcı deneyimi açısından pek makul değildir.

Resource Owner Credentials Grant Stratejisi Nasıldır?

Resource Owner Credentials Grant’ta bir client, kullanıcıyı direkt olarak yönlendirme yapmaksızın Auth Server üzerinden yetkilendirilir. Kullanıcı adı ve şifresini token endpoint’e göndererek bir access token talep etmeye izin verir. Bu akış, kullanıcı ile müşteri arasında bir güven ilişkisi olduğu durumlarda uygundur.

Resource Owner Credentials Grant’da kullanıcıyı yönlendirme olmadığından ve bundan dolayı bilinçli bir etkileşim yapılmadığından dolayı genellikle önerilmez.

IdentityServer4 Yazı Serisi #10 - Resource Owner Credentials Grant(Flow)Akışın adımlarını yandaki görsel eşliğinde izah edersek;

  • 1. Kullanıcı(resource owner) client’a kullanıcı adı ve şifresini verir.
  • 2. Client, Auth Server’ın token endpoint’i aracılığıyla client cretentials(client kimlik bilgileri) ile birlikte kullanıcıdan alınan kimlik bilgileri eşliğinde bir access token talebinde bulunur.
  • 3. Auth Server, kullanıcı ve client kimlik bilgilerini doğruladıktan sonra bir access token(ve hatta isteğe bağlı olacak şekilde refresh token) üreterek client’a gönderirir.

İşte bu kadar…

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 02 Kasım 2020

    […] password demektir ve bu, ileride pratiksel olarak göreceğimiz grant tiplerinden biri olan ‘Resource Owner Credentials Grant‘ı temsil etmektedir. Artık yetkilendirme için bir client uygulamasına ihtiyacımız […]

Bir cevap yazın

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

*