如何使用证书和MSAL保护我的Flask应用程序?



我有一个python-Flask网站,我已经为员工自助服务门户创建。我已经在我的公司Azure AD租户中注册了它。我将把它部署到一个节点(它是一个低流量的站点),我想用证书来保护它,因为它将提取我们的AD凭据和单点登录会话信息。

我在这里下载了示例代码:https://github.com/Azure-Samples/ms-identity-python-webapp

经过一些工作后,我设法重写了我的网站,使用它作为指导,我现在可以在我的笔记本电脑上使用SSO进行身份验证!

尝试将它部署到服务器上,我遵循DigitalOcean的指南:https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04

现在的问题是:我如何将其部署到服务器?我需要在Azure的身份验证选项卡中注册新url:完成。我使用https://和https://

现在的问题是:我如何让Azure识别我的应用程序,当它在服务器上?如果我尝试登录,我只是得到一个错误:"AADSTS50011:请求中指定的回复URL与为应用程序配置的回复URL不匹配;"

编辑:我发现了一些东西。在URL中,当我查询Azure时,发送的返回URI是:https://login.microsoftonline.com//oauth2/v2.0/authorize?client_id=&response_type=code&redirect_uri=http%3A%2F%2F%2F %2FgetAtoken&scope=User.ReadBasic.All+offline_access+openid+profile&state=SpOcEwhzdGBXxMsv&code_challenge=

将URL发送为http,而不是https!

要部署到服务器,需要向客户端添加证书标识,并赋予客户端访问应用程序中的web服务调用的权限。在这里阅读更多关于证书的信息。要让Azure在服务器上识别你的应用程序,你需要首先在Azure AD中注册你的应用程序。

错误AADSTS50011在尝试登录到已与Azure Active Directory (Azure AD)集成的基于saml的单点登录(SSO)配置的应用程序时也是指的。在尝试登录已设置为使用基于saml的SSO使用Azure AD进行身份管理的应用程序时,收到了错误AADSTS50011。点击这里了解更多信息。

我找到我的问题了。在nginx.conf文件中,我需要添加:

proxy_set_header X-Forwarded-Proto $scheme;

最新更新