2016-03-22 8 views
3

オンラインでホストされているダイナミック2016インスタンスに接続するための内部管理アプリケーションを変更しています。ダイナミクスオンラインにサーバーサービスを接続するには

いくつかのオンラインチュートリアルに続いて、私はSDKのMicrosoft.Xrm.Sdk.ClientのうちOrganizationServiceProxyを使用しています。

これは正しく動作するユーザ名とパスワードが必要なようですが、特定のユーザのアカウントの詳細を必要としない何らかの方法で接続したいと考えています。 OAuthリクエストを表示するためのUIはなく、実際の人もいないので、私が見たOAuthの例は適切ではないと思います。

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); 
    } 
} 

アプリケーショントークンまたはAPIキーに接続する方法はありますか? Microsoft Dynamics CRMへの接続で説明したように、あなたがCRMオンラインまたはオンプレミスインターネット向けの展開のためのWeb APIを使用した場合の展開 が直面しているのMicrosoft Dynamics CRMオンラインまたはインターネットで

+0

を私はcredsをする必要はありません接続コードを見たことがないが、私はSDKからこれらの2つのページをチェックアウトします:https://でMSDN。 microsoft.com/en-us/library/gg334502.aspxおよびhttps://msdn.microsoft.com/en-us/library/mt595799.aspx – Polshgiant

+0

2番目は本当に関連性がありません - 私が言ったように、これはOAuthリクエストをユーザーに提示することができるもの最悪のケースは、管理サービスのためのダミーのユーザーを作成する必要があるということですが、それにはコストが伴います。 – Cylindric

+0

CRMなしでユーザーなしでアクセスすることはできません。さらに、ユーザがアクティブなものとみなされるためには、少なくとも1つの役割がユーザに関連付けられていなければならない。単一のActive Directory内で動作するCRMに接続するアプリケーションを作成する場合、アプリケーションはCRMに追加されたユーザーの1人のために実行されるため、接続文字列内にパスワードを指定する必要はありませんシステム。だから、ここでも、あなたはまだユーザーが必要です。質問:なぜあなたは彼を抱きたいのですか? – Alex

答えて

0

(IFD) あなたがはOAuthのを使用する必要があります。 OAuthを使用したWebサービス

OAuth認証を使用してCRM Webサービスに接続する前に、 アプリケーションを最初にMicrosoft Azure Active Directoryにに登録する必要があります。 Azure Active Directoryは、アプリケーションがCRMテナントに格納されているビジネスデータへのアクセスを許可されていることを確認するために使用されます。

// 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:あなたの方法については、最大のセキュリティのための構成セクションを、パスワードとしてクリアテキストを格納し、それを陰窩、または暗号化するためにないにベストプラクティスです。

See walkhrough here

・ホープ、このことができます:)

関連する問題