问题标签 [django-oauth-toolkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
614 浏览

python - django oauth 工具包“或”在所需范围内查看

我默认使用带有 IsAuthenticatedOrTokenHasScope 权限的 drf 和 oauth 工具包。我有一个包含范围的视图 required_scopes = ['mod', 'admin']当用户登录应用程序时,他有特殊的组来定义他的权限范围。因此,当版主登录应用程序时,他会获得mod范围。当他调用我的视图时,他得到 403,因为allow_scopes在 AccessToken 模型中返回 False。那是因为resource_scopesis ['mod', 'admin'] 并且provided_scopes 是'mod'。当方法allow_scopes检查时resource_scopes.issubset(provided_scopes),她返回 False,这在我的情况下不是故意的。

是否有任何其他选项不覆盖 AccessToken 模型中的 allow_scopes 来定义此视图需要 scopemod或 scope admin。?

0 投票
1 回答
225 浏览

django-rest-framework - DRF 和 Oauth2:创建资源和授权服务器

我在 django rest 框架和 oauth2 上开发了一个类似博客的项目。我现在正在尝试分离资源和身份验证服务器,如下所示:https ://django-oauth-toolkit.readthedocs.io/en/latest/resource_server.html

我已采取以下步骤:

  1. 按照文档中的说明设置身份验证服务器
  2. 将以下内容添加到身份验证服务器中的 settings.py
  1. 按照文档中的描述设置资源服务器
  2. 将此添加到资源服务器中的 settings.py 中:

我在RESOURCE_SERVER_AUTH_TOKEN based这里创建了说明:Django OAuth-分离资源和授权服务器

总而言之,我为资源服务器创建了一个超级用户,然后使用管理站点向资源服务器添加了一个应用程序,选择confidentialforclient typeauthorization codefor authorization grant type。'abc' 是我为访问令牌选择的随机字符串。

尽管如此,我仍然面临以下错误:

从我所描述的内容中,您知道我可能会出错的地方吗?我是否正确理解了这一点并以正确的方式创建了RESOURCE_SERVER_AUTH_TOKEN

0 投票
0 回答
108 浏览

python - Strange Error with Django oauth-toolkit and Azure App Service. Returns 401 {"detail":"Error decoding token."} when attempting to authenticate token

Hi I am deploying an app to Azure App Service using Django Rest Framework with OAuth2 authentication handled by django-oauth-toolkit (https://github.com/jazzband/django-oauth-toolkit). Recently when trying to connect to my React frontend I have found out that I cannot successfully authorize despite having an access token. When I make a the following API call (as suggested by the documentation):

I get the following response:

I cannot recreate this error locally nor can I find any information about this error anywhere online. I even searched the repository for the error to see if I could find what triggers it, unfortunately no luck.

Has anyone else ever experience this or can give me some insight on what potentially occurred in my deployment to cause this? I also deleted out my old deployment and even app service to completely start from scratch and the problem persisted.

0 投票
0 回答
123 浏览

python - Django OAuth 工具包 - 仅管理员用户问题

我正在使用 Django OAuth Toolkit 在我的 Django Rest Framework 后端实现 OAuth,因此我可以授予对 Google Actions 的访问权限(通过授权代码),因此当我的用户触发操作时,我的后端可以搜索用户资源并发送特定的 MQTT 消息。

我已经正确设置了流程,但是我面临的问题是,当 Django OAuth Toolkit 提供身份验证表单时,它只允许我的管理员用户登录。我怎样才能为我的数据库中的任何用户提供可能性检索访问令牌?

编辑

看起来这不是 Django OAuth Toolkit 问题,要登录用户必须具有 is_staff 标志 = True 才能授予对 OAuth 应用程序的访问权限。任何解决方法或建议?

0 投票
1 回答
116 浏览

django - 单独的资源服务器(Django-oauth-toolkit) - 403 禁止错误(如果使用 RESOURCE_SERVER_INTROSPECTION_CREDENTIALS)

我遇到一个问题,不确定这是否是一个错误。任何帮助,将不胜感激。

一些上下文:

认证服务器:https ://github.com/pathumveyron24/Django-Auth-Server

资源服务器:https ://github.com/pathumveyron24/Django-Resource-Server

验证服务器设置文件:

资源服务器设置文件:

0 投票
1 回答
465 浏览

django - Django + django-oauth-toolkit:如何注册 OpenIdConnect 端点?

如何在 django + oauth 环境中访问 OpenId Connect 端点?

我正在尝试使用django-oauth-toolkit (1.5.0)使用 OAuth v2 + OpenId Connect设置Django (3.2.5 ) 环境。我能够按照教程进行操作,这意味着我有 oauth 支持。我能够获得 Oauth 令牌,并用它们保护端点。

但是当我尝试配置 OpenId Connect时,我无法访问 o/.well-known/... 端点,它们根本没有注册。我得到一个 HTTP 404,调试页面显示 django 只知道 o/authorize/,o/token/o/revoke-token/. OpendId Connect 部分似乎暗示我不需要做任何其他事情,只需启用 OpenId 即可显示这些视图。

我的urls.py样子:

作为 OAuth 配置的一部分,我已经

  • 添加oauth2_providersettings.INSTALLED_APPS.
  • 添加oauth2_provider.middleware.OAuth2TokenMiddlewaresettings.MIDDLEWARE.
  • 添加django.contrib.auth.backends.ModelBackend, oauth2_provider.backends.OAuth2Backend,django.contrib.auth.backends.ModelBackendsettings.AUTHENTICATION_BACKENDS.
  • 由于这是一个测试环境,CORS_ORIGIN_ALLOW_ALL因此设置为True.
  • 添加path('o/', include((oauth2_endpoint_views, 'oauth2_provider'), namespace="oauth2_provider"))到`urls.
  • 注册了类型为机密和授权授予类型Authorization Code的 OAuth 客户端,OIDC 不支持 oauth 测试,RSA 用于 OIDC 测试。

并且 OAuth 正在按预期工作。

作为 OpenId Connect 的一部分

  • 生成的 RSA 私钥和公钥。
  • OAUTH2_PROVIDERsettings. _
  • 设置DEBUG = Falsesettings.
  • 将客户端算法设置为 RSA 以进行 OIDC 测试。

我没有注册任何额外的网址,因为(i)我不知道要注册什么,并且(ii)没有迹象表明我应该做其他任何事情。

0 投票
0 回答
78 浏览

django - 使用 okta 工作流 API 连接器的 Django OAuth 工具包刷新令牌

我已经成功创建了一个 oauth 提供程序,并且可以验证我是否能够使用 django-oauth-toolkit 获取令牌和刷新令牌。在使用 [okta workflow api connector][1] OAUTH 选项时,它能够在完成初始设置后获取令牌。但是,一旦初始令牌过期,它就不会按预期获得刷新的令牌。连接器设置的范围是我通过SCOPES设置添加到我的 django 项目的 settings.py 的附加范围,类似于文档在 [此链接] [2] 中的显示方式。

因为我是 django-oauth-toolkit 的新手。我的第一个问题是通过此方法添加的新范围是否需要进行额外配置才能允许 oauth2 连接获取刷新令牌?

我正在使用 django-oauth-toolkit 1.5.0 [1]:https ://help.okta.com/wf/en-us/Content/Topics/Workflows/function-reference/HTTP/http_authorization.htm [2]:https://django-oauth-toolkit.readthedocs.io/en/latest/rest-framework/getting_started.html

0 投票
1 回答
23 浏览

django - 基于应用程序的自定义范围

我正在尝试为 Django-oauth-toolkit 中的每个 oauth 应用程序定义不同的范围。我意识到我可以在设置文件上定义不同的范围。但似乎它们适用于我创建的每个新的 oauth 应用程序。

有没有办法为特定的 oauth 应用程序定义范围?

0 投票
0 回答
41 浏览

django - Django OAuth2 工具包

我正在使用 django oauth2 工具包。任何人都可以帮助我理解吗?

  1. 我能够根据扩展的 AbstractUser 模型注册用户。
  2. 根据注册详细信息,我可以通过输入用户名、密码、client_id、client_secret 和 grant_type 对用户进行身份验证。
  3. 在这些中输入登录凭据、ID 和密码后(127.0.0.1:8000/o/token/),我可以获得访问和刷新令牌
  4. 获取 access_token 时,如何将用户详细信息与 access_token 一起传递。谁能帮我整理一下这些。我正在使用邮递员。

序列化程序.py

视图.py

网址.py

0 投票
0 回答
6 浏览

django - Django - 使用 django-oauth-toolkit 向 oauth 客户端发送数据

我想在 OAuth 服务器数据库中有任何更新时更新我的​​ OAuth 客户端数据库,而不是调用来获取数据和更新数据库。

我试图通过 django-oauth-toolkit 找到一种方法,但找不到任何方法。有没有办法通过 django-oauth-toolkit 实现这一目标,或者我应该使用 webhook 来实现这一目标?