私は、Azure ADを介してDynamics 365 for Operationsで認証される単一ページのWebアプリケーションを作成しようとしています。私はAzure ADとDynamics 365でアプリケーションを登録するためのすべての指示に従っています。私はAzure ADで正常に認証され、adal javascriptライブラリを使用してアプリケーションで有効なトークンを受け取りましたが、D365のODataエンドポイント401エラーが表示されます。私はAzure ADで認証されており、認証ヘッダーに自分のトークンを渡しているので、認証ヘッダーを正しく設定していない限り、なぜ認証エラーが発生するのかわかりません。ここに私の要求があります:操作SPAおよびODataのDynamics 365
//Function that actually retrieves the accounts
function retrieveAccounts(error, token) {
// Handle ADAL Errors.
if (error || !token) {
errorMessage.textContent = 'ADAL error occurred: ' + error;
return;
}
var req = new XMLHttpRequest()
req.open("GET", encodeURI(organizationURI + "/data/Projects"), true);
//Set Bearer token
req.setRequestHeader("Authorization", "Bearer" + token);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function() {
if (this.readyState == 4 /* complete */) {
req.onreadystatechange = null;
if (this.status == 200) {
var projects = JSON.parse(this.response).value;
renderProjects(projects);
}
else {
var error = JSON.parse(this.response).error;
console.log(error.message);
errorMessage.textContent = error.message;
}
}
};
req.send();
}
アイデアは大変ありがとう!私はこれをDynamics 365 CRMでWeb APIを使用して成功させることができたため、セットアップは少し異なりますが、Operationsでもうまくいくと想定しています。