Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure active directory 错误AADSTS65001,但仅一个用户没有同意提示_Azure Active Directory - Fatal编程技术网

Azure active directory 错误AADSTS65001,但仅一个用户没有同意提示

Azure active directory 错误AADSTS65001,但仅一个用户没有同意提示,azure-active-directory,Azure Active Directory,我正在写一个C#NET应用程序。它连接到Azure上的服务,该服务配置为使用AAD。反过来,我们的服务尝试通过EWS呼叫Exchange 这一切对我来说都很好,直到我们最近将我们的服务位部署到一个新的Azure web应用程序,并注册了新的应用程序。它们都配置正确,我们团队中的其他开发人员可以使用该服务进行身份验证,并按预期使用它 当我尝试连接到该服务时,出现以下错误: AADSTS65001:用户或管理员未同意使用ID为“61a8b794-7f67-4a01-9094-fcdd45693eaa

我正在写一个C#NET应用程序。它连接到Azure上的服务,该服务配置为使用AAD。反过来,我们的服务尝试通过EWS呼叫Exchange

这一切对我来说都很好,直到我们最近将我们的服务位部署到一个新的Azure web应用程序,并注册了新的应用程序。它们都配置正确,我们团队中的其他开发人员可以使用该服务进行身份验证,并按预期使用它

当我尝试连接到该服务时,出现以下错误: AADSTS65001:用户或管理员未同意使用ID为“61a8b794-7f67-4a01-9094-fcdd45693eaa”的应用程序。为此用户和资源发送交互式授权请求。 记录道ID:ece7c5d0-2ecb-4096-a87a-2cd33271d65d 相关ID:093b5935-3b06-4d76-91a9-6619bc179544 时间戳:2017-02-09 23:19:28Z

在部署新服务后尝试连接时,我从未出现同意提示

我不确定是什么原因导致我的用户帐户发生了此错误(它发生在使用我的帐户的多台计算机上),而其他计算机可以成功连接

以下是用于获取服务中令牌的一些代码:

var bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;

var upn = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn);
var email = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email);
var userName =  upn != null ? upn.Value : email?.Value;

accessToken = bootstrapContext.Token;

ClientCredential clientCred = new ClientCredential("61a8b794-7f67-4a01-9094-fcdd45693eaa", appKey);
UserAssertion assertion = new UserAssertion(accessToken, "urn:ietf:params:oauth:grant-type:jwt-bearer", userName);

AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/microsoft.onmicrosoft.com");
AuthResult = authContext.AcquireToken("https://outlook.office365.com", clientCred, assertion);

你知道为什么我不会得到同意提示,但我团队中的其他用户却得到了吗?

根据描述,你正在使用Azure AD开发多层应用程序

由于您提到此问题是在使用新应用程序后发生的,您是否将新应用程序配置为服务应用程序(61a8b794-7f67-4a01-9094-fcdd45693eaa)的
knownClientApplications

如果是,您应该在登录web应用程序时给予服务应用程序许可(请参阅关于多层应用程序)

为什么只有你才会遇到这个问题的问题可能是其他人之前已经同意了这个应用


如果有帮助,请告诉我。

根据描述,您正在使用Azure AD开发多层应用程序

由于您提到此问题是在使用新应用程序后发生的,您是否将新应用程序配置为服务应用程序(61a8b794-7f67-4a01-9094-fcdd45693eaa)的
knownClientApplications

如果是,您应该在登录web应用程序时给予服务应用程序许可(请参阅关于多层应用程序)

为什么只有你才会遇到这个问题的问题可能是其他人之前已经同意了这个应用


如果有帮助,请告诉我。

谢谢您的回复!为了进一步澄清,我们没有更改客户端的Azure AD app注册,只是授予它新服务的权限(除了以前的服务)。生成的同意提示用于授予通过客户端访问服务的权限。新服务的knownClientApplications已正确配置为包含客户端应用程序Id。其他用户在登录到更新的客户端后收到同意提示。我没有。这是相同的客户端,相同的(新)服务,除我之外的所有用户都会收到同意提示。在您登录客户端时,附加
提示=同意
以强制授予同意是否有帮助?不幸的是(说真的,因为我希望能够从根本上解决此问题),问题不再出现。我们引入了一个新的应用程序注册服务实例,我收到了新版本的同意提示。神奇的是(令人困惑的是),这似乎也解决了以前版本服务的问题,尽管我从未同意过。谢谢你的回复!为了进一步澄清,我们没有更改客户端的Azure AD app注册,只是授予它新服务的权限(除了以前的服务)。生成的同意提示用于授予通过客户端访问服务的权限。新服务的knownClientApplications已正确配置为包含客户端应用程序Id。其他用户在登录到更新的客户端后收到同意提示。我没有。这是相同的客户端,相同的(新)服务,除我之外的所有用户都会收到同意提示。在您登录客户端时,附加
提示=同意
以强制授予同意是否有帮助?不幸的是(说真的,因为我希望能够从根本上解决此问题),问题不再出现。我们引入了一个新的应用程序注册服务实例,我收到了新版本的同意提示。神奇的是(令人困惑的是),这似乎也解决了以前版本服务的问题,尽管我从未同意过。