﻿
{"id":17294,"date":"2020-08-09T23:27:01","date_gmt":"2020-08-09T23:27:01","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=17294"},"modified":"2020-08-09T23:27:45","modified_gmt":"2020-08-09T23:27:45","slug":"azure-functions-serisi-10-authorization","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/azure-functions-serisi-10-authorization\/","title":{"rendered":"Azure Functions Serisi #10 &#8211; Authorization"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Azure Function uygulamalar\u0131nda ki Authorization seviyelerini inceleyece\u011fiz.<\/p>\n<h3 style=\"color: #e83e8c;\">Authorization Level Nedir?<\/h3>\n<p>Azure Function uygulamas\u0131 olu\u015ftururken bizden beklenen ve function&#8217;a d\u0131\u015far\u0131dan eri\u015fim seviyesini belirlememizi sa\u011flayan yetki seviyesidir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization.jpg\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"340\" height=\"130\" class=\"alignleft size-full wp-image-17296\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization.jpg 340w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-300x115.jpg 300w\" sizes=\"auto, (max-width: 340px) 100vw, 340px\" \/><\/a>Yandaki g\u00f6rselde de g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere Visual Studio \u00fczerinden Azure Function uygulamas\u0131 olu\u015ftururken kar\u015f\u0131m\u0131za &#8216;Function&#8217;, &#8216;Anonymous&#8217; ve &#8216;Admin&#8217; olmak \u00fczere \u00fc\u00e7 farkl\u0131 Authorization seviyesi gelmektedir. \u015eimdi gelin bu seviyelerin ne olduklar\u0131n\u0131 ve eri\u015fimsel a\u00e7\u0131dan nas\u0131l bir davran\u0131\u015f sergilediklerini inceleyelim;<\/p>\n<blockquote><p><em style=\"color:orange;\">Authorization, t\u00fcm trigger t\u00fcrleri i\u00e7in ge\u00e7erlidir.<\/em><\/p><\/blockquote>\n<p>Tabi bu seviyeleri eri\u015fimsel koruma bak\u0131m\u0131ndan en k\u00fc\u00e7\u00fckten b\u00fcy\u00fc\u011fe g\u00f6re s\u0131ralayarak izah etmekte fayda var.<\/p>\n<ul>\n<li><strong>Anonymous<\/strong><br \/>\nOlu\u015fturulan functionlara d\u0131\u015far\u0131dan herhangi bir yetkilendirme olmaks\u0131z\u0131n eri\u015filebilmesi anlam\u0131na gelmektedir.\n<\/li>\n<li><strong>Function<\/strong><br \/>\nFunction seviyesinde eri\u015fim belirleyebilmek i\u00e7in kullan\u0131l\u0131r. Azure portal \u00fczerinden eri\u015fim belirleyicisi olarak kullan\u0131lacak &#8216;Function Key&#8217; verilmekte ve t\u00fcm eri\u015fim bu key \u00fczerinden ger\u00e7ekle\u015ftirilmektedir.\n<\/li>\n<li><strong>Admin<\/strong><br \/>\nBu level&#8217;da &#8216;Function&#8217;a \u00f6zg\u00fc bir eri\u015fim belirleyicisi olarak koruma sa\u011flar. &#8216;Function Key&#8217;e nazaran &#8216;Master Key&#8217; ile eri\u015fim sa\u011flanmas\u0131n\u0131 ger\u00e7ekle\u015ftirmektedir.<\/p>\n<p><em style=\"color:purple;\">Function Key ile Master Key aras\u0131ndaki fark nedir?<\/em><br \/>\nAzure; authorization i\u015flemlerinde bizlere \u015fimdi s\u00f6z\u00fcn\u00fc etti\u011fimiz &#8216;function key&#8217; ve &#8216;master key&#8217; ile birlikte ayriyetten &#8216;default key&#8217; isimli bir de\u011fer daha vermektedir. Bu &#8216;default key&#8217; de\u011feri ile yetkilendirmesi &#8216;Function&#8217; seviyesinde olanlara eri\u015filebilirken, &#8216;Admin&#8217; seviyesinde olanlara eri\u015fim sa\u011flanamamaktad\u0131r.<\/p>\n<blockquote style=\"color:red;\"><p><em>En y\u00fcksek seviyede koruma &#8216;Admin&#8217;dir.<\/em><\/p><\/blockquote>\n<p>Burada functionlar\u0131n authorization seviyelerine g\u00f6re eri\u015fimi i\u00e7in kulland\u0131klar\u0131 key de\u011ferlerine kar\u015f\u0131 \u015f\u00f6yle bir tablo kar\u015f\u0131m\u0131za \u00e7\u0131kmaktad\u0131r;<\/p>\n<table>\n<thead>\n<tr>\n<th>Function<\/th>\n<th>Admin<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"color:blue;text-align:center;\">\nfunction key<br \/>\ndefault key\n<\/td>\n<td style=\"color:blue;text-align:center;\">\nmaster key\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<h3 style=\"color: #e83e8c;\">Bir Function&#8217;da Authorization&#8217;\u0131 Canl\u0131 G\u00f6relim<\/h3>\n<p>\u015eimdi gelin <a href=\"https:\/\/portal.azure.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">Azure portal<\/a> \u00fczerinden bir Azure Function olu\u015ftural\u0131m ve yukar\u0131da bahsedilen t\u00fcm key&#8217;lerle birlikte authorization level&#8217;lar\u0131n\u0131 inceleyelim.<\/p>\n<p>\u00d6ncelikle &#8216;Authorization level&#8217; de\u011feri &#8216;Function&#8217; olan bir Azure Function olu\u015fturunuz. Olu\u015fturulan function&#8217;\u0131n overview sayfas\u0131na giriniz ve sol men\u00fcden &#8216;Function Keys&#8217; sekmesine t\u0131klay\u0131n\u0131z.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-1.jpg\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"771\" height=\"283\" class=\"aligncenter size-full wp-image-17314\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-1.jpg 771w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-1-300x110.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-1-768x282.jpg 768w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><\/a><br \/>\nG\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere burada &#8216;default key&#8217; bulunmaktad\u0131r. Bizler bu key ile function&#8217;\u0131m\u0131za eri\u015fim sa\u011flayabilmekteyiz. Ayriyetten &#8216;function key&#8217; olu\u015fturabilmek i\u00e7in hemen \u00fcstteki &#8216;New function key&#8217; butonuna t\u0131klayabilirsiniz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-2.jpg\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"625\" height=\"145\" class=\"aligncenter size-full wp-image-17316\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-2.jpg 625w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-2-300x70.jpg 300w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><br \/>\nOlu\u015fturulacak key&#8217;in ad\u0131n\u0131 belirttikten sonra value k\u0131sm\u0131nda istedi\u011finiz de\u011feri belirtebilirsiniz. Bo\u015f ge\u00e7ti\u011finiz taktirde kendisinin g\u00fcvenli\u011fin hakk\u0131n\u0131 verecek cinsten otomatik bir de\u011fer olu\u015fturaca\u011f\u0131ndan \u015f\u00fcpheniz olmas\u0131n.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-3.jpg\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"516\" height=\"257\" class=\"aligncenter size-full wp-image-17318\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-3.jpg 516w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-3-300x149.jpg 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/a><br \/>\nSonu\u00e7 olarak &#8216;Function&#8217; authorization level&#8217;\u0131na kar\u015f\u0131l\u0131k function keylerimizi olu\u015fturmu\u015f bulunmaktay\u0131z. Bu trigger&#8217;\u0131 tetikleyebilmek i\u00e7in her iki key&#8217;den birini kullanman\u0131z yeterli olacakt\u0131r.<\/p>\n<p><strong>Peki nas\u0131l kullanaca\u011f\u0131z?<\/strong><br \/>\nBunun i\u00e7in &#8216;Code + Test&#8217; sayfas\u0131nda g\u00fczel bir \u00f6rnek mevcuttur.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-4.jpg\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"787\" height=\"283\" class=\"aligncenter size-full wp-image-17319\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-4.jpg 787w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-4-300x108.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-4-768x276.jpg 768w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/a><br \/>\n\u0130lgili sayfaya geldi\u011finizde &#8216;Get function URL&#8217; k\u0131sm\u0131ndan size verilecek url&#8217;de eri\u015fim belirleyicisi olarak hangi key&#8217;in kullanmas\u0131 gerekti\u011fini se\u00e7ebilmektesiniz. Bunun i\u00e7in biraz \u00f6nce olu\u015fturdu\u011fumuz key de\u011ferlerimiz ekran al\u0131nt\u0131s\u0131ndan da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz \u00fczere ilgili tool&#8217;da listelenmektedir. Biryandan da function&#8217;a eri\u015fim sa\u011flayabilmek i\u00e7in olu\u015fturulmu\u015f url&#8217;i incelerseniz e\u011fer<br \/>\n<code style=\"color:red;\">https:\/\/functionsexample.azurewebsites.net\/api\/HttpTrigger1<strong style=\"color:blue;\">?code=LOnO9aL50gPGZdZSTwNnZ\/SSWw81d9\/RuCSS7L4Vp9psaEL5kpyc4A==<\/strong><\/code><br \/>\n\u015feklinde oldu\u011funu g\u00f6receksiniz. Burada se\u00e7ilen key, &#8216;code&#8217; isminde bir querystring de\u011fi\u015fkeni ile url \u00fczerinde ta\u015f\u0131nmakta ve b\u00f6ylece ilgili function&#8217;a eri\u015fim do\u011frulanarak, sa\u011flanabilmektedir.<\/p>\n<p>\u0130lgili url&#8217;i a\u015fa\u011f\u0131daki gibi test ederseniz e\u011fer;<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization.gif\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"800\" height=\"106\" class=\"aligncenter size-full wp-image-17327\" \/><\/a>key de\u011ferinin ufakc\u0131kda olsa de\u011fi\u015ftirilmesi neticesinde function&#8217;\u0131n tetiklenmedi\u011fini g\u00f6zlemleyebilirsiniz.<\/p>\n<blockquote><p><em style=\"color:green;\">Local&#8217;de tan\u0131mlanm\u0131\u015f bir function hangi authorization level ile olu\u015fturulmu\u015f olursa olsun kullan\u0131rken yetki gerektirmemektedir. Yetki bir tek cloud&#8217;da \u00f6nemsenmektedir.<\/em><\/p><\/blockquote>\n<p>&#8216;Admin&#8217; seviyesinde olu\u015fturulan bir function&#8217;da ise sade ve sadece &#8216;master key&#8217; ile eri\u015fim sa\u011flanabilmektedir. Bunu denemenizi tavsiye ederim&#8230;<\/p>\n<p><strong>App Keys \u0130le Ortak Key Olu\u015fturma<\/strong><br \/>\nAuthentication seviyesi &#8216;Function&#8217; olan her bir function&#8217;a \u00f6zel ayr\u0131 ayr\u0131 function key olu\u015fturmaktansa, merkezi tek bir default key \u00fcreterek bu key&#8217;i m\u00fc\u015fterek olarak kullanabilirsiniz. Benzer mant\u0131kla authentication seviyesi &#8216;Admin&#8217; olan functionlara ise ortak &#8216;master key&#8217; \u00fcretebilir ve kullanabilirsiniz. Bunun i\u00e7in function app&#8217;e giriniz ve sol men\u00fcdeki &#8216;Functions&#8217; kategorisindeki &#8216;App keys&#8217; sekmesine t\u0131klay\u0131n\u0131z.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-5.jpg\" alt=\"Azure Functions Serisi #10 - Authorization\" width=\"747\" height=\"423\" class=\"aligncenter size-full wp-image-17334\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-5.jpg 747w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/08\/Azure-Functions-Serisi-10-Authorization-5-300x170.jpg 300w\" sizes=\"auto, (max-width: 747px) 100vw, 747px\" \/><\/a><br \/>\nA\u00e7\u0131lan sayfada authorization level&#8217;\u0131na g\u00f6re; &#8216;Admin&#8217; i\u00e7in &#8216;_master&#8217; ve &#8216;Function&#8217; i\u00e7in &#8216;default&#8217; de\u011ferleri tan\u0131mlanm\u0131\u015ft\u0131r ve ortak olarak kullan\u0131labilecek \u015fekilde bulunmaktad\u0131rlar. Tabi ki de istek do\u011frultusunda m\u00fc\u015fterek bir key ekleyebilmekte ya da var olanlar\u0131 silebilmekte yahut g\u00fcncelleyebilmektesiniz.<\/p>\n<p>Nihai olarak, Azure Function servislerinde \u00f6nem ve kritik arz eden authorization konusunu t\u00fcm detaylar\u0131yla incelemi\u015f ve yap\u0131sal olarak tan\u0131mlayabilmi\u015f bulunmaktay\u0131z. Sonraki i\u00e7eriklerimizde ise Azure Function Binding yap\u0131s\u0131 \u00fczerine detayl\u0131ca bir incelemede bulunaca\u011f\u0131z. O halde ilgili makalelerde bulu\u015funcaya dek \u015fimdilik g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>\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, Bu i\u00e7eri\u011fimizde Azure Function uygulamalar\u0131nda ki Authorization seviyelerini inceleyece\u011fiz. Authorization Level Nedir? Azure Function uygulamas\u0131 olu\u015ftururken bizden beklenen ve function&#8217;a d\u0131\u015far\u0131dan eri\u015fim seviyesini belirlememizi sa\u011flayan yetki seviyesidir. Yandaki g\u00f6rselde de g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere Visual&#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":17011,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3121],"tags":[3722,3721,3720,3727,3719,3725,3723,3724,3726,3728],"class_list":["post-17294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","tag-authorization-admin","tag-authorization-anonymous","tag-authorization-function","tag-azure-default-key","tag-azure-function-authorization","tag-azure-function-key","tag-azure-http-trigger-function-key","tag-azure-http-trigger-master-key","tag-azure-master-key","tag-azure-trigger-default-key"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17294","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=17294"}],"version-history":[{"count":36,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17294\/revisions"}],"predecessor-version":[{"id":17337,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/17294\/revisions\/17337"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/17011"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=17294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=17294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=17294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}