DJANGO + SAML2 + CSRF

DJANGO + SAML2 + CSRF

我必须在我的 Django 项目中引入 SAML2 身份验证。

我的基本应用程序使用主页中@ensure_csrf_cookie 装饰器提供的 CSRF 令牌。

为了实施 SAML,我在主页上添加了一个新的“登录”按钮(用于设置 se csrf 令牌 cookie 的按钮)。该按钮将 SAML 请求发送给 IDP。当我从 IDP return 到登陆页面(saml2 子应用程序中读取响应的视图)时,我收到了关于 CSRF 令牌的 403 禁止错误。

我正在使用 OneLogin python 库 (python3-saml)。 https://github.com/onelogin/python3-saml

着陆页结尾为:?acs

我想知道是不是我的着陆页有问题,或者 IDP 响应必须以某种方式与 csrf 令牌绑定。

谢谢。

注意:我还尝试在 CSRF_TRUSTED_ORIGINS 设置

中添加 IDP 域

您可能需要将 SAML return 视图标记为 @csrf_exempt,因为 IDP 不知道如何传递 Django-specific CSRF 令牌。