我正在尝试将adal.js集成到启用了多租户的SPA中。我按照here指令配置了AAD应用程序。
我启用了MULTI-TENANT并将oauth2AllowImplicitFlow设置为true。
以下是我用来设置adal.js的代码
adalProvider.init(
{
clientId: sessionStorage.getItem(Constant.adalHelper.AadAppId),
endpoints: angular.fromJson(sessionStorage.getItem(Constant.adalHelper.AdalResourceMap)),
extraQueryParameter: "nux=1",
instance: sessionStorage.getItem(Constant.adalHelper.AadInstance),
popUp: false,
redirectUri: window.location.origin + "/login",
requireADLogin: true,
tenant: sessionStorage.getItem(Constant.adalHelper.AadTenant)
}, $httpProvider);
当我将租户设置为AAD app的租户名称时,一切正常。但是,只要我将租户改为“普通”。身份验证失败,如下所示:
AADSTS65005:应用程序“https://xxxxxxx/xxxxxx”要求访问已删除或不再可用的资源的权限。联系应用程序供应商。
答案 0 :(得分:0)
根据描述,您正在为多租户开发多层应用程序。
多层应用程序有两种情况。
一个是单个租户中的多个层(客户端和资源应用都在开发人员的租户上)。在这种情况下,我们需要将客户端添加到资源的 knowClientApplications 。
第二种情况是多个租户中的多个层(客户端和资源应用程序位于不同的租户中)。在这种情况下,用户需要单独授予权限。首先,他/她需要授予资源应用程序的权限,然后他/她可以使用授予客户端应用程序。
根据错误消息,请确保资源应用程序可用于使其适用于客户端应用程序。有关多租户应用场景的更多详细信息,您可以参考this link。