{"id":130,"title":"Azure Portal'da Uygulama Kayd\u0131 Olu\u015fturma","content":"Azure platformunda uygulamalar\u0131n\u0131z\u0131n Azure Active Directory (Azure AD) kirac\u0131n\u0131zdaki kaynaklara g\u00fcvenli bir \u015fekilde eri\u015febilmesi i\u00e7in uygulama kayd\u0131 (App Registration) olu\u015fturman\u0131z gerekir. Bu i\u015flem, uygulaman\u0131za bir kimlik kazand\u0131rarak OAuth 2.0\/OpenID Connect protokolleri \u00fczerinden kimlik do\u011frulama ve yetkilendirme yapman\u0131z\u0131 sa\u011flar. Bu rehberde, Azure Portal \u00fczerinden uygulama kayd\u0131 olu\u015fturma s\u00fcrecini detayl\u0131 olarak ele alaca\u011f\u0131z. <h2>Neden Uygulama Kayd\u0131 Olu\u015fturmal\u0131y\u0131z?<\/h2> Uygulama kayd\u0131 olu\u015fturmak: <ul> <li>Uygulaman\u0131za Azure AD taraf\u0131ndan y\u00f6netilen bir kimlik kazand\u0131r\u0131r<\/li> <li>Microsoft Graph API, Azure REST API veya kendi API'lerinize g\u00fcvenli eri\u015fim sa\u011flar<\/li> <li>Single Sign-On (SSO) \u00f6zelli\u011fini uygulaman\u0131za entegre etmenizi sa\u011flar<\/li> <li>Kullan\u0131c\u0131 ad\u0131\/parola bilgilerini uygulaman\u0131zda saklamadan g\u00fcvenli kimlik do\u011frulama yapman\u0131z\u0131 sa\u011flar<\/li> <\/ul> <h2>\u00d6n Gereksinimler<\/h2> <ul> <li>Aktif bir Azure hesab\u0131<\/li> <li>Azure Active Directory \u00fczerinde uygulama kaydetme yetkisi (genellikle Global Administrator, Cloud Application Administrator veya Application Administrator rollerine sahip kullan\u0131c\u0131lar)<\/li> <\/ul> <h2>Ad\u0131m 1: Azure Portal'a Giri\u015f<\/h2> <ol> <li><a href=\"https:\/\/portal.azure.com\/\">Azure Portal<\/a>'a gidin ve hesab\u0131n\u0131zla oturum a\u00e7\u0131n.<\/li> <li>\u00dcst arama \u00e7ubu\u011funda \"Azure Active Directory\" yaz\u0131p se\u00e7in.<\/li> <li>Sol men\u00fcden \"App registrations\" (Uygulama kay\u0131tlar\u0131) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <\/ol> <h2>Ad\u0131m 2: Yeni Uygulama Kayd\u0131 Olu\u015fturma<\/h2> <ol> <li>\"New registration\" (Yeni kay\u0131t) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <li>A\u015fa\u011f\u0131daki bilgileri doldurun: <ul> <li><strong>Name<\/strong> (Ad): Uygulaman\u0131z\u0131n ad\u0131n\u0131 girin (\u00f6rne\u011fin, \"MyCompanyApp\")<\/li> <li><strong>Supported account types<\/strong> (Desteklenen hesap t\u00fcrleri): Uygulaman\u0131z\u0131n eri\u015fmesini istedi\u011finiz hesap t\u00fcrlerini se\u00e7in: <ul> <li><strong>Accounts in this organizational directory only<\/strong> (Yaln\u0131zca bu organizasyon dizinindeki hesaplar) - Sadece kendi kirac\u0131n\u0131zdaki kullan\u0131c\u0131lar<\/li> <li><strong>Accounts in any organizational directory<\/strong> (Herhangi bir organizasyon dizinindeki hesaplar) - T\u00fcm Azure AD kirac\u0131lar\u0131ndaki kullan\u0131c\u0131lar<\/li> <li><strong>Accounts in any organizational directory and personal Microsoft accounts<\/strong> (Herhangi bir organizasyon dizinindeki hesaplar ve ki\u015fisel Microsoft hesaplar\u0131) - Azure AD kullan\u0131c\u0131lar\u0131 ve ki\u015fisel Microsoft hesaplar\u0131<\/li> <\/ul> <\/li> <li><strong>Redirect URI<\/strong> (Y\u00f6nlendirme URI'si): Kullan\u0131c\u0131lar kimlik do\u011frulamay\u0131 tamamlad\u0131ktan sonra y\u00f6nlendirilecekleri URI'yi belirtin: <ul> <li>Platform se\u00e7in (Web, SPA, iOS\/macOS, Android veya Mobile and desktop applications)<\/li> <li>URI'yi girin (\u00f6rne\u011fin, <code>https:\/\/myapp.example.com\/auth-callback<\/code>)<\/li> <\/ul> <\/li> <\/ul> <\/li> <li>\"Register\" (Kaydet) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <\/ol> <h2>Ad\u0131m 3: Kimlik Bilgilerini Alma<\/h2> Uygulama kayd\u0131 olu\u015fturuldu\u011funda, a\u015fa\u011f\u0131daki \u00f6nemli kimlik bilgilerini alacaks\u0131n\u0131z: <ol> <li><strong>Application (client) ID<\/strong> (Uygulama (istemci) Kimli\u011fi): Uygulaman\u0131z\u0131 benzersiz \u015fekilde tan\u0131mlayan GUID.<\/li> <li><strong>Directory (tenant) ID<\/strong> (Dizin (kirac\u0131) Kimli\u011fi): Azure AD kirac\u0131n\u0131z\u0131 tan\u0131mlayan GUID.<\/li> <\/ol> Bu de\u011ferler, uygulama kodunuzda Azure AD'ye kar\u015f\u0131 kimlik do\u011frulama yaparken kullan\u0131lacakt\u0131r. <h2>Ad\u0131m 4: \u0130stemci Gizli Anahtar\u0131 (Client Secret) Olu\u015fturma<\/h2> Web uygulamalar\u0131 veya API'ler i\u00e7in genellikle bir istemci gizli anahtar\u0131 olu\u015fturman\u0131z gerekir: <ol> <li>Sol men\u00fcden \"Certificates &amp; secrets\" (Sertifikalar ve gizli anahtarlar) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>\"Client secrets\" (\u0130stemci gizli anahtarlar\u0131) sekmesinde \"New client secret\" (Yeni istemci gizli anahtar\u0131) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <li>Bir a\u00e7\u0131klama girin ve s\u00fcresini se\u00e7in (6 ay, 12 ay veya 24 ay).<\/li> <li>\"Add\" (Ekle) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <li>Olu\u015fturulan gizli anahtar\u0131n de\u011ferini hemen kopyalay\u0131n ve g\u00fcvenli bir yerde saklay\u0131n. Bu de\u011fer, bir daha g\u00f6r\u00fcnt\u00fclenmeyecektir!<\/li> <\/ol> <h2>Ad\u0131m 5: API \u0130zinlerini Yap\u0131land\u0131rma<\/h2> Uygulaman\u0131z\u0131n API'lere eri\u015febilmesi i\u00e7in gerekli izinleri yap\u0131land\u0131r\u0131n: <ol> <li>Sol men\u00fcden \"API permissions\" (API izinleri) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>\"Add a permission\" (\u0130zin ekle) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <li>\u0130zin vermek istedi\u011finiz API'yi se\u00e7in (\u00f6rne\u011fin, Microsoft Graph).<\/li> <li>\u0130zin t\u00fcr\u00fcn\u00fc se\u00e7in: <ul> <li><strong>Delegated permissions<\/strong> (Yetkilendirilmi\u015f izinler): Kullan\u0131c\u0131 ad\u0131na eri\u015fim<\/li> <li><strong>Application permissions<\/strong> (Uygulama izinleri): Kullan\u0131c\u0131 olmadan arka planda eri\u015fim<\/li> <\/ul> <\/li> <li>Gerekli izinleri se\u00e7in ve \"Add permissions\" (\u0130zinleri ekle) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <li>Uygulama izinleri i\u00e7in, \"Grant admin consent for \" (Y\u00f6netici onay\u0131 ver) d\u00fc\u011fmesine t\u0131klayarak kirac\u0131 genelinde onay verin.<\/li> <\/ol> <h2>Ad\u0131m 6: Kimlik Do\u011frulama Ayarlar\u0131n\u0131 Yap\u0131land\u0131rma<\/h2> <ol> <li>Sol men\u00fcden \"Authentication\" (Kimlik Do\u011frulama) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>\u0130htiyac\u0131n\u0131za g\u00f6re ek y\u00f6nlendirme URI'leri ekleyin.<\/li> <li>\"Implicit grant and hybrid flows\" (\u00d6rt\u00fck hibe ve hibrit ak\u0131\u015flar) b\u00f6l\u00fcm\u00fcnde, uygulaman\u0131za uygun ak\u0131\u015f t\u00fcrlerini etkinle\u015ftirin: <ul> <li>ID tokens (Kimlik belirte\u00e7leri)<\/li> <li>Access tokens (Eri\u015fim belirte\u00e7leri)<\/li> <\/ul> <\/li> <li>\"Advanced settings\" (Geli\u015fmi\u015f ayarlar) b\u00f6l\u00fcm\u00fcnde: <ul> <li>\"Allow public client flows\" (Genel istemci ak\u0131\u015flar\u0131na izin ver): Mobil ve masa\u00fcst\u00fc uygulamalar i\u00e7in etkinle\u015ftirin.<\/li> <\/ul> <\/li> <li>\"Save\" (Kaydet) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <\/ol> <h2>Ad\u0131m 7: Eri\u015fim Belirteci Yap\u0131land\u0131rmas\u0131 (\u0130ste\u011fe Ba\u011fl\u0131)<\/h2> <ol> <li>Sol men\u00fcden \"Token configuration\" (Belirte\u00e7 yap\u0131land\u0131rmas\u0131) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>\"Add optional claim\" (\u0130ste\u011fe ba\u011fl\u0131 talep ekle) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <li>Belirte\u00e7 t\u00fcr\u00fcn\u00fc se\u00e7in (ID, Access, SAML).<\/li> <li>\u0130htiyac\u0131n\u0131z olan talepleri se\u00e7in ve \"Add\" (Ekle) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <\/ol> <h2>Ad\u0131m 8: Uygulama Manifestini \u00d6zelle\u015ftirme (\u0130ste\u011fe Ba\u011fl\u0131)<\/h2> <ol> <li>Sol men\u00fcden \"Manifest\" (Manifest) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>Uygulaman\u0131z\u0131n davran\u0131\u015f\u0131n\u0131 daha ayr\u0131nt\u0131l\u0131 yap\u0131land\u0131rmak i\u00e7in JSON format\u0131ndaki manifestte de\u011fi\u015fiklikler yapabilirsiniz.<\/li> <li>De\u011fi\u015fiklikleri yapt\u0131ktan sonra \"Save\" (Kaydet) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <\/ol> <h2>Ad\u0131m 9: Branding ve \u00d6zelle\u015ftirme<\/h2> <ol> <li>Sol men\u00fcden \"Branding\" (Markalama) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>Uygulama ad\u0131, logosu, ana sayfa URL'si, kullan\u0131m ko\u015fullar\u0131 URL'si ve gizlilik bildirimi URL'si gibi se\u00e7enekleri \u00f6zelle\u015ftirin.<\/li> <li>\"Save\" (Kaydet) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li> <\/ol> <h2>Ad\u0131m 10: Sahip Atama (\u0130ste\u011fe Ba\u011fl\u0131)<\/h2> <ol> <li>Sol men\u00fcden \"Owners\" (Sahipler) se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li> <li>\"Add owners\" (Sahip ekle) d\u00fc\u011fmesine t\u0131klayarak uygulaman\u0131z\u0131 y\u00f6netecek ek kullan\u0131c\u0131lar atayabilirsiniz.<\/li> <\/ol> <h2>Uygulama Kodunda Kullan\u0131m \u00d6rne\u011fi<\/h2> A\u015fa\u011f\u0131da, Node.js ile MSAL (Microsoft Authentication Library) kullanarak Azure AD kimlik do\u011frulamas\u0131 yapan basit bir \u00f6rnek bulunmaktad\u0131r: <pre><code >const msal = require('@azure\/msal-node'); const config = { auth: { clientId: \"UYGULAMA_KIMLIGINIZ\", authority: \"https:\/\/login.microsoftonline.com\/KIRACI_KIMLIGINIZ\", clientSecret: \"ISTEMCI_GIZLI_ANAHTARINIZ\" } }; const cca = new msal.ConfidentialClientApplication(config); async function getToken() { const tokenRequest = { scopes: }; try { const response = await cca.acquireTokenByClientCredential(tokenRequest); return response.accessToken; } catch (error) { console.log(\"Hata olu\u015ftu:\", error); } } \/\/ Token'\u0131 kullanarak API \u00e7a\u011fr\u0131lar\u0131 yap\u0131n getToken().then(token =&gt; { console.log(\"Access Token:\", token); \/\/ Bu token ile API \u00e7a\u011fr\u0131lar\u0131 yapabilirsiniz }); <\/code><\/pre> <h2>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h2> <ol> <li><strong>AADSTS65001: Kullan\u0131c\u0131n\u0131n onay\u0131\/iznini gerektiren yetkilendirilmi\u015f izinler i\u00e7in gerekli y\u00f6netici onay\u0131 verilmemi\u015f<\/strong> <ul> <li>\u00c7\u00f6z\u00fcm: Azure AD y\u00f6neticisinden \"Grant admin consent\" (Y\u00f6netici onay\u0131 ver) d\u00fc\u011fmesine t\u0131klamas\u0131n\u0131 isteyin.<\/li> <\/ul> <\/li> <li><strong>AADSTS700016: Uygulama bulunamad\u0131<\/strong> <ul> <li>\u00c7\u00f6z\u00fcm: Uygulama (istemci) Kimli\u011finin do\u011fru oldu\u011fundan emin olun.<\/li> <\/ul> <\/li> <li><strong>AADSTS7000215: Ge\u00e7ersiz istemci gizli anahtar\u0131 sa\u011fland\u0131<\/strong> <ul> <li>\u00c7\u00f6z\u00fcm: \u0130stemci gizli anahtar\u0131n\u0131z\u0131n s\u00fcresi dolmu\u015f olabilir, yeni bir tane olu\u015fturun.<\/li> <\/ul> <\/li> <li><strong>Y\u00f6nlendirme URI'si e\u015fle\u015fmiyor<\/strong> <ul> <li>\u00c7\u00f6z\u00fcm: Uygulaman\u0131zda kulland\u0131\u011f\u0131n\u0131z y\u00f6nlendirme URI'sinin, Azure Portal'da kaydetti\u011finizle tam olarak e\u015fle\u015fti\u011finden emin olun.<\/li> <\/ul> <\/li> <\/ol> <h2>En \u0130yi Uygulamalar<\/h2> <ol> <li><strong>Gizli anahtarlar\u0131 g\u00fcvenli tutun<\/strong>: \u0130stemci gizli anahtarlar\u0131n\u0131 kodunuza do\u011frudan yazmak yerine Azure Key Vault veya ortam de\u011fi\u015fkenleri gibi g\u00fcvenli y\u00f6ntemlerle saklay\u0131n.<\/li> <li><strong>En Az Ayr\u0131cal\u0131k \u0130lkesi<\/strong>: Uygulaman\u0131za sadece ihtiya\u00e7 duydu\u011fu minimum izinleri verin.<\/li> <li><strong>Sertifika Kullan\u0131m\u0131<\/strong>: Uzun vadeli ve daha g\u00fcvenli kimlik do\u011frulama i\u00e7in istemci gizli anahtar\u0131 yerine sertifikalar kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn.<\/li> <li><strong>D\u00fczenli Rotasyon<\/strong>: \u0130stemci gizli anahtarlar\u0131n\u0131 d\u00fczenli olarak yenileyin ve eski anahtarlar\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n.<\/li> <li><strong>\u0130zleme ve Denetim<\/strong>: Azure AD Denetim G\u00fcnl\u00fcklerini kullanarak uygulama etkinliklerini d\u00fczenli olarak izleyin.<\/li> <\/ol> <h2>Sonu\u00e7<\/h2> Azure Portal'da uygulama kayd\u0131 olu\u015fturmak, uygulamalar\u0131n\u0131z\u0131n Azure hizmetleriyle g\u00fcvenli bir \u015fekilde entegre olmas\u0131n\u0131 sa\u011flayan temel bir ad\u0131md\u0131r. Bu rehberde \u00f6\u011frendi\u011finiz ad\u0131mlar\u0131 takip ederek, uygulaman\u0131z i\u00e7in kimlik do\u011frulama ve yetkilendirme altyap\u0131s\u0131n\u0131 kurabilir, modern kimlik do\u011frulama protokollerinin avantajlar\u0131ndan yararlanabilirsiniz. Daha fazla bilgi i\u00e7in <a href=\"https:\/\/docs.microsoft.com\/azure\/active-directory\/develop\/\">Microsoft Identity Platform dok\u00fcmantasyonunu<\/a> inceleyebilirsiniz.","excerpt":"Azure platformunda uygulamalar\u0131n\u0131z\u0131n Azure Active Directory (Azure AD) kirac\u0131n\u0131zdaki kaynaklara g\u00fcvenli bir \u015fekilde eri\u015febilmesi i\u00e7in...","created_at":"2025-04-05 10:25:42","updated_at":"2026-09-23 10:54:02","category_id":6,"view_count":822,"reading_time":7,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2025-04-05 10:25:42","featured_image":"resimyok.jpg","slug":"azure-portalda-uygulama-kaydi-olusturma","category_name":"Sistem","category_slug":"sistem"}