首页 > 解决方案 > AAD - 所有者密码凭证流

问题描述

嗨,我正在尝试通过提供用户名和密码来使用所有者密码凭据流,但它给出了以下错误。我使用本机应用程序作为客户端 ID。

 UserPasswordCredential credentials = new UserPasswordCredential(_userName, _password);
    AuthenticationContext authContext = new AuthenticationContext(_authority);
    var accessToken = await authContext.AcquireTokenAsync(_apiResourceId, _clientId, credentials);
    accessToken.AccessToken;

AdalServiceException:AADSTS65001:用户或管理员未同意使用名为“nativeclient”的 ID 为“xxxxxxxx”的应用程序。为此用户和资源发送交互式授权请求

我有一个无法使用客户端凭据流的场景。1950a258-227b-4e31-a9cf-717495945fc2当我使用它工作的powershell客户端ID时,我有什么遗漏的吗?由于我不是租户管理员,如何在用户上下文中同意此应用程序。

标签: azure-active-directory

解决方案


这取决于您添加的权限是否需要管理员同意。

您可以在 Azure 门户上看到它: 权限

如果权限需要管理员同意,您必须使用管理员帐户通过单击此处的“授予{您的租户}的管理员同意”来进行同意: 在此处输入图像描述

如果权限不需要管理员同意,您只需使用非管理员帐户通过访问https://login.microsoftonline.com/ {您的租户}/oauth2/authorize?client_id={Client进行同意ID}&response_type=code&redirect_uri={回复 URL}&resource={您要访问的资源,例如:https ://graph.microsoft.com/ }&prompt=consent。 用户同意

此外,您能否提供更多详细信息“我无法使用客户端凭据流的情况”?


推荐阅读