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.
İ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.
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.
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.
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.
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.
- 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.)
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.
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.
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.
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.
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.
İkinci aşamada ise Delegated permissions ve user_impersonation seçenekleri işaretlenip, Add Permission butonu ile işlem tamamlanmalıdır.
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).
İkinci aşamada ise Add Scope butonu ile kapsam bilgilerini ekleyebiliriz.
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.
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.