2016-05-02 19 views
6

Dynamics CRM 2016 Çevrimiçi ve Azure Active Directory ile kimlik doğrulaması yapmaya çalışıyorum. Burada tüm adımları uygulayın başardı:Dynamics CRM 2016 İstemci kimlik bilgileriyle Çevrimiçi Rest API'si OAuth akışı

https://msdn.microsoft.com/en-us/library/mt622431.aspx ve https://msdn.microsoft.com/en-us/library/gg327838.aspx

ancak bu adımların set-up nasıl kullanıcı adı kimlik doğrulama akışını göstermektedir. İstemci kimlik akışını kullanmak istiyorum. Bir web uygulaması olan Azure AD'de yeni bir uygulama oluşturdum. Bir müşteri kimliğim ve bir uygulama anahtarım var ve Dynamics CRM Online için izinleri ayarladım. Ben erişim jetonu almak mümkün, ama daha sonraki çağrılarda bu hatayı alıyorum: Kaçırdığım bir adım

HTTP Error 401 - Unauthorized: Access is denied

var mı? Bu akışın nasıl çalıştığına dair ayrıntılar veren bir yer hakkında bilen var mı? Bir "Uygulama kullanıcı" ekleyin ve CRM özel güvenlik Rol atamanız gerekir

 string clientId = "<client id>"; 
     string appKey = "<app key>"; 

     // Get the authority and resource URL at runtime 
     AuthenticationParameters ap = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri("https://<org address>/api/data/")).Result; 
     String authorityUrl = ap.Authority; 
     String resourceUrl = ap.Resource; 

     // Authenticate the registered application with Azure Active Directory. 
     AuthenticationContext authContext = new AuthenticationContext(authorityUrl); 
     ClientCredential clientCredential = new ClientCredential(clientId, appKey); 

     AuthenticationResult result = authContext.AcquireToken(resourceUrl, clientCredential); 

     HttpClient client = new HttpClient(); 
     client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken); 
     HttpResponseMessage response = client.GetAsync("https://<org address>/api/data/v8.1/EntityDefinitions").Result; 
+0

https://stackoverflow.com/a/48554845/3799784 benim yanıta bakın API'larının uygulama kredilerini desteklememesi mümkündür. Kimlik bilgileri akışı tarafından edinilen erişim belirtecinde bulunmayan belirli izinler (temsilci erişimi tarafından sağlanan) arıyor olabilirler. –

+0

Lütfen benzer soruma bakın http://stackoverflow.com/questions/37454539/using-adal-c-sharp-as-confidential-user-daemon-server-server-to-server-401-u/38008891 – IntegerWolf

+0

Olası çoğaltılan [Gizli Kullanıcı/Daemon Sunucusu/Sunucudan Sunucuya - 401 Yetkisiz olarak ADAL C# Kullanılıyor] (https://stackoverflow.com/questions/37454539/using-adal-c-sharp-as-confidential -kullanicitarafindanolusturulmus cin-sunucu-sunucu sunucuya-401-u) –

cevap

0

:

İşte benim kodudur. Bu olabilir http://stackoverflow.com/questions/37215742/401-unauthorized-authentication-using-rest-api-dynamics-crm-with-azure-ad#comment61963502_37215742 benzer

İlgili konular