【问题标题】:AAD - Owner password credential flowAAD - 所有者密码凭证流
【发布时间】:2020-01-24 23:39:01
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: azure-active-directory


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 我想管理某个应用程序graph.windows.net/xxxx/applications。假设我想添加一个额外的秘密。我不是租户管理员。但是,如果我授予所有者访问我拥有的服务帐户的少数应用程序的权限,我仍然可以使用密码流进行管理。如果我要求访问应用程序,它将适用于租户中的所有应用程序,这对于我不拥有的大多数应用程序来说风险更大。租户管理员永远不会给我该访问权限。
    猜你喜欢
    • 2013-11-23
    • 2019-01-03
    • 1970-01-01
    • 2015-01-06
    • 2015-08-16
    • 2015-05-20
    • 2014-03-31
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多