Dynamics CRM 2016 Online と Azure Active Directory で認証しようとしています。ここですべての手順に従うことができました:
https://msdn.microsoft.com/en-us/library/mt622431.aspx および https://msdn.microsoft.com/en-us/library/gg327838.aspx
ただし、これらの手順は、ユーザー名認証フローをセットアップする方法を示しています。クライアント資格情報フローを使用したいと思います。Azure AD で新しいアプリ (Web アプリケーション) を作成しました。クライアント ID とアプリ キーがあり、Dynamics CRM Online のアクセス許可を設定しています。アクセス トークンを取得できますが、その後の呼び出しで次のエラーが発生します。
HTTP エラー 401 - 権限がありません: アクセスが拒否されました
見逃したステップはありますか?このフローを機能させる方法の詳細を提供する投稿を知っている人はいますか?
これが私のコードです:
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;