﻿
{"id":18224,"date":"2020-10-11T00:34:56","date_gmt":"2020-10-11T00:34:56","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=18224"},"modified":"2020-10-11T00:35:16","modified_gmt":"2020-10-11T00:35:16","slug":"identityserver4-yazi-serisi-2-identityserver4-hangi-problemlere-cozum-getiriyor","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/identityserver4-yazi-serisi-2-identityserver4-hangi-problemlere-cozum-getiriyor\/","title":{"rendered":"IdentityServer4 Yaz\u0131 Serisi #2 &#8211; IdentityServer4 Hangi Problemlere \u00c7\u00f6z\u00fcm Getiriyor?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/identityserver4-yazi-serisi\/\" target=\"_blank\" rel=\"noopener noreferrer\">IdentityServer4 Yaz\u0131 Serisi<\/a>nin bu ikinci makalesinde IdentityServer4 k\u00fct\u00fcphanesinin problem senaryolar\u0131n\u0131 \u015fematik g\u00f6rselle\u015ftirmeye \u00e7al\u0131\u015facak ve bunlara nas\u0131l \u00e7\u00f6z\u00fcm getirdi\u011fini inceleyece\u011fiz.<\/p>\n<h5><u>1. Problem Senaryosu<\/u><\/h5>\n<p>Birden fazla uygulama aras\u0131nda merkezi bir yetkilendiriciye ihtiya\u00e7 hissedildi\u011fi durumlarda IdentityServer4 kullan\u0131labilir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-18227\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-199x300.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #2 - IdentityServer4 Hangi Problemlere \u00c7\u00f6z\u00fcm Getiriyor\" width=\"199\" height=\"300\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-199x300.jpg 199w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor.jpg 295w\" sizes=\"auto, (max-width: 199px) 100vw, 199px\" \/><\/a><\/p>\n<p>B\u00f6ylece her bir client authorization i\u015flemleri i\u00e7in ayr\u0131 ayr\u0131 geli\u015ftirme zorunlulu\u011fundan ar\u0131nacak ve t\u00fcm client&#8217;lar i\u00e7in yetkilendirme sorumlulu\u011fu merkezi tek bir yer taraf\u0131ndan(Auth Server) \u00fcstlenilece\u011fi i\u00e7in maliyet s\u0131f\u0131rlanm\u0131\u015f olacakt\u0131r.<\/p>\n<p>Ayr\u0131ca burada geli\u015ftirilen Auth Server, t\u0131pk\u0131 sosyal medyalar gibi farkl\u0131 client&#8217;lara authorization hizmeti sunabilecek kabiliyette evrilebilecektir.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h5><u>2. Problem Senaryosu<\/u><\/h5>\n<p>Birden fazla resource server&#8217;\u0131n oldu\u011fu ve client taraf\u0131ndan yap\u0131lacak istekler i\u00e7in JWT \u00fcretimin her bir kaynakta yap\u0131ld\u0131\u011f\u0131 durumlarda IdentityServer4 kullan\u0131larak kullan\u0131c\u0131 yetkilendirmesi tek elden ger\u00e7ekle\u015ftirilebilir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-18231\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-1-300x171.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #2 - IdentityServer4 Hangi Problemlere \u00c7\u00f6z\u00fcm Getiriyor\" width=\"300\" height=\"171\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-1-300x171.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-1.jpg 695w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>G\u00f6rselde g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere her bir API JWT \u00fcretim sorumlulu\u011funu \u00fcstlenmektedir. Bu durum kod israf\u0131 a\u00e7\u0131s\u0131ndan olduk\u00e7a y\u00fcksek maliyetlidir. Hele hele ilgili API&#8217;lara hangi client(lar)dan talep gelebilece\u011fini ayarlamak ve b\u00f6ylece k\u00f6t\u00fc niyetli client&#8217;lar\u0131 ay\u0131klayabilmek i\u00e7in yap\u0131lmas\u0131 gerekecek olan \u00e7al\u0131\u015fmalarda mevcut olacakt\u0131r. Geli\u015ftirmenin maliyeti bu \u015fekilde haddinden fazla artacak ve s\u00fcre\u00e7te kaynak say\u0131s\u0131 artt\u0131k\u00e7a y\u00f6netilebilirlik imkans\u0131za gidercesine d\u00fc\u015fecektir.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-18239\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-2-300x275.jpg\" alt=\"\" width=\"300\" height=\"275\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-2-300x275.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-2.jpg 593w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Tasar\u0131m\u0131 IdentityServer4 kullanarak yandaki gibi geli\u015ftirirsek e\u011fer client, API&#8217;lara istekte bulunabilmek i\u00e7in access token de\u011ferini Auth Server&#8217;dan elde edecek ve bunu t\u00fcm API&#8217;lara istek yaparken kullanabilecektir. B\u00f6ylece her bir API&#8217;da bir JWT \u00e7al\u0131\u015fmas\u0131 yap\u0131lmaks\u0131z\u0131n tek elden \u00fcretim ger\u00e7ekle\u015ftirilecek ve kod maliyeti minimize edilmi\u015f olacakt\u0131r.<\/p>\n<p>Tabi burada API&#8217;lara istek yapabilecek client&#8217;lar\u0131n hangileri oldu\u011fu ve bu client&#8217;lar\u0131n hangi API&#8217;lere istek yapabilece\u011fi Auth Server&#8217;a tan\u0131t\u0131lmas\u0131 gerekmektedir. B\u00f6ylece client(lar)&#8217;\u0131n beslenece\u011fi API say\u0131s\u0131 artarsa bunun i\u00e7in Auth Server uygulamas\u0131n\u0131 bilgilendirmek i\u00e7in yeterli olacakt\u0131r.<\/p>\n<h5><u>3. Problem Senaryosu<\/u><\/h5>\n<p>Birden fazla client&#8217;\u0131n veritaban\u0131 ba\u011flant\u0131s\u0131 durumunda ayr\u0131 ayr\u0131 connection yapmak yerine merkezi bir ba\u011flant\u0131 \u00fczerinden tek bir connection i\u00e7in IdentityServer4 kullan\u0131labilir.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-18251 alignleft\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-3-300x230.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #2 - IdentityServer4 Hangi Problemlere \u00c7\u00f6z\u00fcm Getiriyor\" width=\"300\" height=\"230\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-3-300x230.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-3.jpg 615w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>T\u00fcm client&#8217;lar\u0131n; misal, giri\u015f i\u015flemi i\u00e7in SQL veritaban\u0131na ba\u011flanmas\u0131 gerekmektedir. Bu durum sistemdeki t\u00fcm client&#8217;lar i\u00e7in bir kodlama maliyeti ortaya koymaktad\u0131r.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-18256\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-4-300x292.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #2 - IdentityServer4 Hangi Problemlere \u00c7\u00f6z\u00fcm Getiriyor\" width=\"300\" height=\"292\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-4-300x292.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/10\/IdentityServer4-Yazi-Serisi-2-IdentityServer4-Hangi-Problemlere-Cozum-Getiriyor-4.jpg 606w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a>Halbuki yandaki gibi bir tasar\u0131m client&#8217;lar da ki SQL connection maliyetini olduk\u00e7a d\u00fc\u015f\u00fcrmektedir.<\/p>\n<p>Tabi burada bir \u00f6nceki senaryoda oldu\u011fu gibi yetkilendirmenin sa\u011flanabilmesi ve isteklerin ba\u015far\u0131yla ger\u00e7ekle\u015febilmesi i\u00e7in t\u00fcm client&#8217;lar ve API&#8217;lar Auth Server&#8217;a tan\u0131t\u0131lmas\u0131 gerekmektedir.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h5><u>4. Problem Senaryosu<\/u><\/h5>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-identity-facebook-login\/\" target=\"_blank\" rel=\"noopener noreferrer\">Facebook Login<\/a>, <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-identity-google-login\/\" target=\"_blank\" rel=\"noopener noreferrer\">Google Login<\/a> gibi OAuth 2.0 ve OpenID Connect protokollerinin kullan\u0131ld\u0131\u011f\u0131 teknikleri ortak paydadan dolay\u0131 IdentityServer4 ile h\u0131zl\u0131ca uygulayabilir ve uygulaman\u0131za entegre edebilirsiniz.<\/p>\n<p><strong>Sonu\u00e7<\/strong><br \/>\nIdentityServer4, yukar\u0131da ele ald\u0131\u011f\u0131m\u0131z problem senaryolar\u0131 ve benzerlerine \u00e7\u00f6z\u00fcmler getirmekte kullan\u0131lan en efektif framework&#8217;t\u00fcr. Tabi ki de bunlar ve bunlara benzer problemleri \u00e7\u00f6zebilmek i\u00e7in ilgili framework bir zorunluluktan \u00f6te bir tercih meselesidir. Ba\u015fka framework&#8217;ler yahut k\u00fct\u00fcphanelerle \u00e7\u00f6z\u00fcmler bulunabilece\u011fi gibi hususi geli\u015ftirmeler ile uzun ince yol al\u0131nabilir. Amma velakin genellikle IdentityServer4 framework&#8217;\u00fc tercih edilmektedir.<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, IdentityServer4 Yaz\u0131 Serisinin bu ikinci makalesinde IdentityServer4 k\u00fct\u00fcphanesinin problem senaryolar\u0131n\u0131 \u015fematik g\u00f6rselle\u015ftirmeye \u00e7al\u0131\u015facak ve bunlara nas\u0131l \u00e7\u00f6z\u00fcm getirdi\u011fini inceleyece\u011fiz. 1. Problem Senaryosu Birden fazla uygulama aras\u0131nda merkezi bir yetkilendiriciye ihtiya\u00e7 hissedildi\u011fi durumlarda IdentityServer4&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":18168,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3826],"tags":[3827,3839,3838],"class_list":["post-18224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-identityserver4","tag-identityserver4","tag-identityserver4-problemleri","tag-identityserver4-senaryolari"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/18224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=18224"}],"version-history":[{"count":38,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/18224\/revisions"}],"predecessor-version":[{"id":18267,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/18224\/revisions\/18267"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/18168"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=18224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=18224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=18224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}