繁体   English   中英

Azure Active Directory同意缓存吗?

[英]Is Azure Active Directory Consent Cached?

我们正在构建一个使用Azure AD的本机应用程序。 该应用程序需要一些权限(如读取用户配置文件,执行Azure Service Management API等)。

当用户首次使用我们的应用程序时,系统会要求他们登录,一旦登录,他们就会看到同意屏幕(他们同意我们的应用程序)。 用户授予同意后,他们可以在其Azure AD中(在“应用程序”选项卡下)看到我们的应用程序。 到现在为止还挺好。

现在,该用户要做的是从其Azure AD中手动删除我们的应用程序(同样,请转到“应用程序”选项卡下)。 根据我们对同意模型的理解,这意味着用户已删除对我们应用程序的同意。

现在,当该用户登录到我们的应用程序时,我们期望的是再次向用户显示一个同意屏幕(如第一次)。 但是,实际的行为是不会向用户显示该屏幕,而只是将用户登录到我们的应用程序中。 此外,当用户返回其Azure AD时,他们不会在允许的应用程序列表中看到我们的应用程序。

所以我的问题是:

  1. Azure AD是否以某种方式缓存同意?
  2. 如果同意书被缓存,该同意书将被缓存多长时间?
  3. 如果缓存了同意,是否有办法让我们以编程方式或其他方式清除此同意?

对于为什么会发生这种情况的任何见解都将受到高度赞赏。

在Azure Active Directory中,用户同意被注册为用户对象和代表客户端应用程序的服务主体对象之间的链接。

此链接在AAD Graph API中表示为OAuth2PermissionGrant

你这样说:

现在,该用户要做的是从其Azure AD中手动删除我们的应用程序(同样,请转到“应用程序”选项卡下)。 根据我们对同意模型的理解,这意味着用户已删除对我们应用程序的同意。

我想澄清一下。 如您所知,在创建新的AAD应用程序时,需要记住Application Object和Service Principal之间的区别。

特别是,如果您删除代表客户端应用程序的服务主体,则与该服务主体相关的所有同意链接都将被销毁,从而有效地删除了同意。 如果仅删除“应用程序对象”(可能是在您遇到问题的地方),则不能说相同的话。

在这里解释撤销对Azure Active Directory应用程序的同意所需的最简单步骤。 让我知道是否有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM