我正在尝试获取没有身份验证代码的访问令牌,因此使用以下方法来获取它。但我面临的问题是" 请求正文必须包含以下参数' client_secret或client_assertion' "
你能否提出必要的建议?在console application
中运行。
try
{
// Use the 'Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory' Nuget package for auth.
AuthenticationContext authContext = new AuthenticationContext(authority);
AuthenticationResult authResult = authContext.AcquireTokenAsync(resourceId, clientId, new UserCredential(crmAdminUserName, crmAdminPassword)).Result;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
答案 0 :(得分:0)
Azure AD上有两种客户端,一种是公共的,另一种是机密的,在我们获取令牌时需要提供秘密。
要解决此问题,您可以在此方案中注册公共客户端(本机客户端应用程序)。
Here是一个有关将应用程序与Azure活动目录集成的有用文档。
答案 1 :(得分:0)
假设门户网站中有app is registered,您知道客户端ID,客户端密钥/应用密钥,权限和受众
然后,此代码段将为您提供访问令牌
AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential clientCredential = new ClientCredential(clientId, clientkey);
AuthenticationResult authenticationResult = await authContext.AcquireTokenAsync(ResourceUrl, clientCredential);
资源ID /资源网址,例如https://manage.windowsazure.com/ {占位符换您-天青-AD-承租人的名称} .onmicrosoft.com
AcquireTokenAsync文档可从here
获得AuthenticationContext类文档可从here
获得