﻿
{"id":19041,"date":"2020-11-14T22:09:30","date_gmt":"2020-11-14T22:09:30","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=19041"},"modified":"2020-11-14T22:09:30","modified_gmt":"2020-11-14T22:09:30","slug":"identityserver4-yazi-serisi-15-merkezi-uyelik-sistemi-onayconsent-sayfasi-ayarlama","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/identityserver4-yazi-serisi-15-merkezi-uyelik-sistemi-onayconsent-sayfasi-ayarlama\/","title":{"rendered":"IdentityServer4 Yaz\u0131 Serisi #15 &#8211; Merkezi \u00dcyelik Sistemi \u2013 Onay(Consent) Sayfas\u0131 Ayarlama"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/identityserver4-yazi-serisi\/\" rel=\"noopener noreferrer\" target=\"_blank\">IdentityServer4 Yaz\u0131 Serisi<\/a>nin bu onbe\u015finci makalesinde kullan\u0131c\u0131lardan istenilen bilgiler i\u00e7in onay sayfas\u0131n\u0131n nas\u0131l ayarlanabilece\u011fini inceleyece\u011fiz.<\/p>\n<p>\u015euana kadar client, Auth Server&#8217;dan kullan\u0131c\u0131ya dair istedi\u011fi t\u00fcm bilgileri, kullan\u0131c\u0131 giri\u015f yapt\u0131\u011f\u0131 taktirde elde edebilmekte ve kullanabilmektedir. Art\u0131k burada kullan\u0131c\u0131n\u0131n payla\u015f\u0131lacak bilgilerini iradesine dayanarak se\u00e7ebilmesi i\u00e7in araya bir onay s\u00fcrecini dahil etmemiz gerekmektedir. Bunun i\u00e7in Auth Server&#8217;da ki &#8216;Config.cs&#8217; dosyas\u0131nda tan\u0131mlanan client bilgilerinde &#8216;RequireConsent&#8217; de\u011ferini &#8216;true&#8217; yapmam\u0131z yeterli olacakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n        public static IEnumerable&lt;Client&gt; GetClients()\r\n        {\r\n            return new List&lt;Client&gt;\r\n            {\r\n                new Client\r\n                        {\r\n                            ClientId = &quot;GarantiBankasi&quot;,\r\n                            .\r\n                            .\r\n                            .\r\n                        },\r\n                new Client\r\n                        {\r\n                            ClientId = &quot;HalkBankasi&quot;,\r\n                            .\r\n                            .\r\n                            .\r\n                        },\r\n                new Client\r\n                        {\r\n                            ClientId = &quot;OnlineBankamatik&quot;,\r\n                            .\r\n                            .\r\n                            .\r\n                            RequireConsent = true\r\n                        }\r\n            };\r\n        }\r\n<\/pre>\n<p>&#8216;RequireConsent&#8217; \u00f6zelli\u011finin true olarak ayarlanmas\u0131 neticesinde art\u0131k ilgili client&#8217;\u0131n istedi\u011fi bilgileri elde edip yetkilendirilebilmesi i\u00e7in kullan\u0131c\u0131dan onay almas\u0131 gerekmektedir. Haliyle bir onay sayfas\u0131na ihtiyac\u0131m\u0131z vard\u0131r.<\/p>\n<p>Hat\u0131rlarsan\u0131z e\u011fer yaz\u0131 serimizin 11. makalesinde<span style=\"font-size:12px;\">(bknz : <em><a href=\"https:\/\/www.gencayyildiz.com\/blog\/identityserver4-yazi-serisi-11-merkezi-uyelik-sistemi-temelleri\/\" rel=\"noopener noreferrer\" target=\"_blank\">Merkezi \u00dcyelik Sistemi Temelleri<\/a><\/em>)<\/span> Auth Server&#8217;da ki UI k\u0131sm\u0131n\u0131 h\u0131zl\u0131ca aya\u011fa kald\u0131rmam\u0131z\u0131 sa\u011flayan <a href=\"https:\/\/github.com\/IdentityServer\/IdentityServer4.Quickstart.UI\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"broken_link\">IdentityServer4.Quickstart.UI<\/a> paketini kullanm\u0131\u015ft\u0131k. \u0130lgili paketin getirdi\u011fi yap\u0131lanmalara g\u00f6z atarsak e\u011fer a\u015fa\u011f\u0131daki g\u00f6rselde oldu\u011fu gibi onay sayfas\u0131 ve i\u015flemleriyle ilgili t\u00fcm yap\u0131lanmalar\u0131 bar\u0131nd\u0131rmakta ve bizlere sunmaktad\u0131r.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #15 - Merkezi \u00dcyelik Sistemi \u2013 Onay(Consent) Sayfas\u0131 Ayarlama\" width=\"232\" height=\"367\" class=\"aligncenter size-full wp-image-19046\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama.jpg 232w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-190x300.jpg 190w\" sizes=\"auto, (max-width: 232px) 100vw, 232px\" \/><\/a><br \/>\nDolay\u0131s\u0131yla ilgili paket bizleri yine bir sayfa tasar\u0131m\u0131ndan kurtarmakta ve herhangi bir i\u015fe gerek kalmaks\u0131z\u0131n Auth Server a\u015fa\u011f\u0131daki gibi giri\u015f yapan kullan\u0131c\u0131y\u0131 direkt olarak ilgili onay sayfas\u0131na y\u00f6nlendirerek, kullan\u0131c\u0131 taraf\u0131ndan verilecek onay\u0131 beklemektedir.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama.gif\" alt=\"IdentityServer4 Yaz\u0131 Serisi #15 - Merkezi \u00dcyelik Sistemi \u2013 Onay(Consent) Sayfas\u0131 Ayarlama\" width=\"800\" height=\"553\" class=\"aligncenter size-full wp-image-19054\" \/><\/a><br \/>\nYukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc incelerseniz e\u011fer client&#8217;\u0131n hem &#8216;Config.cs&#8217; dosyas\u0131nda belirtilen &#8216;AllowedScopes&#8217; de\u011ferlerini<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-1.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #15 - Merkezi \u00dcyelik Sistemi \u2013 Onay(Consent) Sayfas\u0131 Ayarlama\" width=\"777\" height=\"65\" class=\"aligncenter size-full wp-image-19056\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-1.jpg 777w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-1-300x25.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-1-768x64.jpg 768w\" sizes=\"auto, (max-width: 777px) 100vw, 777px\" \/><\/a>hem de client uygulamas\u0131n\u0131n &#8216;Startup.cs&#8217; dosyas\u0131nda &#8216;Scope.Add&#8217; ile eklenen de\u011ferlerini<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/11\/IdentityServer4-Yazi-Serisi-15-Merkezi-Uyelik-Sistemi-\u2013-OnayConsent-Sayfasi-Ayarlama-2.jpg\" alt=\"IdentityServer4 Yaz\u0131 Serisi #15 - Merkezi \u00dcyelik Sistemi \u2013 Onay(Consent) Sayfas\u0131 Ayarlama\" width=\"249\" height=\"83\" class=\"aligncenter size-full wp-image-19057\" \/><\/a>getirmekte ve hangilerine onay verilece\u011fini kullan\u0131c\u0131ya sormaktad\u0131r. Yani anlayaca\u011f\u0131n\u0131z onay i\u015flemini aktifle\u015ftirmek i\u00e7in client&#8217;ta &#8216;RequireConsent&#8217; property&#8217;sine true de\u011ferinin atanmas\u0131 tek ba\u015f\u0131na yeterli olmaktad\u0131r.<\/p>\n<p>Burada dikkatinizi \u00e7ekmek istedi\u011fim iki husus mevcuttur.<\/p>\n<p>\u0130lk olarak onay sayfas\u0131nda bulunan ve zorunlu se\u00e7ilmek mecburiyetinde olan &#8216;Your user identifier&#8217; se\u00e7ene\u011fidir. Bu se\u00e7enek OpenId de\u011ferine kar\u015f\u0131l\u0131k gelmektedir. OpenId de\u011feri \u00f6nceki makalelerimizde de ifade edildi\u011fi gibi kullan\u0131c\u0131 id\/user id\/subject id&#8217;e kar\u015f\u0131l\u0131k gelen bir de\u011ferdir ve token i\u00e7erisinde kesinlikle olmak zorundad\u0131r. Bu y\u00fczden kullan\u0131c\u0131n\u0131n ilgili de\u011fere onay vermemek gibi bir h\u00fcvviyeti bulunmamaktad\u0131r.<\/p>\n<p>\u0130kinci olarak ise, verilen onay\u0131n kaydedilmesini sa\u011flayacak olan &#8216;Remember My Desicion(Kararlar\u0131m\u0131 Kaydet)&#8217; se\u00e7ene\u011finin ge\u00e7erli olabilmesi i\u00e7in &#8216;Offline Access&#8217; se\u00e7ene\u011finin se\u00e7ili olmamas\u0131 gerekti\u011fidir. &#8216;Offline Access&#8217;, refresh token&#8217;a kar\u015f\u0131l\u0131k gelmektedir. E\u011fer ki bir kullan\u0131c\u0131 refresh token kullan\u0131yorsa yeni eklenen yetkiler e\u015fli\u011finde bir access token \u00fcretilebilir. Bu durumda yeni bir onay gerektirebilir. Haliyle refresh token kullan\u0131l\u0131rken kullan\u0131c\u0131n\u0131n verdi\u011fi onay\u0131n kaydedilmemesi mant\u0131ken do\u011fru olaca\u011f\u0131ndan dolay\u0131 bu mant\u0131k default olarak kontrolle desteklenmi\u015ftir.<\/p>\n<blockquote style=\"color:purple;\"><p><u><strong>Refresh Token&#8217;a Neden Offline Access Denmektedir?<\/strong><\/u><br \/>\nKullan\u0131c\u0131 uygulamaya girmeksizin, offline bir \u015fekilde arkaplanda kullan\u0131c\u0131 ad\u0131na access token talep edip, edinebildi\u011fi i\u00e7in.\n<\/p><\/blockquote>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#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 onbe\u015finci makalesinde kullan\u0131c\u0131lardan istenilen bilgiler i\u00e7in onay sayfas\u0131n\u0131n nas\u0131l ayarlanabilece\u011fini inceleyece\u011fiz. \u015euana kadar client, Auth Server&#8217;dan kullan\u0131c\u0131ya dair istedi\u011fi t\u00fcm bilgileri, kullan\u0131c\u0131 giri\u015f yapt\u0131\u011f\u0131 taktirde elde edebilmekte ve kullanabilmektedir.&#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":[3916,3827,3876,3887,3915],"class_list":["post-19041","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-identityserver4","tag-consent-sayfasi-ayarlama","tag-identityserver4","tag-identityserver4-quickstart-ui","tag-merkezi-uyelik-sistemi","tag-onay-sayfasi-ayarlama"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/19041","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=19041"}],"version-history":[{"count":23,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/19041\/revisions"}],"predecessor-version":[{"id":19068,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/19041\/revisions\/19068"}],"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=19041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=19041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=19041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}