Permissions “如何修复”;AADSTS90094:此应用程序需要对另一个应用程序的应用程序权限”;给予管理员同意后出错

Permissions “如何修复”;AADSTS90094:此应用程序需要对另一个应用程序的应用程序权限”;给予管理员同意后出错,permissions,azure-active-directory,multi-tenant,adal,adal.js,Permissions,Azure Active Directory,Multi Tenant,Adal,Adal.js,我最近在我的多租户Azure AD应用程序中请求了新的应用程序权限,以便我可以访问Graph API。我正在使用adal.js对web应用程序中的用户进行身份验证,而实际的图形请求是在节点服务器上使用adal node和证书进行的 新权限有效。我能够使用应用程序权限访问图形,并且节点服务器没有任何问题 问题是,现在每当管理员登录到web应用程序(使用'adal.js'),他们都会看到同意屏幕,不管他们同意多少次。非管理员用户每次登录时都会显示“需要管理员批准”屏幕,阻止他们登录 我在不同的租约中

我最近在我的多租户Azure AD应用程序中请求了新的应用程序权限,以便我可以访问Graph API。我正在使用
adal.js
对web应用程序中的用户进行身份验证,而实际的图形请求是在节点服务器上使用
adal node
和证书进行的

新权限有效。我能够使用应用程序权限访问图形,并且节点服务器没有任何问题

问题是,现在每当管理员登录到web应用程序(使用'adal.js'),他们都会看到同意屏幕,不管他们同意多少次。非管理员用户每次登录时都会显示“需要管理员批准”屏幕,阻止他们登录

我在不同的租约中尝试过,结果都是一样的。我还尝试通过
azure.portal.com
批准权限,并将应用程序完全从租约中删除,然后再次批准

我还尝试取消新权限并恢复到旧权限。不管怎样,用户都会点击“需要管理员批准”屏幕

用户登录码 管理员登录码
需要说明的是,这个应用程序已经运行了一个多月了。只有在我更改了权限之后,这种情况才开始发生。

这个问题的答案最终帮助了我:

由于我只请求应用程序权限,Azure AD默认为每当用户登录时总是请求同意。一旦我添加了一个委托的权限(
Microsoft.Graph.User.Read
),同意提示就消失了


我一定是在排除故障的过程中,在添加和删除它们的过程中意外错过了此权限。

@rohisaigal我想这是指我正在请求许可的Microsoft API。不管怎样,我在另一个StackOverflow问题中找到了答案,并将其发布在下面。。当我看到你的答案贴在几乎同一时间时,我就把它拿了出来。。
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();
}