提供的使用ADAL.js的示例代码如下所示:

window.config = {
    instance: 'https://login.microsoftonline.com/',
    tenant: '[Enter your tenant here, e.g. contoso.onmicrosoft.com]',
    clientId: '[Enter your client_id here, e.g. g075edef-0efa-453b-997b-de1337c29185]',
    postLogoutRedirectUri: window.location.origin,
    cacheLocation: 'localStorage',  localhost.
};
var authContext = new AuthenticationContext(config);

这可以正常工作,但是我尝试允许访问 Multi-Tenancy 应用程序-组织的用户仅应在其帐户管理员授予该应用程序访问权限的情况下才能登录。

我已经实现了第一部分-允许管理员用户启用-as per this example

因此,此时我的应用程序已列在第三方的Active Directory中。

我不确定租户应该使用正确的设置。我尝试使用“公共(public)”,但随后显示一个对话框,询问单个用户是否要授予对应用程序的访问权限,这不是我想要的。

如果我正在制作一个简单的MVC应用程序,则继续上面的示例,在服务器上使用app.UseOpenIdConnectAuthentication。但是我的应用程序是带有Web Api后端的SPA,并且我无法找到这种情况下的 Multi-Tenancy 示例。

最佳答案

配置应用程序以与任何租户进行身份验证的正确方法(这是您在方案中需要的方法)是使用common。
每个用户的同意是置备注意事项。如果您希望管理员代表整个组织同意该应用程序,则可以通过触发身份验证请求并向其附加prompt=admin_consent来实现管理员同意流程。假设管理员响应该请求执行身份验证流程,则Azure AD将向管理员提供代表组织中每个人同意应用程序的机会。

关于active-directory - 带有 Multi-Tenancy Azure Active Directory的ADAL.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36591868/

10-13 08:40