Azure Active Directory ‘de Application (Uygulama) Tanımlama

Bu yazı 02 Mayıs 2019 tarihinde Medium/@dynamics365 altında yayınlanmıştır. 15 Mayıs 2020 tarihinde emregulcan.com altında taşınmıştır.

İçerikler, yazının oluşturulduğu tarih için geçerli olup, Microsoft Dynamics 365 CE, Power Platform ve Azure hizmetlerinin sürekli iyileştirme ve güncelleme döngüsünden dolayı paylaşılan bilgilerde değişiklikler meydana gelmiş olabilir.

Merhaba,

Bu yazıda Azure Active Directory (AAD) ‘de Application (Uygulama) kayıt işlemlerini (App Registrations) anlatacağım.

Bu uygulamalar Dynamics 365 CE (CRM) tarafında Application User (Uygulama Kullanıcısı) tanımlamak için gereklidir. Application User konusunu bir sonraki yazıda detaylı olarak inceleyeceğiz.

Azure ‘da Application (Uygulama) Tanımlamak

Öncelikle https://portal.azure.com adresinden Azure Portal ‘a giriş yapmamız gerekmekte. Login aşamasında Administrator yetkisine sahip bir kullanıcısı olmasına ve Application oluşturmak istediğiniz Tenant ‘da bulunan bir hesap olmasına dikkat etmelisiniz.

Ayrıca geçerli bir Azure Subscription (Abonelik) sahibi olmalısınız.

Azure Portal ‘ın kullanım dilini değiştirmek için sağ üstte bulunan çark simgesine tıklayıp, Language listesinden istediğiniz dili seçebilirsiniz. Ben İngilizce kullanıyorum.

Azure Portal Ayarları
Azure Portal Ayarları
Azure Portal Ayarları — Dil Değiştirme
Azure Portal Ayarları — Dil Değiştirme

İlk olarak Active Directory ‘i açmamız gerekmekte, eğer kısayollarda / favorilerde yoksa, All Services (Tüm Hizmetler) kısmında Active Directory yazarak erişebilirsiniz.

Azure Portal — Arama Ekranı
Azure Portal — Arama Ekranı

Active Directory açtığımızda sol tarafta bulunan menüden App Registrations (Uygulama Kayıtları) ‘na girin. Eğer yanında Preview (Önizleme) yazan menüye girerseniz, yeni tanımlanan özellikler ve arayüz üzerinden işlem yapabilirsiniz.

Azure Portal — Active Directory Menüsü
Azure Portal — Active Directory Menüsü

Aşağıdaki ekran görüntüsünde görebileceğiniz üzere mevcut yapı Mayıs 2019 itibariyle sonlanacak ve yeni yapı (şuanda Preview olan) kullanılmaya başlanacak.

Bu nedenle, yazıda Preview olarak adlandırılan yeni yapı üzerinden devam edeceğim.

Azure Active Directory — App Registration (Uygulama Kayıtları) Ekranı
Azure Active Directory — App Registration (Uygulama Kayıtları) Ekranı
Azure Active Directory — App Registrations (Uygulama Kayıtları) Ekranı — PREVIEW
Azure Active Directory — App Registrations (Uygulama Kayıtları) Ekranı — PREVIEW

Bu ekranda New Registration (Yeni Kayıt) ya da Register an application (Bir uygulama kaydet) butonlarını kullanarak Active Directory ‘de yeni bir uygulama tanımlaması yapabiliriz.

App Registrations — Yeni Uygulama Ekleme Ekranı
App Registrations — Yeni Uygulama Ekleme Ekranı

Yeni uygulama kayıt ekranında aşağıdaki bilgileri girmemiz gerekmekte;

  • Name (Ad) alanına uygulamamızın adını girebiliriz. Girmiş olduğumuz bilgiler herkese açık olacaktır, bu nedenle uygulamayı tanımlayan ve kolay bir isim kullanmanızı tavsiye ederim.
  • Supported Account Types (Desteklenen Hesap Türleri) bölümünde bu uygulamayı kullanacak hedef kitle seçimi yapılmakta.
    • Help Me Choose (Seçmeme yardım edin) bağlantısına tıklayarak en doğru seçimi yapmak için bilgi alabilirsiniz. Benim yorumlarımı aşağıda bulabilirsiniz.
  • Redirect URI (Optional) (Yeniden Yönlendirme URI) ise, giriş yapan kullanıcının kimlik bilgisi doğrulandıktan sonra gerekli token vb. bilgilerin uygulamaya iletilmesi için gerekli olan callback-url bilgisidir. Eğer uygulamanız bir web uygulaması ise kullanabilirsiniz.

Supported Account Types

Supported Account Types bölümünde yer alan seçeneklerin detayları aşağıdaki gibidir, ihtiyacınıza uygun olanı seçip devam edebilirsiniz.

