Adal.js-属于不同租户/应用程序的多个用户帐户
Adal.js - multiple user accounts belonging to different tenants/applications
在我们当前的SPA中,我们在不同的租户中有相同的用户设置,用于开发、测试、uat等。例如,用户johndoe将具有以下a/cs。
jdoe@dev.onmicrosoft.com
jdoe@test.onmicrosoft.com
jdoe@uat.onmicrosoft.com
我们在AAD中注册了用于开发、测试和uat的单独应用程序。当jdoe@dev.onmicrosoft.com登录到dev站点有一个uat的缓存令牌,然后尝试说authenticateuat或测试场地。我们最终得到以下错误。
其他技术信息:相关ID:xxxxxxx-fab9-4c08-a96f-a0c20gsgsgsgs时间戳:2015-12-06 17:14:34Z AADSTS50020:用户帐户'jdoe@uat.onmicrosoft.com'来自外部标识提供程序'https://sts.windows.net/xxxxxxxxx/应用程序"xxxxxxxx(uat ortest)"不支持"。需要将帐户添加为租户中的外部用户。请注销并使用Azure Active Directory用户帐户重新登录
当用户尝试登录到测试/uat站点时,我想强制任何现有的缓存令牌,并强制用户重新登录并获取fesh令牌。
我试过使用
clearCache()
但这并没有奏效。我想避免在登录之前打注销电话。
我使用的是adal.js v1.7。
假设您的环境都有不同的域,令牌缓存应该不是问题,因为每个域都有自己的域。如果您在不同的环境中重用同一个域,那么您也需要清理令牌。你在这里遇到的主要问题是会话cookie,它跟踪用户的Azure AD的登录状态。如果你不想显式注销,唯一的选择是在登录请求中注入一些参数,向Azure AD发出信号,表明你希望用户有选择权,而不是尝试单次登录,比如prompt=select_account。然而,这将要求您放弃JS调用级别,因为角度级别的可扩展性点(extraqueryparameter init属性)将添加到每个请求中,包括那些必须静默的请求,如令牌续订,这使得API调用不可能。回顾:在切换环境时注销,或者使用JS级别的函数执行登录并注入promp=select_account。其他技巧包括使用inprivate、隐姓埋名、多个浏览器等
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 正确传输和保护用户'web应用程序的密码
- 如何在网络应用程序中使用Firebase进行用户授权
- 我的购物应用程序不会将用户想要购买的东西相加,也不会打印总成本
- 通过chrome后台扩展或后台应用程序访问用户麦克风
- 在聊天应用程序中显示联机用户
- 如何获取运行我的 Web 应用程序的用户的 Windows 登录用户名
- 为用户应用程序托管 javascript 文件是否安全
- 捕获在Windows应用程序中启动其他应用程序的用户事件
- 计算喜欢我的帖子facebook应用程序的用户数量
- 如何在angularjs应用程序中注销后,通过浏览器后退按钮禁止用户访问上一页
- Meteor(JavaScript应用程序平台)|向用户帐户添加数据
- 网络应用程序的正确instagram身份验证方法(没有instagram帐户的用户)
- 如何在点击链接后从用户取消对话框中获得回调以选择移动应用程序
- 在我的html页面-web应用程序用户界面的一个选项卡中的另一个html页面中的选项卡
- 基于Rails的javascript应用程序的安全性:如何在渲染的javascript中验证用户的权限
- 如何为Meteor应用程序中的第一个用户分配特定角色
- Javascript:离开单页应用程序时的用户确认
- PHP/AAJAX多用户应用程序-数据正在以某种方式丢失