相关疑难解决方法(0)

用户或管理员未同意使用该应用程序 - 发送此用户和资源的交互式授权请求

我们正在做这个 CRM Web API项目.该项目登录到Dynamics CRM在线实例并获取帐户列表.

登录似乎正在发生.但是,帐户列表会出现以下错误:

AADSTS65001:用户或管理员未同意使用ID为"xxxx-xxxxx-xxxx-xxx"的应用程序.发送此用户和资源的交互式授权请求.跟踪ID:e3b360d6-39fb-4e61-87d9-26531f30fd7b相关ID:9b2cff0c-074e-44fe-a169-77c8061a7312时间戳:2016-10-18 10:12:49Z

权限设置是否正确:

Azure权限

问题是什么?

javascript c# dynamics-crm azure asp.net-web-api

19
推荐指数
3
解决办法
2万
查看次数

Azure:无法使用RefreshToken获取新的AccessToken

我正在构建一个需要访问客户的Office 365管理活动的应用程序.我已按照此Azure Active Directory概述中概述的步骤操作,并且能够使用OAuth代码获取初始访问令牌,以及使用此令牌设置O365订阅.

但是,当我使用refresh_token提供的初始令牌获取新的访问令牌时,我收到以下错误:

{"error_description":"AADSTS65001:用户或管理员未同意使用ID为'8f72f805-dfd2-428d-8b0e-771a98d26c16'的应用程序..发送此用户和资源的交互式授权请求.\ r \nTrace ID: df229c3f-8f28-420b-9ac3-321ab1b2ad09\r \n相关ID:0e0f2bcb-4b19-458a-8556-2a6d4e51379f\r \n时间戳:2016-10-03 17:33:20Z","错误":"invalid_grant"}

由于我能够获取并使用初始访问令牌,因此我非常确定用户正在授予我的应用程序一些权限.为了使用刷新令牌获取新的访问令牌,是否需要特定权限?

编辑: 具体来说,我正在使用com.microsoft.azure::adal4j java包,AuthenticationContext类,acquireTokenByAuthorizationCodeacquireTokenByRefreshToken方法:

public class AzureProvisioner {
    private final AuthenticationContext authService = new AuthenticationContext(
            "https://login.windows.net/common/oauth2/token", true, Executors.newSingleThreadExecutor());
    private final ClientCredential clientCredential = new ClientCredential("azureAppId", "azureAppSecret");
    public static final String resource = "https://manage.office.com";
    // Internal implementation of REST interface; Microsoft didn't provide a Java Library
    final Office365ManagementApi managementApi;

    public void acquireToken(final String authCode, …
Run Code Online (Sandbox Code Playgroud)

java azure azure-active-directory adal

17
推荐指数
1
解决办法
1172
查看次数

Azure AD OAuth2 访问令牌请求错误 - 400 错误请求

我的 WPF 桌面应用程序 (C#) 正在尝试通过 Microsoft Graph API 读取用户的 Outlook 电子邮件。我卡在身份验证过程中;我已经收到一个身份验证代码,现在我正在尝试从 Azure 获取访问令牌,但在发送访问令牌请求时不断收到 HTTP 400 错误代码:

/**** Auth Code Retrieval ****/
string authCodeUrl = "https://login.microsoftonline.com/common/oauth2/authorize";
authCodeUrl += "?client_id" = clientId;
authCodeUrl += "&redirect_uri=" + redirectUri;
authCodeUrl += "&response_type=code";
authCodeUrl += "&resource=https%3A%2F%2Fgraph.microsoft.com%2F";
Process.start(authUrl); // User logs in, we get the auth code after login
string code = "......"; // Hidden for this post

/**** Access Token Retrieval ****/
string tokenUrl = "https://login.microsoftonline.com/common/oauth2/token"
string content = "grant_type=authorization_code";
content += "&client_id=" …
Run Code Online (Sandbox Code Playgroud)

c# active-directory azure oauth-2.0 microsoft-graph-api

3
推荐指数
1
解决办法
1万
查看次数

通过 API 授予 OAuth2 资源所有者密码

我目前正在构建一个需要 OAuth2 的 API,但找不到可以使用的库来仅通过 RESTful API 处理本机移动应用程序中的单点登录。我发现大多数只有一个网络弹出窗口,该项目已被否决。目前正在运行的 B2C 无法使用 ROPG。有没有办法使用 C#.NET 和 Azure 使用另一个库轻松设置它?

更新:

根据下面的 Fei Xue 回答尝试使用 B2C,我们已经从 Microsoft Graph 获取访问令牌。在 POST 的正文中,我们执行了以下操作:

resource=https%3A%2F%2FGraph.windows.net&client_id=[B2C 设置 - 应用程序 - AppId]&grant_type=password&username=rob%40[tenant].onmicrosoft.com&password=[password]&client_secret=[B2C 设置 - 应用程序 - 应用程序密钥- client_secret]

我们对命名空间的错误是由于我们尝试的用户名造成的。这是一个使用电子邮件作为用户名的 B2C 租户,这就是命名空间错误的原因。我们克服该错误的唯一方法是创建一个电子邮件地址以租户结尾的 B2C 用户,如下所示:

rob@[租户].onmicrosoft.com

我们现在正在获取访问令牌,但该令牌未通过我们的 azure 应用服务 api 应用进行身份验证,这是最初的目标。

我们试图完成的是发送对 B2C 登录有效的用户名和密码,并获取对 api 应用程序有效的 IdToken 或访问令牌。api 应用程序通过使用 B2C 设置应用程序中的客户端 ID 和机密设置为 AAD 配置的应用服务身份验证设置连接到 B2C。

更新:

尝试通过 graph.windows.net 令牌在我们的 Azure Web api 中进行身份验证,我们在应用服务 - 身份验证 - Active Directory 身份验证配置中添加了https://Graph.windows.net允许的令牌受众。

但是,将 …

.net c# azure oauth-2.0 azure-active-directory

1
推荐指数
1
解决办法
4608
查看次数