Supported Account Types — Yardım Ekranı
Supported Account Types — Yardım Ekranı
  • Accounts in this organizational directory only – Yalnızca bu kuruluş dizinindeki hesaplar (ORGANIZASYON_ADI)
    • Uygulamanızın kullanıcı hedef listesi sadece kendi organizasyonunuz (organizasyon Active Directory kullanıcıları) ise bu seçeneği seçiniz.
  • Accounts in any organizational directory – Herhangi bir kuruluş dizinindeki hesaplar
    • Eğer uygulamanızı dağıtacaksanız ve kullanıcı hedef kitleniz tüm Microsoft Active Directory kullanıcıları olacaksa bu seçeneği seçebilirsinz. Bu sayede Office 365 kullanan tüm işletmeler ve eğitim kurumları uygulamanıza erişebilir.
  • Accounts in any organizational directory and personal Microsoft account – Herhangi bir kuruluş dizinindeki hesaplar ve kişisel Microsoft hesapları (e.g. Skype, Xbox, Outlook.com)
    • İkinci seçenekte geçerli olan hedef kitle dışında, Skype, Xbox, Outlook.com gibi servisleri kullanan bireysel kullanıcılar da uygulamanıza erişebilir. Bu seçenek en kapsamlı kullanıcı hedef kitlesidir.

Tüm bilgileri girdikten sonra Register (Kaydol) butonu ile işlemi tamamlayabiliriz. Uygulama oluşturulduğunda aşağıdaki gibi bir ekran ile detaylarını görebiliriz.

Bu sayfada bulunan Application ID bilgisini daha sonra kullanacağız. (Bu bilgi daha önce Client ID olarak kullanılmaktaydı, daha sonra Application ID olarak değiştirildi. Bu nedenle Client ID = Application ID olarak düşünebilirsiniz.)

App Registrations — Detay Ekranı (Overview)
App Registrations — Detay Ekranı (Overview)

Detay sayfasının üst kısmında yer alan Endpoints (Uç Nokta) butonu, Application için geçerli olan OAuth, OpenID, Microsoft Graph API, Federation ve SAML bağlantıları için url bilgilerini içermektedir.

App Registrations — Endpoint Liste Ekranı
App Registrations — Endpoint Liste Ekranı

Sağ menüde bulunan başlıkların detayları;

Branding (Markalama)

Uygulamamız için logo, websitesi, kullanım koşulları vb. bağlantı bilgilerini düzenleyebiliriz

Authentication (Kimlik Doğrulaması)

Redirect URI düzenlemeleri, SPA (Single Page Application) ‘lar için token ayarları vb. düzenlenebilir.

Postman vb. ile kullanırken Access Token alabilmek için Callback url ihtiyacımız bulunmakta, bu nedenle Redirect URIs bölümünde web türünde bir Redirect URI tanımlaması yapmamız gerekli. Burada default olarak Dynamics 365 CE (CRM) url bilgimizi kullanabiliriz.

Eğer oluşturduğumuz Application ‘ı herhangi bir web sayfasında kullanacaksak Implicit Grant bölümünde yer alan seçeneklerde Access tokens ve ID tokens seçenekleri işaretli olmalıdır.

App Registrations — Authentication Ekranı
App Registrations — Authentication Ekranı
Certificates & Secrets (Sertifikalar ve Gizli Diziler)

Sertifikalarımızı yükleyebilir ya da Client Secret ‘lar oluşturabiliriz.

Dynamics 365 CE (CRM) ‘de kullanmak için bir Client Secret tanımlaması yapmalıyız. Bunun için New client secret butonunu kullanarak açılan pencerede gerekli tanımlamaları yapmalıyız.

App Registrations — Certificates & Secrets — Ana Ekranı
App Registrations — Certificates & Secrets — Ana Ekranı
App Registrations — Certificates & Secrets — Yeni Client Secret Oluşturma PopUp Ekranı
App Registrations — Certificates & Secrets — Yeni Client Secret Oluşturma PopUp Ekranı

Yukarıdaki ekranda Expires seçenekleri, oluşturulan Client Secret bilgisinin ne kadar süre ile geçerli olacağını belirtmektedir. Güvenlik ihtiyacınıza göre istediğinizi seçebilirsiniz. Description ise bu Client Secret için tanımlama bilgisini içermektedir.

Client Secret oluşturulduğunda aşağıda paylaştığım ekran görüntüsü gibi listelenecektir, Copy (Kopyala) ikonuna tıklayarak bu bilgiyi clipboard ‘a kopyalayabiliriz.

Client Secret için en önemli nokta; oluşan bilgiyi sadece ilk aşamada kopyalayabiliriz, eğer daha sonra bu ekrana girecek olursak herhangi bir şekilde kopyalama işlemi yapamayız. Bu nedenle ekranı kapatmadan Client Secret bilgisini kopyaladığınıza emin olun.

