You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vault集成SSO/OIDC Authelia:用户组授权与自动登录跳转需求

注意:你提供的Authelia配置中redirect_uris存在拼写错误(vault.examle.com应为vault.example.com),建议先修正该配置并重启Authelia,避免回调失败。

实现基于Authelia OIDC组信息的Vault授权(取消默认角色)

1. 确认Authelia Groups Claim格式

确保Authelia返回的groups claim为字符串数组格式(这是Vault识别组信息的标准格式)。可以通过调用Authelia的userinfo端点或在Vault OIDC配置中开启verbose_oidc_logging验证返回的claims结构。

2. 配置Vault OIDC Claim映射

更新Vault的OIDC认证方法,将Authelia的groups claim映射到Vault内部的groups实体属性:

vault auth tune -oidc-claim-maps=groups:groups auth/oidc

如果Authelia返回的组claim带有自定义前缀(如https://my-authelia-domain/groups),请调整映射关系为对应的完整claim名称。

3. 删除默认角色并创建组绑定角色

先移除原有的默认OIDC角色:

vault delete auth/oidc/role/default

为每个需要授权的LDAP组创建独立的Vault OIDC角色,绑定组信息并关联对应策略。例如为dev-team组创建角色并绑定dev-policy策略:

vault write auth/oidc/role/dev-team \
  bound_claims={"groups": "dev-team"} \
  allowed_redirect_uris="https://vault.example.com/oidc/callback,https://vault.example.com/ui/vault/auth/oidc/oidc/callback" \
  policies=dev-policy \
  user_claim="email" \
  verbose_oidc_logging=true

重复此步骤为所有需要授权的组创建角色,确保每个角色的bound_claims.groups值与LDAP组名称完全匹配。

4. 验证组授权效果

用户通过Authelia登录Vault后,执行以下命令验证组信息是否正确获取:

vault token lookup -format=json | jq '.data.meta.oidc_groups'

同时可以验证当前token是否拥有对应策略的权限:

vault capability lookup secret/dev/my-key
实现Vault UI自动跳转至Authelia登录

1. 设置OIDC为默认认证方法

将OIDC认证方法设为Vault的默认登录方式,确保UI优先使用该方法:

vault write sys/ui/mounts/auth/oidc \
  description="Authelia OIDC Login" \
  default=true

2. 开启Vault UI自动重定向

修改Vault配置文件(vault.hcl),在ui配置段添加redirect_to_auth参数,开启后用户访问Vault UI会自动跳转到默认认证方法的登录页面:

ui = true
ui_config {
  redirect_to_auth = true
}

保存配置后重启Vault服务使设置生效。

3. (可选)屏蔽原生登录页面(反向代理方式)

如果需要完全隐藏Vault原生登录页面,可在前端反向代理(如Nginx)中添加重定向规则,直接将根路径请求导向OIDC登录端点:

server {
  listen 443 ssl;
  server_name vault.example.com;

  location / {
    return 302 https://vault.example.com/ui/vault/auth/oidc/login;
  }

  # 保留其他Vault相关路由配置
  location /ui {
    proxy_pass http://localhost:8200/ui;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }

  location /v1 {
    proxy_pass http://localhost:8200/v1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

内容的提问来源于stack exchange,提问作者Forged

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:45:08