SpringSecurity集成SAML SP metadata元数据
Spring Security 5.7 中实现 SAML2 SP Metadata 端点概述在 Spring Security 5.7(对应 Spring Boot 2.7.x)中,虽然不像 Spring Security 6.x 那样提供了自动的 SP Metadata 端点配置(如 saml2Metadata() DSL),但我们可以通过手动配置 Saml2MetadataFilter 来实现相同的功能。 实现原理SAML2 Metadata 的作用SAML2 Metadata 是 SAML 联盟(SAML Federation)中的核心概念,它用于在服务提供者(SP)和身份提供者(IdP)之间交换配置信息。Metadata 包含了: SP 端点信息:Assertion Consumer Service (ACS) URL、Single Logout Service URL 等 证书信息:用于签名和加密的 X.509 证书 支持的绑定方式:HTTP-Redirect、HTTP-POST、HTTP-Artifact 等 Entity ID:SP 的唯一标识符 通过暴露...
SAML概念
前言本文是 SAML(Security Assertion Markup Language)的概念篇笔记,目标是让对 SAML 完全不了解的读者一次性理解: SAML 是什么、解决什么问题 核心角色和概念 认证流程(SP-Initiated SSO 和 IdP-Initiated SSO) 请求报文(AuthnRequest)和响应报文(Response + Assertion)中各字段的详细含义 绑定方式、元数据、安全机制、单点登出等扩展知识 参考规范: 核心:SAML V2.0 Core 绑定:SAML V2.0 Bindings 元数据:SAML V2.0 Metadata 配置文件:SAML V2.0 Profiles 一、SAML 是什么1.1 一句话定义SAML(Security Assertion Markup Language,安全断言标记语言)是一种基于 XML 的开放标准,用于在身份提供方(IdP)和服务提供方(SP)之间交换身份认证与授权数据。 简单说:SAML 就是告诉你”这个用户是谁、他有什么权限、他什么时候登录的”的一套 XML...
oauth2 oidc saml 对比
前言在单点登录(SSO)和身份认证领域,OAuth2、OIDC(OpenID Connect)和 SAML 是目前使用最广泛的三种协议。它们经常被同时提到,但解决的问题却并不完全相同: OAuth2:解决授权(Authorization)问题——“允许第三方应用访问我的资源”。 OIDC:在 OAuth2 基础上扩展,解决认证(Authentication)问题——“证明我是谁”。 SAML:一个较早期的、基于 XML 的认证+授权协议,主要用于企业 SSO。 本文作为自己的笔记,用于系统梳理三者的关系、差异及各自的适用场景。 一、核心概念对比1.1 一句话定义 协议 全称 核心定位 诞生时间 OAuth2 Open Authorization 2.0 授权框架:让第三方应用在用户授权下访问受保护资源 2012(RFC 6749) OIDC OpenID Connect 1.0 身份认证层:基于 OAuth2 之上的身份认证协议 2014 SAML Security Assertion Markup Language 认证+授权协议:基于 XML 的企业级...
Oidc登录流程
前言本文是 OIDC 概念篇的流程实践篇。概念篇回答了”OIDC 是什么、由哪些构成”;本文回答”一次 Authorization Code + PKCE 登录下来,网络层面到底具体发生了几次请求、每一次的请求体和响应体长什么样、服务端和客户端分别应该做什么校验“。 前置阅读:OIDC 概念篇,已涵盖角色定义、令牌体系、scope、客户端类型、Discovery/JWKs、Token Endpoint 认证方式等基础概念,本文不再重复。 假设场景为了贴近实际,本文设定以下场景: 参数 值 OP(OpenID Provider) Keycloak / Auth0 / Azure AD 任意 Issuer https://auth.kewen.com/realms/my-realm RP(Relying Party) 一个 Spring Boot Web 应用 客户端 ID my-web-app 客户端类型 Public Client(无 secret,使用 PKCE) Token Endpoint...
记一次RestTemplate的问题
记一次 RestTemplate 调用接口返回 401 : [no body] 问题复盘一、问题现象SP Demo 应用通过 OAuth2 授权码流程完成登录后,在回调接口 /sp-demo/oauth/callback 中使用 RestTemplate 调用本地 /oauth2/token 端点换取 Token。 异常表现: RestTemplate 抛出 HttpClientErrorException,message 为 401 : [no body] 全局异常处理器 GlobalExceptionHandler.handleOAuth2() 断点确认已经执行 服务端确实写入了 JSON 响应体 {"error":"invalid_client","error_description":"客户端认证失败"} 但 RestTemplate 侧始终拿不到 body 二、排查过程2.1 初始怀疑:OAuth2Exception 未被全局异常处理器捕获 检查发现...
openclaw基本命令
基本配置及命令配置官网说明 命令
openclaw安装插件
安装插件安装插件一般使用npm安装,如果安装失败,则检查网络 1234567891011┘kewen@DESKTOP-S0UMKGA:~/.openclaw$ npx -y @tencent-weixin/openclaw-weixin-cli@latest install[openclaw-weixin] 已找到本地安装的 openclaw[openclaw-weixin] 检测到 OpenClaw 版本: 2026.3.22[openclaw-weixin] 匹配兼容版本: 2.0.x (新宿主线) (dist-tag: latest)[openclaw-weixin] 正在安装插件 @tencent-weixin/openclaw-weixin@latest...[openclaw-weixin] 插件安装失败,请手动执行:fetch failed openclaw plugins install "@tencent-weixin/openclaw-weixin@latest" npm 设置源 npm config set registry...
安装openclaw
官网https://docs.openclaw.ai/zh-CN 安装前置需要的环境安装 git nodejs 根据不同的环境自己安装,ubuntu可以直接使用以下 1234#安装git apt install git# 安装nodejs 安装nodejs比较复杂,ubuntu自带的nodejs版本很低,需要安装新的源,见 ubuntu 安装nodejs 安装主程序123sudo curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard# 或者npm安装npm install -g openclaw@latest 配置初始化快速配置 1openclaw onboard --install-daemon 建议配置 配置项 选择 I understand this is powerful and inherently risky. Continue? 选择 Yes Onboarding mode 选择 QuickStart Model/auth provider 选择...
ubuntu 安装nodejs
说明在ubuntu的镜像中,nodejs的镜像是18.x,版本比较旧,如果想安装新的nodejs就需要先配置nodejs的源 下载安装镜像源12curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.shsudo -E bash nodesource_setup.sh 正常安装nodejs1sudo apt install nodejs 这样安装出来应该是nodejs v24,npm v11 nodejs --version 和 npm --version 引用
docker安装mac os
环境使用docker+docker compose安装 构建 docker compose新建文件docker-compose.yml 12345678910111213141516171819202122232425262728293031323334services: macos: image: dockurr/macos container_name: macos environment: # CPU核心数(不得超出物理机总核心数) CPU_CORES: "4" # macOS版本: # 15 macOS 15 Sequoia # 14 macOS 14 Sonoma # 13 macOS 13 Ventura # 12 macOS 12 Monterey # 11 macOS 11 Big Sur VERSION: "12" #...
