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...
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" #...
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 引用
安装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 选择...
