2017-01-11 19 views
1

ダイナミックWSを外部HTMLページから呼び出すときに、CORSという問題が発生しています。Dynamics CRM 2016の認証外部システムからのWebサービスの無効化

CORSをサーバーで有効にする方法を見て、CRMサイトのweb.configに次の行を挿入しました。

<system.webServer> 
    <httpProtocol> 
    <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
    </customHeaders> 
    </httpProtocol> 
</system.webServer> 

これはCORS問題を解決するように見えたが、その後に述べた新しいエラーが発生した:

認証は、私はjavascriptのコードを生成するREST Builderツールを使用

に失敗しました。しかし、私はどのように呼び出しを認証するか分からない。

次のように私が使用しているコードは次のとおりです。

var entity = {}; 
entity.new_name = "John Smith"; 
entity.new_guid = "KHU464KOU3"; 

var req = new XMLHttpRequest(); 
req.open("POST", "http://crmsitedomain.com/api/data/v8.2/new_consumer", true); 
req.setRequestHeader("OData-MaxVersion", "4.0"); 
req.setRequestHeader("OData-Version", "4.0"); 
req.setRequestHeader("Accept", "application/json"); 
req.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
req.onreadystatechange = function() { 
    if (this.readyState === 4) { 
     req.onreadystatechange = null; 
     if (this.status === 204) { 
      alert("Created"); 
     } else { 
      alert(this.status); // is returning "0" 
     } 
    } 
}; 
req.send(JSON.stringify(entity)); 

私は「トークンヘッダー」ツールで「偽装」のオプションを見ていますが、どこ、私はそれらのパラメータの値を得るのですか?

+0

あなたは答えを見つけましたか? (あなたが持っているなら、あなた自身の質問に答えることは素晴らしいでしょう)自分の研究をしている間に、Azure Active Directoryにあなたのアプリを登録する必要があるように見えます。こちらをご覧ください:https://msdn.microsoft.com/en-gb/library/gg327838.aspx – Chris76786777

答えて

3

最初に、CRMサイトweb.configの変更を元に戻します。実際にはアプリケーションファイルを変更するつもりはなく、おそらくサポートされていない可能性があります。

MSDNでは、正常に認証する方法を説明しています Authenticate to Microsoft Dynamics 365 with the Web API

こちらは少し長めに巻いてありますので、こちらのリンクをご確認ください。 Microsoft Dynamicsの365(オンライン)またはインターネットで

あなたはオンプレミスで説明したようにはOAuthを使用する必要があります インターネット向け展開(IFD)のWebダイナミクス365のためのAPI(オンライン)または使用した場合の展開 が直面しています Connect to Microsoft Dynamics 365 web services using OAuth

JavaScriptを使用して単一ページアプリケーション(SPA)を作成する場合は、の説明に従ってadal.jsライブラリを使用できます。

+0

はい、私は 'adal.js'を認識しています。しかし、他の図書館に頼らなくてもいいですか? – asprin

0

あなたはthisを見ましたか?これはWSではなくWeb API用ですが、ほぼ同じです

+0

はい、私は 'adal.js'について認識しています。しかし、他の図書館に頼らなくてもいいですか? – asprin

関連する問題