首页/新闻资讯/正文详情

Apereo CAS OIDC Discovery 完整指南:一个 issuer 如何撑起全部端点

发布时间:2026/11/4 11:27:18 来源:云帆数科 栏目:资讯中心
Apereo CAS OIDC Discovery 完整指南:一个 issuer 如何撑起全部端点
Apereo CAS OIDC Discovery 完整指南一个 issuer 如何撑起全部端点【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址: https://gitcode.com/gh_mirrors/ca/cas你手里只有一个地址https://sso.example.org/cas/oidc。这是 Apereo CAS 的 OIDC 服务里认证提供方的门牌号issuer。客户端要发起登录却不该把授权、取令牌、校验公钥……十来个端点逐个硬编码进代码。OIDC Discovery 就是干这件事的客户端只拿着 issuer就能自动发现其余所有端点和能力。它本质是一份服务注册表把CAS 能做什么、去哪调用以机器可读的方式公开。先看效果一条 curl 拿到全部端点在默认上下文路径/cas下Discovery 端点长这样curl -s https://sso.example.org/cas/oidc/.well-known/openid-configuration返回是一段 JSON节选如下{ issuer: https://sso.example.org/cas/oidc, authorization_endpoint: https://sso.example.org/cas/oidc/oidcAuthorize, token_endpoint: https://sso.example.org/cas/oidc/oidcAccessToken, userinfo_endpoint: https://sso.example.org/cas/oidc/oidcProfile, jwks_uri: https://sso.example.org/cas/oidc/jwks, scopes_supported: [openid, profile, email, offline_access] }客户端拿到这份 JSON后续所有请求的地址就齐了——它甚至不需要你告诉它每个端点具体在哪。读懂这份 JSON端点、能力与算法元数据看似冗长其实是围绕三个问题展开的。端点在哪。所有 URL 都由issuer拼上一段固定路径得到issuer就是整份 JSON 的根。CAS 一共暴露四个 well-known 入口前两个返回完全相同的元数据只是入口不同路由以 /cas 为例作用/cas/oidc/.well-known兼容早期约定的裸端点/cas/oidc/.well-known/openid-configuration标准 OIDC Discovery/cas/oidc/.well-known/oauth-authorization-serverRFC 8414 风格元数据输出同上/cas/oidc/.well-known/webfingerWebFinger 反查入口见后文端点规则一致授权{issuer}/oidcAuthorize、令牌{issuer}/oidcAccessToken、用户信息{issuer}/oidcProfile、单点登出{issuer}/oidcLogout、公钥{issuer}/jwks另有自省/introspect、吊销/revoke、动态注册/register、PAR 推送/oidcPushAuthorize、CIBA 后信道/oidcCiba。要特别记住的一点jwks_uri永远指向{issuer}/jwks客户端凭它取校验令牌签名用的公钥。支持什么能力。这里是协议菜单。scopes_supported声明能申请的 scope默认含openid、profile、email、offline_access等claims_supported列出可返回的用户声明grant_types_supported与response_types_supported声明支持的授权模式client_registration_types_supported固定为[automatic]表示支持自动注册客户端。用什么算法签。ID Token、UserInfo、自省响应各自带一组..._signing_alg_values_supported和加密算法清单默认以 RS / ES 系列为主PKCE 的code_challenge_methods_supported支持plain与S256。先说结论issuer 校验是一道硬闸。请求的 Host 与 CAS 配置的 issuer 对不上时端点直接返回 404不吐出任何元数据。这不是文档里的小字而是防探测的实打实行为。改配置三类属性按需动手Discovery 的全部能力挂在cas.authn.oidc.discovery下对应配置模型OidcDiscoveryProperties。按读者最常改的频率分三类讲。开关类布尔控制某项扩展开不开。claims-parameter-supported、request-parameter-supported默认都是truerequire-pushed-authorization-requests默认false开启后强制所有授权请求走 PARtls-client-certificate-bound-access-tokens默认false做 mTLS 绑定访问令牌时才置true。这类项默认值贴近生产没有特殊需求可以不动。列表类决定菜单上有哪些条目。最常改的是scopes、claims、response-types-supported、response-modes-supported、prompt-values-supported、grant-types-supported。默认值已经很完整只有想收窄对外暴露范围时才需要显式列出。算法类全是字符串列表声明签名 / 加密的alg与编码enc白名单。ID Token 签名默认含RS256、ES256等十余种加密覆盖 RSA-OAEP、A128GCM 系列。除非合规审计要求收紧默认即可。完整清单见OidcDiscoveryProperties。这里给一份典型的收窄示例cas: authn: oidc: issuer: https://sso.example.org/cas/oidc discovery: scopes: openid,profile,email,offline_access claims: sub,name,email,email_verified,preferred_username response-types-supported: code,id_token id-token-signing-alg-values-supported: RS256,RS384,ES256 prompt-values-supported: none,login,consent改完这些属性重启 CAS 或刷新配置即生效无需动任何代码。一个不用配的例外acr_values_supportedacr_values_supported认证上下文类引用在配置模型里默认是空列表但 CAS 会自动替你把名字补齐。打个比方它像物业自动盘点在场的所有保安——你启用了几种 MFAGoogle Authenticator、Duo、WebAuthn、YubiKey……CAS 就把每个MultifactorAuthenticationProvider的id收进这份清单直接写进 Discovery 元数据。你不用挨个报名字启用了什么它就自动在场。只有当你想手工控制暴露哪些 ACR 值时才需要显式配置cas.authn.oidc.discovery.acr-values-supported覆盖这个自动行为。幕后配置如何变成那段 JSON链路很短。OidcServerDiscoverySettingsFactory读取casProperties.getAuthn().getOidc().getDiscovery()把每个配置值拷进一个OidcServerDiscoverySettings对象同时从OidcIssuerService解析出 issuer。接着OidcWellKnownEndpointController接到请求先做 issuer 校验通过后取到这个组装好的对象按 JSON 原样返回。所以配置 → 对象 → 响应是一条直线改配置就是改输出。WebFinger从账号反查你的 Provider除了标准 DiscoveryCAS 还实现了 WebFinger定位是给一个账号反查它的 Provider 是谁。端点/{context-path}/oidc/.well-known/webfingerresource必填要查的账号标识典型形如acct:casusersso.example.orgrel可选关系类型OIDC 标准值http://openid.net/specs/connect/1.0/issuer响应媒体类型是application/jrdjson里面是指向 CAS issuer 的链接客户端据此拼出完整 Discovery 文档地址。这里有个坑resource是必填项一旦缺失端点直接返回 400 Bad Request而rel可省略有无它都返回 200。若压根没配置 WebFinger 服务则返回 404。部署后自查清单部署完成用下面几条逐一核对 Discovery 是否就位✅ 请求openid-configuration返回 200且$.issuer存在✅jwks_uri指向{issuer}/jwks且该地址能取到公钥✅ 用未注册的域名伪造 Host 访问应得到 404不泄漏元数据✅ WebFinger 带resource返回 200、缺resource返回 400✅ 改任一cas.authn.oidc.discovery.*后响应 JSON 同步变化【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址: https://gitcode.com/gh_mirrors/ca/cas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Sunshine macOS 安装配置全流程:6 步跑通游戏串流,3 个报错一次讲透
Sunshine macOS 安装配置全流程:6 步跑通游戏串流,3 个报错一次讲透

