2017-08-10 1 views
2

私はダイナミクス365 crmに私のAPIを接続しようとしています。私は郵便配達員とトークンを取得するとアクセスすることができますが、ADALで取得すると、そのリクエストは401が不正に返されます。 私のアプリケーションで郵便受けを持っているトークンをハードコードするとうまく動作します。 私は郵便配達は私にADALnot(refresh_token、token_idなど)郵便料金トークンOauth2と異なるADAL認証トークン

Get token with postman

あなたはOAuth 2.0 authorization code flowを使用してトークン取得されている郵便配達でADAL

string resource = "https://******.crm2.dynamics.com/"; 
string clientId = "**************"; 
string clientSecret = "************"; 
string authority = "https://login.microsoftonline.com/*****/oauth2/authorize"; 

ClientCredential credential = new ClientCredential(clientId, clientSecret); 
AuthenticationContext authContext = new AuthenticationContext(authority, true); 
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, credential); 

答えて

0

でトークンを取得することを情報を返しました。 Azure ADは、応答が成功するとアクセストークン、リフレッシュトークン、IDトークンを返します。

ADAL authContext.AcquireTokenAsync(resource, credential);機能では、client credentials flowを使用してトークンを取得しています。このフローでは、アプリケーションはクライアント証明書をOAuth2トークン発行エンドポイントに提示し、ユーザー情報なしでアプリケーション自体を表すアクセストークンを取得するため、ユーザー情報が存在しないためid_tokenは取得されません。また、アプリケーションが更新トークンを取得する必要もありません。アクセストークンが期限切れになると、OAuth2トークン発行エンドポイントに戻り、新しいトークンを取得します。

ADALで承認コードフローを使用してトークンを取得することができます。コードサンプルはhereをクリックしてください。