获取 Dynamics 365 的身份验证令牌时出现错误 AADSTS90002
Error AADSTS90002 on aquire authentication token for Dynamics 365
我在尝试从我的 .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 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 上失败。
两点:
组织 url 应该类似于 https://yourcrm.dynamics.com
。
GitHub issue 说:
https://login.microsoftonline.com/{Guid} (where the Guid is the tenant ID
or
https://login.microsoftonline.com/domainName where the domain name is a domain associated with your tenant
or
https://login.microsoftonline.com/common
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);
.
.
}
}
我在尝试从我的 .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 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 上失败。
两点:
组织 url 应该类似于
https://yourcrm.dynamics.com
。GitHub issue 说:
https://login.microsoftonline.com/{Guid} (where the Guid is the tenant ID
or
https://login.microsoftonline.com/domainName where the domain name is a domain associated with your tenant
or
https://login.microsoftonline.com/common
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);
.
.
}
}