【发布时间】:2017-10-18 04:51:10
【问题描述】:
我们正在构建一个使用 Azure AD 的本机应用程序。该应用程序需要一些权限(例如读取用户配置文件、执行 Azure 服务管理 API 等)。
当用户第一次使用我们的应用程序时,他们会被要求登录,一旦他们登录,他们就会看到同意屏幕(他们同意我们的应用程序)。一旦用户同意,他们就可以在他们的 Azure AD 中看到我们的应用程序(在“应用程序”选项卡下)。到目前为止一切顺利。
现在这个用户所做的是从他们的 Azure AD 中手动删除我们的应用程序(再次通过“应用程序”选项卡)。根据我们对同意模型的理解,这意味着用户已经取消了对我们应用程序的同意。
现在,当该用户登录我们的应用程序时,我们期望用户再次看到同意屏幕(如第一次)。然而,实际行为是用户没有看到这样的屏幕,用户只是登录到我们的应用程序。此外,当用户返回其 Azure AD 时,他们不会在许可应用列表中看到我们的应用程序。
所以我的问题是:
- Azure AD 是否以某种方式缓存同意?
- 如果同意被缓存,该同意会被缓存多长时间?
- 如果同意被缓存,我们是否可以通过编程或其他方式清除此同意?
任何关于为什么会发生这种情况的见解都将受到高度赞赏。
【问题讨论】:
-
通过图中的一组 oauth2PermissionGrant 对象授予同意,这些对象将 oauth2Permission(在应用程序上定义)连接到客户目录中的服务主体,当然还有用户 ID同意已完成(或全部同意,如果已完成管理员同意)。您可以使用图形资源管理器检查这些授权是否存在,并查看用户删除应用后它们会发生什么。
-
关于使用图形浏览器检查同意的好建议。谢谢!将做同样的事情并相应地更新问题。
标签: azure azure-active-directory adal