我打算将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 ... ”
欢呼
答案 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