【发布时间】:2019-03-28 19:52:21
【问题描述】:
我最近在我的多租户 Azure AD 应用程序中请求了新的应用程序权限,以便我可以访问 Graph API。我正在使用 adal.js 对 Web 应用程序中的用户进行身份验证,而对 Graph 的实际请求是在使用 adal-node 和证书的节点服务器上发出的。
新权限有效。我可以使用应用程序权限访问 Graph,并且节点服务器没有任何问题。
问题在于,现在每当管理员登录网络应用程序(使用 `adal.js)时,无论他们同意多少次,他们都会看到同意屏幕。非管理员用户在登录时会看到“需要管理员批准”屏幕,从而完全阻止他们登录。
我已经在不同的租约中进行了尝试,结果相同。我还尝试通过azure.portal.com 批准权限并将应用程序完全从租户中删除并再次批准。
我也尝试过取消新权限并恢复为旧权限。无论如何,用户都会点击“需要管理员批准”屏幕。
用户登录代码
public login(): void {
this.adalContext.login();
}
管理员登录代码
public adminLogin(): void {
this.adalContext.config.displayCall = (urlNavigate) => {
let url = urlNavigate + "&prompt=admin_consent";
this.adalContext.promptUser(url);
};
this.adalContext.login();
}
需要明确的是,这个应用已经运行了一个多月。只是在我更改了权限后才开始发生这种情况。
【问题讨论】:
-
@RohitSaigal 我认为这是指我请求许可的 Microsoft API。无论如何,我在另一个 StackOverflow 问题中找到了答案,并将其发布在下面。
-
好吧有道理..我看到你几乎同时发布的答案后就把它拿出来了..
标签: permissions azure-active-directory multi-tenant adal adal.js