App Registrations — Certificates & Secrets — Ana Ekranı (İlk Listeleme)
App Registrations — Certificates & Secrets — Ana Ekranı (İlk Listeleme)
App Registrations — Certificates & Secrets — Ana Ekranı (Normal Listeleme)
App Registrations — Certificates & Secrets — Ana Ekranı (Normal Listeleme)
API Permissions (API İzinleri)

Oluşturduğumuz uygulama için gerekli olan API izinlerini tanımlayabiliriz. Biz Dynamics 365 CE (CRM) ile birlikte kullanacağımız için Dynamics CRM ‘i ekleyeceğiz.

Bunun için Add a permission butonunu kullanarak sağ tarafta açılan pencereden Dynamics CRM ‘i seçmeliyiz.

App Registrations — API Permissions — İzin Tanımlama Ekranı
App Registrations — API Permissions — İzin Tanımlama Ekranı

İkinci aşamada ise Delegated permissions ve user_impersonation seçenekleri işaretlenip, Add Permission butonu ile işlem tamamlanmalıdır.

App Registrations — API Permissions — İzin Tanımlama Ekranı — Dynamics 365 API
App Registrations — API Permissions — İzin Tanımlama Ekranı — Dynamics 365 API

Bu işlem sonucunda oluşturduğumuz Active Directory Application ile Dynamics 365 CE (CRM) Web API erişimi sağlayabiliriz.

Expose an API (Bir API ‘yi kullanıma sunma)

Bu bölümde ilgili Application için Scope (kapsam) tanımlamalarını yapabiliriz. Bunun için ilk olarak URI tanımlaması yapmamız gerekmekte, varsayılan değer olarak api://GUID_DEĞER şeklindedir (ör : api://1b82d3a3-ba41–48c3-be2b-66b100aa2e4a).

App Registrations — Expose an API — Ana Ekran
App Registrations — Expose an API — Ana Ekran
App Registrations — Expose an API — URI Tanımlama PopUP Ekran
App Registrations — Expose an API — URI Tanımlama PopUP Ekran

İkinci aşamada ise Add Scope butonu ile kapsam bilgilerini ekleyebiliriz.

App Registrations — Expose an API — Add Scope (Kapsam Ekleme)
App Registrations — Expose an API — Add Scope (Kapsam Ekleme)

Add a Scope butonuna tıkladığımızda ekranın sağ tarafında aşağıdaki gibi bir ekran açılacaktır, Who can consent? başlığında Admins and users ya da Admins only seçeneklerine göre form alanları değişmektedir.

App Registrations — Expose an API — Add Scope (Kapsam Ekleme) — Admins Only
App Registrations — Expose an API — Add Scope (Kapsam Ekleme) — Admins Only
App Registrations — Expose an API — Add Scope (Kapsam Ekleme) — Admins and Users
App Registrations — Expose an API — Add Scope (Kapsam Ekleme) — Admins and Users

Bu ekranda bulunan alanların açıklamaları;

Scope name: Bu API 2ye erişim izni istendiğinde ve kapsam için izin verildiğinde kullanıcıya görüntülenen tanımlama bilgisidir. Herhangi bir standart ya da kural olmamasına rağmen, belirli bir pattern ‘e göre isimlendirme yapmak mantıklı olacaktır. Örnek olarak Contact.Read.PersonalInformation gibi bir isimlendirme yapılabilir.

Admin consent display name, Admin consent description ve User consent display name, User consent description alanları ise izin kutusunda yer alacak açıklamalardır.

Scope (kapsam) tanımlamasından sonra bu API için bir Client (istemci) uygulaması tanımlamamız gerekmekte. Bunun için Add a client application (İstemci uygulaması ekle) butonunu kullanmalıyız. Ekranın sağ tarafında açılan ekranda Client ID bilgisini ve Authorized scopes bilgilerini girmeliyiz.

Owners (Sahipler)

Bu bölümde ilgili uygulamanın sahiplerini tanımlayabiliriz. Bu bölümde eklediğimiz kullanıcılar, ilgili Application için yönetici durumunda olacaktır, böylece Application bilgilerini düzenleme yetkileri olacaktır.

Manifest (Bildirim)

İlgili uygulamanın JSON formatlı manifesto dosyasını düzenlememizi sağlamakta. App Registration ekranlarında yaptığımız bir çok ayar bu Manifest dosyasında yer almakta, fakat bazı durumlarda manuel olarak düzenleme yapmamız gerekiyor. Böyle bir ihtiyacınız olduğunda öncelikli olarak mevcut Manifest dosyasınızı yedeklemenizi öneririm, bunun için Download butonunu kullanabilirsiniz.

Manifest dosyası için detaylı bilgilere https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-app-manifest adresinden ulaşabilirsiniz.

Umarım faydalı bir yazı olmuştur.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.