1

こんにちは、私はJava開発者です。私はMS DynamicsでWebApiを使用して安らかなサービスを作成し、Javaでクライアントを作成し、MS Dynamics Web Serviceにヒットするという要件があります。 WebApiを通じてMS Dynamicsで安心してサービスを作成したい場合は、OAUTHを実装する必要がありますか?認証なしでJavaからサービスとヒットを作成できますか?私のもう1つの質問は、MS Dynamicsの別のWebサービスを呼び出して検証し、承認されたユーザーがデータを送信するかどうかのようなカスタム認証方法を使用することができるかどうかです。MS Dynamicsの安心サービス

私をご案内ください。私はJavaクライアントを実装するのは大丈夫ですが、私はMS Dynamicsに精通しておらず、ネットから何か助けを見つけることができません。ここで

答えて

1

はジェイソンLattimerのブログ記事からの例です:CRM Web API Using Java

再びMicrosoftの私たちの友人は、JavaのためのAzure Active Directory認証 ライブラリ(ADAL)のバージョンを提供することにより、認証前 上で私たちを助けて。あなたはここに 情報とMavenの依存関係を設定することができます。 http://mvnrepository.com/artifact/com.microsoft.azure/adal4j

この場合、私はハードコードされたユーザ名とパスワード を使用した認証です。

//Azure Application Client ID 
private final static String CLIENT_ID = "00000000-0000-0000-0000-000000000000"; 
//CRM URL 
private final static String RESOURCE = "https://org.crm.dynamics.com"; 
//O365 credentials for authentication w/o login prompt 
private final static String USERNAME = "[email protected]"; 
private final static String PASSWORD = "password"; 
//Azure Directory OAUTH 2.0 AUTHORIZATION ENDPOINT 
private final static String AUTHORITY = 
    "https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000"; 

AuthenticationContext context = null; 
AuthenticationResult result = null; 
ExecutorService service = null; 
try { 
    service = Executors.newFixedThreadPool(1); 
    context = new AuthenticationContext(AUTHORITY, false, service); 
    Future<AuthenticationResult> future = context.acquireToken(RESOURCE, 
      CLIENT_ID, 
      USERNAME, 
      PASSWORD, null); 
    result = future.get(); 
} finally { 
    service.shutdown(); 
} 

String token = result.getAccessToken(); 

私がつまずい他の事は、HTTP要求を行う ためのJavaのHttpURLConnectionのは、(複数のフィールドへの更新を行う際 をWeb APIで使用される)ネイティブPATCHメソッドをサポートしていないということです。この は、POSTメソッドを指定し、追加の "X-HTTP-Method-Override"プロパティを追加して解決されました。

connection.setRequestProperty("X-HTTP-Method-Override", "PATCH"); 
connection.setRequestMethod("POST"); 

あなたはGitHubの上のコードをチェックアウトすることができます: https://github.com/jlattimer/CrmWebApiJava

+0

この回答はリンク崩壊に過度に脆弱です。質問に答える方法でこれを要約できますか? – Ceribia

+0

Jason Lattimerのブログの例を追加しました – Aron

+0

素晴らしいです!それを改善してくれてありがとう。 – Ceribia

関連する問題