背景
我正在尝试按照Microsoft tutorial部署一个使用Azure AD作为Azure Web应用服务的帐户身份提供者的Django Web应用。
我的应用已在Azure AD门户上注册。它在localhost
上的开发中运行良好。
问题
但是,当我将其部署到Azure Web应用服务时,它失败了,因为它请求以http开头的重定向URI,而Azure AD要求任何非本地主机服务器必须具有以https开头的重定向URI。具体而言,它请求重定向URI http://myapp.com/auth/redirect
。但是,只允许我在Azure AD中注册URI https://myapp.com/auth/redirect
。
此问题已在相关的Stackoverflow question中解决
给出的解决方案是"使用./manage.py runserver_plus --cert /tmp/cert localhost:8000
运行服务器"。
这在localhost
上工作得很好,但是我在将它部署到Azure Web应用服务时遇到了麻烦。
我的部署文件存储在.github/workflows/deploy_on_<myapp>.yml
中,部署作业定义如下:
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: python-app
path: .
- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v2
id: deploy-to-webapp
with:
app-name: 'fno-calculator'
slot-name: 'Production'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_<secret> }}
问题
- 我应该如何使用自定义命令
./manage.py runserver_plus --cert /tmp/cert localhost:8000
将Django Web应用部署到Azure Web应用服务? - 是否有其他方法可以使用Azure AD部署我的Django Web应用,并使用https而不是http请求重定向URI?
∮我所尝试的∮
已修改要运行的部署文件:
- name: 'Deploy to Azure Web App'
run: ./manage.py runserver_plus --cert /tmp/cert <servername>:<port_id>
预期结果
预期部署成功且应用程序处于活动状态。
实际结果
部署失败,错误为Cannot assign requested address
。
1条答案
按热度按时间vddsk6oq1#
似乎不需要自定义启动命令。
只需按照answer中的说明操作即可。
对于生产设置,仅添加SECURE_SSL_REDIRECT即可解决此问题。