Hydra 为 iam-login /console 开启 CORS #175

Merged
panxiao81 merged 1 commits from feat/iam-console-cors into main 2026-10-01 16:45:44 +00:00
Owner

问题与结果

iam-login 客户端管理 API 改为只接受 Hydra 签发的 bearer token(panxiao81/iam-login#7)。其 /console 管理前端是 Hydra 的 public 客户端 iam-admin-ui(PKCE),浏览器直接向 Hydra 交换授权码,因此需要 public 端口 CORS。

  • hydra.yaml:serve.public.cors 只允许 https://laptop.tail7e769.ts.net:18082,方法 GET/POST,头 Authorization/Content-Type,allow_credentials: false。Gitea 等服务端客户端不受 CORS 影响。
  • README:记录 iam-admin-ui 经 Admin 带外登记的命令(与 gitea 一致;它是 public 客户端,iam-login API 看不到也删不掉它),以及开发实例需配置 iam.clients.admin-ui-client-id。同时把 #168 的状态改为已合并。

验证

  • kubectl kustomize apps/hydra 渲染正常;对现网 kubectl diff 仅新增 hydra-config ConfigMap 并更新 Deployment 引用。
  • 同样的 CORS 设置已在 iam-login 浏览器夹具(Hydra v26.2.0)中走通授权码交换。
  • 未执行:现网应用与 /console 人类验收。

部署与文档

  • 合并后 Flux 滚动 Hydra(Admin 转发会自动重连)。该改动本身不改变任何现有登录行为,可先于 iam-login#7 合并。
  • 之后:部署 iam-login#7 到开发实例、加配置、执行 README 中的登记命令,再由维护者验收 /console。
  • 回退:revert 本 PR 即关闭 CORS;/console 将无法换取 token,其他登录不受影响。

🤖 Generated with Claude Code

## 问题与结果 iam-login 客户端管理 API 改为只接受 Hydra 签发的 bearer token(panxiao81/iam-login#7)。其 `/console` 管理前端是 Hydra 的 public 客户端 `iam-admin-ui`(PKCE),浏览器直接向 Hydra 交换授权码,因此需要 public 端口 CORS。 - `hydra.yaml`:`serve.public.cors` 只允许 `https://laptop.tail7e769.ts.net:18082`,方法 GET/POST,头 Authorization/Content-Type,`allow_credentials: false`。Gitea 等服务端客户端不受 CORS 影响。 - README:记录 `iam-admin-ui` 经 Admin 带外登记的命令(与 `gitea` 一致;它是 public 客户端,iam-login API 看不到也删不掉它),以及开发实例需配置 `iam.clients.admin-ui-client-id`。同时把 #168 的状态改为已合并。 ## 验证 - `kubectl kustomize apps/hydra` 渲染正常;对现网 `kubectl diff` 仅新增 hydra-config ConfigMap 并更新 Deployment 引用。 - 同样的 CORS 设置已在 iam-login 浏览器夹具(Hydra v26.2.0)中走通授权码交换。 - **未执行**:现网应用与 `/console` 人类验收。 ## 部署与文档 - 合并后 Flux 滚动 Hydra(Admin 转发会自动重连)。该改动本身不改变任何现有登录行为,可先于 iam-login#7 合并。 - 之后:部署 iam-login#7 到开发实例、加配置、执行 README 中的登记命令,再由维护者验收 `/console`。 - 回退:revert 本 PR 即关闭 CORS;`/console` 将无法换取 token,其他登录不受影响。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
panxiao81 added 1 commit 2026-10-01 16:42:10 +00:00
iam-login 的 /console 是 Hydra public 客户端,浏览器直接向 Hydra
换取 token,因此 public 端口开启 CORS,只放行开发实例 origin,不放行
cookie 凭据;Gitea 等服务端客户端不受影响。README 记录 iam-admin-ui
经 Admin 带外登记的方法。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
panxiao81 merged commit 7f64c5d2b9 into main 2026-10-01 16:45:44 +00:00
panxiao81 deleted branch feat/iam-console-cors 2026-10-01 16:45:44 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/homelab-infra#175