C# Dynamics 365的aquire身份验证令牌上出现错误AADSTS90002
尝试从.Net客户端使用Dynamics 365进行身份验证时,我遇到以下错误:C# Dynamics 365的aquire身份验证令牌上出现错误AADSTS90002,c#,azure,dynamics-crm,adal,dynamics-crm-online,C#,Azure,Dynamics Crm,Adal,Dynamics Crm Online,尝试从.Net客户端使用Dynamics 365进行身份验证时,我遇到以下错误: AADSTS90002: Tenant authorize not found. This may happen if there are no active subscriptions for the tenant. Check with your subscription administrator. 以下是我当前使用的代码: AuthenticationParameters authenticationPa
AADSTS90002: Tenant authorize not found. This may happen if there are no active subscriptions for the tenant. Check with your subscription administrator.
以下是我当前使用的代码:
AuthenticationParameters authenticationParameters = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri("https://dev-aec-ssp.api.crm6.dynamics.com/api/data/v9.1/")).Result;
AuthenticationContext authenticationContext = new AuthenticationContext(authenticationParameters.Authority, false);
ClientCredential clientCredential = new ClientCredential("9cd8fe45-xxxx-xxxx-xxxx-e43ef81c803f", "abcdefghijk");
AuthenticationResult authenticationResult = null;
try
{
authenticationResult = authenticationContext.AcquireTokenAsync("https://dev-aec-ssp.api.crm6.dynamics.com", clientCredential).Result;
}
catch (Exception ex)
{
throw new Exception("Failed to authenticate with remote Dynamics service.", ex);
}
AcquireTokenAsync总是失败。两点:
https://yourcrm.dynamics.com
或
其中域名是与您的租户关联的域
或
string组织URL=”https://yourcrm.dynamics.com";
字符串appKey=“*******”;
字符串aadInstance=”https://login.microsoftonline.com/";
字符串tenantID=“myTenant.onmicrosoft.com”;
字符串clientId=“UserGUID****”;
公共任务SendData()
{
返回AuthenticateWithCRM();
}
公共异步任务AuthenticateWithCRM()
{
ClientCredential clientcred=新的ClientCredential(clientId,appKey);
AuthenticationContext AuthenticationContext=新的AuthenticationContext(aadInstance+tenantID);
AuthenticationResult AuthenticationResult=等待authenticationContext.AcquireTokenAsync(organizationUrl,clientcred);
使用(HttpClient HttpClient=new HttpClient())
{
httpClient.BaseAddress=新Uri(organizationUrl);
.
.
}
}
Hi Arun。我相信这可能已经解决了问题。我现在正在运行一些测试。感谢您的帮助!@MarkMicallef很高兴听到,我正在通过AuthenticationContext上的AcquireTokenAsync()方法,这就是我之前遇到的问题。但是,当SendAsync()HttpClient上的请求被发送,我得到了未经授权的回复。我已经检查过,授权头中有一个承载令牌,所以我不确定我现在缺少什么。
string organizationUrl = "https://yourcrm.dynamics.com";
string appKey = "*****";
string aadInstance = "https://login.microsoftonline.com/";
string tenantID = "myTenant.onmicrosoft.com";
string clientId = "UserGUID****";
public Task<String> SendData()
{
return AuthenticateWithCRM();
}
public async Task<String> AuthenticateWithCRM()
{
ClientCredential clientcred = new ClientCredential(clientId, appKey);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantID);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenAsync(organizationUrl, clientcred);
using (HttpClient httpClient = new HttpClient())
{
httpClient.BaseAddress = new Uri(organizationUrl);
.
.
}
}