oauth2.0 将具有Azure AD帐户身份提供程序的Django应用部署到Azure Web应用服务失败

qvk1mo1f  于 2023-01-29  发布在  Go
关注(0)|答案(1)|浏览(143)

背景

我正在尝试按照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

vddsk6oq

vddsk6oq1#

似乎不需要自定义启动命令。
只需按照answer中的说明操作即可。
对于生产设置,仅添加SECURE_SSL_REDIRECT即可解决此问题。

相关问题