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 令牌。
我必须在我的 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 令牌。