バックグラウンドジョブ(数分ごとに更新されたコンテンツをアップロードする)でDynamics CRM APIの一部と話し合う必要のあるアプリで作業しています。クライアントアサーション証明書(Azure AD)を使用したDynamics CRMデーモンアプリが提供されています。
ユーザー資格情報(アプリのアクセス許可)を使用したADAL認証はCRM APIで完璧に使用されるため、クライアントアサーション証明書の資格情報でも動作するようになっています。これは動作し、私がアクセストークンを取得することができています
var certCred = new ClientAssertionCertificate(clientId, cert);
var result = await authContext.AcquireTokenAsync("https://<tenant_name>.crm4.dynamics.com/", certCred);
-
コードは次のようになります。ただし、これらは委任権限であるため、CRM WebAPIにアクセスする権限を取得することはできません。
私は明らかにバックグラウンドタスクを実行するためにサービス/デーモンアカウントを使用できますが、私はクライアントのアサーション証明書でそれ以上のことをしたいと思っていました。誰かがこのようなシナリオの解決策を見つけましたか? CRM WebAPIは権限を委任することをサポートしていますか?
他の方法はありますか?
デーモンサービスを作成するにはどうすればよいですか? –
デーモンサービスでDynamics CRM Web APIを使用するには、パスワードフローで認証できます。詳細はこちらを参照してください[https://msdn.microsoft.com/en-us/library/hh675404.aspx] –
おそらく私の質問への答えはあなたを助けるかもしれない:Deamonサービスのために:http://stackoverflow.com/questions/37454539/c-sharp-as-confidential-user-daemon-server-server-to-server-401-u – IntegerWolf