我在Azure App Service上托管一个SAP应用程序。我想通过Azure AD保护应用程序。因此,我引用document来使用“身份验证/授权”来集成Azure AD Web应用程序。根据测试,只有具有Web应用程序的AD租户中的Azure AD用户才能访问Web应用程序。但是我的同事是三个不同的租户。我想允许他们访问该应用程序。我可以使用Azure Web应用程序的“身份验证/授权”功能来实现它吗?
答案 0 :(得分:1)
根据我们的测试,如果您想使用“身份验证/授权”功能将您的应用程序配置为Azure AD多租户应用程序。您可以参考以下步骤。
在Azure App服务中配置
请注意,这样做之后,它将允许任何租户中的用户访问您的应用程序。因此,您需要在应用程序中编写代码以通过验证其令牌来限制对其的访问。有关更多详细信息,请参阅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中注册该应用程序时更新此应用程序的配置,以允许多租户访问该应用程序。