授权证书剥离 - Django的,弹性的豆茎,OAuth的

问题描述 投票:70回答:4

我实现了一个REST API在Django Django的休息框架和使用的oauth2进行身份验证。

我测试了:

curl -X POST -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD" http://localhost:8000/oauth2/access_token/

curl -H "Authorization: Bearer <your-access-token>" http://localhost:8000/api/

在与文档一致成功的结果本地主机。

当按下这个长达一个现有的AWS弹性青苗例如,我收到:

{ "detail" : "Authentication credentials were not provided." }
django amazon-web-services oauth-2.0 elastic-beanstalk django-rest-framework
4个回答
27
投票

我现在用一个稍微不同的方法。作为汤姆dickin指出ENV变量没有改变sahutchi的解决方案担任长。我里面挖EB深一点,发现其中wsgi.conf模板定位并添加了“WSGIPassAuthorization上”的选择。

commands:
  WSGIPassAuthorization:
    command: sed -i.bak '/WSGIScriptAlias/ a WSGIPassAuthorization On' config.py
    cwd: /opt/elasticbeanstalk/hooks

这永远是可行的,不断变化的环境变量时也是如此。希望对你有帮助。

编辑:好像很多人还是达不到这个响应。我没有用ElasticBeanstalk在一段时间,但我会考虑使用以下马内尔克洛斯的解决方案。我还没有尝试过个人,但似乎更清洁的解决方案。这一个是字面上的EB脚本黑客和在未来可能打破,如果EB更新它们,特别是如果他们将其移动到不同的位置。


52
投票

我想只是有关于标准的地方一些额外配置的想法。在您的.ebextensions目录下创建一个wsgi_custom.config文件有:

files:
  "/etc/httpd/conf.d/wsgihacks.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      WSGIPassAuthorization On

由于张贴在这里:https://forums.aws.amazon.com/message.jspa?messageID=376244


35
投票

我认为这个问题是我在Django配置或某些其他错误类型,而不是专注于本地主机和EB之间的差异。问题是与EB的Apache的设置。

WSGIPassAuthorization本身被设置为OFF,因此必须将其打开。你可以在你的* .config文件来完成你的.ebextensions文件夹使用以下命令添加:

container_commands:
  01_wsgipass:
    command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'

请让我知道如果我错过了什么,或者有更好的办法,我应该看这个问题。我不是在网络上任何地方这个专门找到任何东西,认为这可能会节省故障排除有人小时,然后感到愚蠢的。


0
投票

虽然上述方案很有趣,还有另一种方式。让你想在.ebextensions使用wsgi.conf虚拟主机配置文件,并在后部署挂钩覆盖它(你不能做这个预部署,因为它会被重新生成(是的,我发现了这一点硬方式)。如果你这样做,重新启动时,请务必使用supervisorctl程序重新启动,以便得到正确设置所有的环境变量。(我发现这个硬盘的方式为好。)

cp /tmp/wsgi.conf /etc/httpd/conf.d/wsgi.conf
 /usr/local/bin/supervisorctl -c /opt/python/etc/supervisord.conf restart httpd
exit 0

01_python.config:

05_fixwsgiauth:
    command: "cp .ebextensions/wsgi.conf /tmp"
© www.soinside.com 2019 - 2024. All rights reserved.