2015-03-18 249 views
5

在Azure AD上使用多租戶應用程序時,是否有限制某些租戶的方法?Azure Active Directory |多租戶應用程序

也許我誤解了整個事情,但我意識到另一個租戶的用戶可以在同意後登錄到我的應用程序,我無法找到一種方法來限制登錄到我信任的一組租戶。

回答

4

我們目前沒有映射到多租戶應用程序的租戶允許列表的應用程序配置屬性。

您可以做的是將此功能構建到應用程序中 - auth/JWT令牌包含作爲聲明的tenantID(tid)。您只能授權您的應用允許列表中的已知租戶訪問。

請讓我們知道這是否是您希望通過應用程序配置頁面進行配置的功能(如在azure管理門戶中)?此外,在這裏瞭解您的場景也會很棒。

希望這有助於

+1

嗨丹,謝謝你的回答。我可以對我的代碼執行驗證,但用戶仍然可以在我的租戶上註冊爲我的應用程序的用戶。我測試了它。有什麼方法可以避免用戶同意我的代碼?我將此示例作爲參考:https://github.com/AzureADSamples/WebApp-MultiTenant-OpenIdConnect-DotNet。在應用程序配置頁面 – 2015-03-19 17:59:15

+0

上有一個選項是很好的。這是正確的。如果沒有新功能,我們無法阻止用戶同意登錄您的多租戶應用。控制訪問權限將需要在您的應用中授權用戶的一部分。我會確保在這裏添加一個功能請求Rodrigo。感謝您的反饋。 – 2015-03-20 06:10:45

+0

太棒了!謝謝丹! – 2015-03-20 11:55:03

2

雖然這個功能是不是今天在Azure中的廣告的,你可以,如果你在混合添加Auth0實現這個場景。 Auth0爲您的應用程序支持multi-tenant Azure AD applications as a connection,並支持using the rules engine,您可以編寫規則來限制對基於Azure AD租戶的特定應用程序的訪問。

下面是一個例子,說明這樣的規則(它運行在Auth0認證管道,用戶在Azure的AD和用戶之前驗證才能訪問你的應用程序後):

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工作。

相關問題