如何限制对Azure Web应用程序服务上托管的Web应用程序的访问

时间:2019-09-03 08:27:27

标签: node.js azure azure-web-sites azure-web-app-service

我在Azure App Service上托管一个SAP应用程序。我想通过Azure AD保护应用程序。因此,我引用document来使用“身份验证/授权”来集成Azure AD Web应用程序。根据测试,只有具有Web应用程序的AD租户中的Azure AD用户才能访问Web应用程序。但是我的同事是三个不同的租户。我想允许他们访问该应用程序。我可以使用Azure Web应用程序的“身份验证/授权”功能来实现它吗?

2 个答案:

答案 0 :(得分:1)

根据我们的测试,如果您想使用“身份验证/授权”功能将您的应用程序配置为Azure AD多租户应用程序。您可以参考以下步骤。

  1. Register Azure AD application for Azure App service

    • 在Azure AD中注册Web应用 enter image description here

    • 您可以在概述中获取客户端ID(应用程序ID) enter image description here

    • 添加秘密 enter image description here

  2. 在Azure App服务中配置

    • 选择高级
    • 提供客户端ID和客户端密钥。您无需提供颁发者ID。

请注意,这样做之后,它将允许任何租户中的用户访问您的应用程序。因此,您需要在应用程序中编写代码以通过验证其令牌来限制对其的访问。有关更多详细信息,请参阅document

此外,您还可以通过代码直接实现您的需求。由于您开发了SPA应用程序,因此可以使用MSAL.js来完成。此外,您想限制三个租户用户访问它,您可以在登录后验证其令牌。例如:

//创建用于登录或令牌请求调用的请求对象     //在具有增量同意的情况下,可以进一步自定义请求对象     var requestObj = {         范围:[“ user.read”]     };

var myMSALObj = new Msal.UserAgentApplication(msalConfig);

// Register Callbacks for redirect flow
// myMSALObj.handleRedirectCallbacks(acquireTokenRedirectCallBack, acquireTokenErrorRedirectCallBack);
myMSALObj.handleRedirectCallback(authRedirectCallBack);

// difine issuers
var issuers = new Array();
issuers[0]="https://login.microsoftonline.com/{TenantId}/v2.0";
issuers[1]="https://login.microsoftonline.com/{TenantId}/v2.0";

function signIn() {
    myMSALObj.loginPopup(requestObj).then(idToken => {

        var issuer =String(idToken.idToken["issuer"])
        console.log(issuer) 
        if(issuers.indexOf(issuer) != -1){
            //login successfully then your users can do otherthing

        }else{

            // your users use a wrong account
        }

    }).catch(function (error) {
        //Please check the console for errors
        console.log(error);
    });
}

有关Moew的详细信息,请参阅https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa

答案 1 :(得分:0)

只有在注册了该应用程序的同一AAD中具有组织帐户的用户才能访问单租户应用程序。

另一方面,拥有有效组织帐户的任何人都可以访问多租户应用程序。

基本上,您必须在Azure AD中注册该应用程序时更新此应用程序的配置,以允许多租户访问该应用程序。