Trong khi tính năng này không có sẵn trong Azure AD hôm nay, bạn có thể thực hiện kịch bản này nếu bạn thêm Auth0 trong hỗn hợp. Auth0 hỗ trợ multi-tenant Azure AD applications as a connection cho các ứng dụng của bạn và using the rules engine bạn có thể viết quy tắc để hạn chế quyền truy cập vào một ứng dụng cụ thể dựa trên đối tượng thuê Azure AD.
Dưới đây là một ví dụ về cách như một quy tắc (mà chạy trong các đường ống xác thực Auth0, sau khi người dùng được chứng thực trong Azure AD và trước khi người dùng có thể truy cập vào ứng dụng của bạn):
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);
}
Disclaimer: Tôi làm việc cho Auth0.
Nguồn
2015-03-23 09:55:34
Hi Dan, cảm ơn câu trả lời. Tôi có thể thực hiện xác thực đó trên mã của mình nhưng người dùng vẫn có thể đăng ký với tư cách là người dùng ứng dụng của tôi trên người thuê nhà của tôi. Tôi đã thử nghiệm nó. Có cách nào để tránh sự đồng ý của người dùng trên mã của tôi không? Tôi lấy mẫu này làm tham chiếu: https: //github.com/AzureADSamples/WebApp-MultiTenant-OpenIdConnect-DotNet. Sẽ rất tuyệt khi có một tùy chọn trên trang cấu hình ứng dụng –
Đúng vậy. Không có tính năng mới, chúng tôi không thể ngăn người dùng đồng ý đăng nhập vào ứng dụng nhiều người thuê của bạn. Kiểm soát quyền truy cập sẽ cần phải xảy ra như là một phần của việc cho phép người dùng trong ứng dụng của bạn. Tôi chắc chắn sẽ thêm yêu cầu tính năng tại đây Rodrigo. Cảm ơn vì bạn đã phản hồi. –
Tuyệt vời! Cảm ơn Dan! –