2016-03-22 29 views
3

Çevrimiçi barındırılan Dynamics 2016 örneğimize bağlanmak için bir iç yönetim uygulamasını değiştiriyorum.Bir sunucu hizmetini Dynamics Online'a nasıl bağlarım?

Bazı çevrimiçi eğiticileri takip ederek, SDK'dan Microsoft.Xrm.Sdk.Client numaralı telefondan OrganizationServiceProxy kullanıyordum.

Bu, bağlantı kuracak bir kullanıcı adı ve parola gerektiriyor gibi görünüyor, ancak iyi çalışıyor, ancak belirli bir kullanıcının hesap ayrıntılarını gerektirmeyen bir şekilde bağlanmak istiyorum. Gördüğüm OAuth örneklerinin, UI olmadığı ve OAuth isteğini gösterecek gerçek bir kişinin olmadığı için uygun olduğunu düşünmüyorum.

public class DynamicsHelper 
{ 
    private OrganizationServiceProxy service; 

    public void Connect(string serviceUri, string username, string password) 
    { 
      var credentials = new ClientCredentials(); 
      credentials.UserName.UserName = username; 
      credentials.UserName.Password = password; 

      var organizationUri = new Uri(serviceUri); 
      this.service = new OrganizationServiceProxy(organizationUri, null, credentials, null); 
    } 
} 

Bir uygulama belirteci veya API anahtarı ile bağlanmanın bir yolu var mı? Microsoft Dynamics CRM Online veya CRM Online için Web API kullanmak veya Microsoft Dynamics CRM bağlan anlatıldığı gibi bir kurum içi Internet'e yönelik dağıtım (IFD) Eğer OAuth kullanmalıdır zaman dağıtımları bakacak internet ile

+0

:) yardımcı olur, ancak ben SDK'dan bu iki sayfa kontrol ediyorum: https: // msdn. microsoft.com/en-us/library/gg334502.aspx ve https://msdn.microsoft.com/en-us/library/mt595799.aspx – Polshgiant

+0

İkincisi gerçekten alakalı değil - dediğim gibi, bu bir Web sayfası veya bir kullanıcıya OAuth isteği sunabilecek herhangi bir şey. En kötü durum, bununla bağlantılı bir maliyete sahip olsa da, yönetici hizmeti için kukla bir kullanıcı oluşturmak zorunda olduğumuzu düşünüyorum. – Cylindric

+0

Bir kullanıcı olmadan CRM'de hiçbir şeye erişemezsiniz; ayrıca, kullanıcının aktif olarak kabul edilmesi için en az bir rol bulunmalıdır. Tek bir Active Directory içinde çalışacak olan CRM'e bağlanan bir uygulama oluşturduğunuzda, uygulama, CRM'e eklenen kullanıcılardan biri adına çalışacağından, bağlantı dizesinin içinde bir parola belirtmeniz gerekmeyecektir. sistemi. Yani, burada bile, hala kullanıcıya ihtiyacın var. Soru: neden ona sahip olmak istemiyorsun? – Alex

cevap

0

OAuth kullanarak web servisleri.

CRM web hizmetleri ile bağlanmak için OAuth kimlik doğrulamasını kullanmadan önce

, Başvurunuz ilk Microsoft Azure Active Directory ile kayıtlı olması gerekir. Azure Active Directory, uygulamanızın bir CRM kiracısında depolanan iş verilerine erişmesine izin verildiğini doğrulamak için kullanılır.

// TODO Substitute your correct CRM root service address, 
string resource = "https://mydomain.crm.dynamics.com"; 

// TODO Substitute your app registration values that can be obtained after you 
// register the app in Active Directory on the Microsoft Azure portal. 
string clientId = "e5cf0024-a66a-4f16-85ce-99ba97a24bb2"; 
string redirectUrl = "http://localhost/SdkSample"; 


// Authenticate the registered application with Azure Active Directory. 
AuthenticationContext authContext = 
    new AuthenticationContext("https://login.windows.net/common", false); 
AuthenticationResult result = 
    authContext.AcquireToken(resource, clientId, new Uri(redirectUrl)); 

P.S.: yönteminizi ilgili olarak, maksimum güvenlik için yapılandırma bölümleri, parola olarak düz metin saklamak onu crypt veya şifrelemek için değil için en iyi uygulamadır.

See walkhrough here

Umut bu ben creds gerektirmez bağlantı kodu görmedim

İlgili konular