跳到主内容

一篇文章 含有标签「OIDC」

查看所有标签

使用 Casdoor 实现 Jenkins OIDC、Gitea OIDC 和 Grafana SSO:为自托管 DevOps 技术栈提供统一登录

· 阅读时间:一分钟
Yang Luo
Casdoor Maintainer

典型自托管 DevOps 技术栈中的每个工具都可以作为 OpenID Connect 客户端:Gitea 和 Argo CD 原生支持 OIDC,Jenkins 通过 oic-auth 插件支持,Grafana 和 Portainer 通过通用 OAuth 2.0 支持,MinIO、Harbor 和 GitLab 则通过其 OIDC 设置支持。将所有工具指向同一个 Casdoor 实例,为每个工具分配一个独立的 Casdoor 应用,并将用户添加到 Casdoor 群组中。随后,每个工具读取 groups 声明并确定谁是管理员。本文列出了每个工具的回调 URL、配置键和群组映射,然后介绍了它们的共同部分。

Nginx CAS 认证与 SSO:使用 Casdoor 在 Nginx 后保护任意应用

· 阅读时间:一分钟
Yang Luo
Casdoor Maintainer

开源版 nginx 没有 CAS 模块,因此实际上“nginx CAS 认证”意味着两种配置之一。要么 nginx 通过其 auth_request 模块向每个请求询问认证服务,由 Casdoor 回答(直接通过 /api/forward-auth,或通过 casdoor-forward-auth 或 OAuth2 Proxy),要么 nginx 后面的应用本身是一个 CAS 客户端,并与 Casdoor 的 CAS 服务器端点通信。如果您可以重新构建 nginx,Casdoor nginx 模块会在 nginx 内部运行登录;如果您不想运行 nginx,Casdoor 的站点代理可以位于应用之前。在所有情况下,登录页面都是 Casdoor 的,因此一个 SSO 会话、一组权限和一个 MFA 策略覆盖所有应用。

OpenID Connect 中的 RP 发起注销和 SSO 注销:Casdoor 如何让用户退出登录

· 阅读时间:一分钟
Yang Luo
Casdoor Maintainer

让用户从 OpenID Connect 应用中退出登录不仅仅是删除你自己的会话 cookie。用户在身份提供商处仍然处于登录状态,因此下一次点击“Sign in”时会直接通过而无需输入密码,并且共享该身份提供商会话的其他应用也保持登录状态。正确的注销包含三个部分:清除你应用的本地会话,将浏览器重定向到提供商的 end_session_endpoint(RP 发起的注销)以结束提供商会话,并让提供商通过后通道注销通知其他应用。在 Casdoor 中,结束会话端点是 /api/logout,后通道注销按应用配置,刷新令牌可以在 /api/login/oauth/revoke 处撤销。

Spring Boot SSO with OpenID Connect: Spring Security, Resource Server and Spring Cloud Gateway with Casdoor

· 阅读时间:一分钟
Yang Luo
Casdoor Maintainer

要为 Spring Boot 添加单点登录 (SSO),请将每个应用注册为 OpenID Connect 提供商(如 Casdoor)中的应用,将 Spring Security 指向该提供商的 issuer URL,并选择与应用匹配的 Spring 模块:对于服务器端渲染的 Web 应用使用 oauth2Login(),对于接收 bearer 令牌的 REST API 使用 oauth2ResourceServer().jwt(),当通过一个网关为一组微服务用户登录时,使用带有 TokenRelay 过滤器的 Spring Cloud Gateway。用户获得 SSO 是因为所有应用都将他们发送到同一个 Casdoor,后者记住了会话:第二个应用重定向时,Casdoor 已经知道该用户,因此他们会直接返回而无需显示登录表单。本文针对单个 Casdoor 实例设置这三种模式,每种模式都包含可用的 application.yml 和自定义的 SecurityFilterChain。

DolphinScheduler、IoTDB 及其他 Apache 数据平台:使用 Casdoor 实现单点登录

· 阅读时间:一分钟
Yang Luo
Casdoor Maintainer

几个 Apache 数据和中间件项目自带了 Casdoor 登录功能:Apache DolphinScheduler 具有一种名为 CASDOOR_SSO 的身份验证类型(自 3.2.0 起)和一种通用的 OIDC 模式(自 3.4.0 起),Apache ShenYu 具有 Casdoor 插件(自 2.5.1 起),Apache Pulsar Manager 具有“使用 Casdoor 登录”按钮(自 0.3.0 起),而 Apache APISIX 具有 authz-casdoor 插件(自 2.14.0 起)。Apache IoTDB 是个例外:数据库本身使用自己的用户名和密码进行身份验证,只有现已归档的 IoTDB Web Workbench 与 Casdoor 通信。下表列出了每个项目、版本以及设置所在的位置;文章后半部分逐步介绍了如何在 IoTDB 中设置用户身份验证。

Steam OAuth 和 Telegram OAuth 与 Casdoor:通过 OIDC 添加非标准社交登录

· 阅读时间:一分钟
Yang Luo
Casdoor Maintainer

不存在“Steam OAuth”:Steam 使用 OpenID 2.0 对用户进行身份验证,并为您提供一个 64 位的 SteamID,仅此而已。Telegram 的经典登录组件也不是 OAuth:它会向您的页面提供一组用户字段以及一个使用您的机器人令牌进行验证的 HMAC-SHA256 哈希值。现在 Telegram 还在 oauth.telegram.org 运行一个真正的 OpenID Connect 提供商。如果您在应用和这些提供商之间放置 Casdoor,Casdoor 将执行协议特定的检查,而您的应用只与 Casdoor 通信 OpenID Connect,就像它与 Google 或 GitHub 通信一样。