在Azure AD上使用多租户应用程序时,是否存在限制某些租户的方法?
也许我误解了整件事情,但我意识到另一个租户的用户可以在同意后登录我的应用程序而我找不到办法将该登录限制为我信任的一组租户。
答案 0 :(得分:5)
我们目前没有应用程序配置属性,该属性映射到多租户应用程序的租户允许列表。
您可以做的是将此功能构建到您的应用程序中 - auth / JWT令牌包含tenantID(tid)作为声明。您只能为应用允许列表中的已知租户授予访问权限。
如果您希望能够通过应用程序配置页面(如天蓝色管理门户网站)配置此功能,请告知我们?在这里理解你的场景也很棒。
希望这有帮助,
答案 1 :(得分:2)
虽然此功能目前在Azure AD中不可用,但如果在混合中添加Auth0,则可以实现此方案。 Auth0支持您的应用程序multi-tenant Azure AD applications as a connection,using the rules engine您可以编写规则来限制基于Azure AD租户对特定应用程序的访问。
以下是一个示例,说明如何在Azure AD中进行身份验证并且用户可以访问您的应用程序之前,在Auth0身份验证管道中运行此规则:
function (user, context, callback) {
if(context.clientName !== 'NameOfTheAppWithWhiteList'){
var whitelist = [ 'tenantId1', 'tenantId2' ]; //authorized Azure AD tenants.
var userHasAccess = whitelist.some(
function (tenantId) {
return tenantId === user.tenantid;
});
if (!userHasAccess) {
return callback(new UnauthorizedError('Access denied.'));
}
}
callback(null, user, context);
}
免责声明:我为Auth0工作。