Yazılım Mimarileri ve Tasarım Desenleri Üzerine

IdentityServer4 Yazı Serisi #8 – Authorization Code Grant(Flow)

Merhaba,

Daha önce IdentityServer4 Yazı Serisinin üçüncü makalesi olan Client Credentials başlıklı makalemizde IdentityServer4 yapılanması üzerinden client’ların yetkilendirilmesini teorik ve pratik olarak incelemiştik. Bu sekizinci makalede ise Authorization Code Grant/Flow ile kullanıcıların onayı üzerinden yetkilendirmenin nasıl yapıldığını sadece teorik bir şekilde istişare edeceğiz.

Authorization Code Grant Nedir?

Authorization Code, adı üzerinde ‘yetki kodu’dur. Yani istemcinin bir access token’ı alabilmesi için önceden gerekli olan ‘yetki’yi temsil eden koddur. Authorization code; kullanıcı tarafından kullanılan client’ın, kullanıcının Auth Server üzerinden sisteme authorize olması esnasında, client tarafından öğrenilmek ve elde edilmek istenen bilgilerin kullanıcı tarafından onaylanması neticesinde bu bilgileri barındıracak şekilde auth server tarafından üretilmiş bir koddur. Eğer Auth Server, client’a bu authorization code’u veriyorsa, client’da bu kod eşliğinde tekrar auth server’dan access token’ı(ve varsa refresh token’ı da) elde edebilecektir.

Authorization code; Auth server açısından access token üretmek için kullanıcı bilgilerinin doğruluğunun yanında ayrı bir onay/yetki manasına gelmektedir. Eğer authorization code yanlışsa, kullanıcı bilgileri doğru olsa bile access token üretilmeyecektir.

Authorization Code Akış Süreci Nasıldır?

Yandaki görsel authorization code’un akış sürecini en iyi temsil eden bir diyagrama sahiptir. İlk olarak burada rol alan oyunculardan bahsederek başlayalım;

Şimdide süreçteki adımları ele alalım;

İşte tüm süreç bu şekilde cereyan etmektedir. Nihai olarak access token’ı elde eden client bu token aracılığıyla API’lara isteklerde bulunabilir.

Authorization Code Grant client’ı yetkilendirmek için, önce authorization code’u arından da access token’ı zorunlu kıldığından dolayı iki aşamalı doğrulama gerçekleştirmektedir diyebiliriz.

IdentityServer4 Framework’ü İle Authorization Code’u Nasıl Uygularız?

IdentityServer4 framework’ü Authorization Code stratejisini herhangi bir manuel kod inşa etmeye gerek kalmaksızın otomatik gerçekleştirmektedir.

Auth Server’dan tarayıcı aracılığıyla authentication code isteyebilmek için Authorize Endpoint kullanılır.

Serimizin ileriki makalelerinde Authorization Code Grant akışının pratiksel çalışmasının nasıl yapıldığını konuşuyor olacağımızdan dolayı içeriği burada noktalıyorum…

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

Mobil sürümden çık