当后端在其他服务器上时,重定向Azure Active Directory应用程序注册的URI

时间:2019-01-16 13:17:15

标签: azure azure-active-directory azure-web-sites

我打算将Angular HTML前端部署为Azure应用服务。在应用程序设置中,可以选择启用Azure Active Directory身份验证。如果启用,当我导航到https://my-awesome-project.azurewebsites.net时,我将重定向到MS登录屏幕,可以在其中输入我的AAD凭据。但是,要使其正常工作,我需要在AAD中注册我的应用。

遵循this guide只是三个步骤,但我还有一个问题:

由于在我的场景中,HTML前端(Azure App Serivce)和Node.js后端API位于单独的服务器上,因此我的应用程序注册的重定向URI 应该指向后端的HTTP端点服务器,对吧?

我看过很多教程,都将您应用的网络URL放入“重定向URI”字段中。但是在这种情况下,我的HTML / js前端如何知道如何处理?

毕竟,微软表示“ 我们将在成功验证用户身份后将验证响应返回到此[重定向] URL ...

欢呼

1 个答案:

答案 0 :(得分:0)

您需要了解身份验证的工作原理。如果您使用Azure Active Directory进行身份验证,则需要进行身份验证的任何应用程序都需要在AAD(Azure Active Directory)中进行注册。在您的情况下,前端和后端都需要向AAD注册,并且后端需要对前端应用程序具有信任关系,并且您需要在Azure中对其进行配置。 https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-auth-aad

您的前端需要控制流程,并且在身份验证之后,您将重定向到前端,并且它应该从AAD接收令牌,并且您将必须在授权标头中使用该令牌来访问后端API。对于这种流程,您可以使用AADL(AAD库https://github.com/AzureAD/azure-activedirectory-library-for-js)来解决这一问题,并且通常可以更好地选择这种身份验证流程。

另一点,为什么当静态前端需要针对Angular / HTML使用Azure App服务?您可以研究Azure静态托管站点,这将节省大量成本。 https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website

更多资源 https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-angularjs-spa