Sunshine macOS 安装配置全流程:6 步跑通游戏串流,3 个报错一次讲透 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想在 Mac 上把 Mac 当串流主机&#xf… · 2026/11/4 11:26:18

gamdl 深度拆解:Apple Music 无损下载与 4K 音乐视频的命令行方案
gamdl 深度拆解:Apple Music 无损下载与 4K 音乐视频的命令行方案

gamdl 深度拆解:Apple Music 无损下载与 4K 音乐视频的命令行方案 【免费下载链接】gamdl A command-line app for downloading Apple Music songs, music videos and post videos. 项目地址: https://gitcode.com/GitHub_Trending/ga/gamdl gamdl 是一个面向… · 2026/11/4 11:26:18

Komikku终极指南:掌握开源漫画阅读器的架构设计与实战技巧
Komikku终极指南:掌握开源漫画阅读器的架构设计与实战技巧

Komikku终极指南:掌握开源漫画阅读器的架构设计与实战技巧 在Android平台寻找一款功能全面、完全免费的开源漫画阅读器吗?Komikku正是您需要的解决方案。这款基于TachiyomiSY和Mihon项目开发的漫画阅读器,不仅继承了前者的优秀基因&#xff… · 2026/11/4 11:26:18

Codex接入第三方API:多提供方配置与统一切换实战
Codex接入第三方API:多提供方配置与统一切换实战

1. 为什么要在 Codex 里折腾第三方 API 这件事 Codex 这类代码智能助手用久了,几乎所有人都会走到同一个岔路口:官方内置的模型能力够用,但不够"顺手"。有人想接一个更擅长长上下文推理的模型来处理大型代码库,有人想用… · 2026/11/4 13:43:44

DBeaver数据库管理工具:SQL格式化与数据导入导出实战
DBeaver数据库管理工具:SQL格式化与数据导入导出实战

1. DBeaver 基础功能与使用场景DBeaver 是一款开源的数据库管理工具,支持多种数据库系统(如 MySQL、PostgreSQL、Oracle 等),提供了丰富的功能来简化数据库开发和管理工作。作为一名长期使用 DBeaver 的开发者,我发现它… · 2026/11/4 13:43:44

智慧园区建设方案:统一平台架构与七大场景落地实践
智慧园区建设方案:统一平台架构与七大场景落地实践

简介:这份PDF资料面向园区管理者、智慧城市方案设计者与数字化转型从业者,系统梳理华为智慧园区通用场景解决方案,围绕“平台生态”理念回应园区管理对象多、运营成本高、服务感知差等痛点。内容从智能社会趋势切入,依次展开大企业… · 2026/11/4 13:43:44

企业AI应用从工具集到上下文感知系统的转型实践
企业AI应用从工具集到上下文感知系统的转型实践

1. 从AI工具集到Context System的演进路径 在数字化转型的浪潮中,企业AI应用正经历着从孤立工具到智能系统的质变。三年前,我们团队刚开始接触AI时,也只是把各种AI模型当作独立工具来使用——这里用个图像识别API,那里调用个文本分… · 2026/11/4 13:43:43

等保2.0条款变化深度拆解:从1.0到2.0的迁移与整改指南
等保2.0条款变化深度拆解:从1.0到2.0的迁移与整改指南

简介:这份资源是面向企业安全负责人、系统集成商与安全厂商从业者的等保2.0基本要求解读文档,聚焦等级保护2.0相较1.0在技术要求上的关键变化,帮助读者理清合规要点与落地思路。内容围绕安全通信网络、安全区域边界、安全计算环境等结构调整展… · 2026/11/4 13:43:43

智能建筑IAQ监测系统:多模态传感与边缘计算实践
智能建筑IAQ监测系统:多模态传感与边缘计算实践

1. 项目背景与行业痛点 在商业地产和高端住宅领域,室内空气质量(IAQ)管理正成为价值投资的重要考量因素。过去三年,全球智能建筑市场规模以年均18.7%的速度增长,其中IAQ监测系统占比提升至29%。但传统方案存在三个致命… · 2026/11/4 13:42:40

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码