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

如何配置ShinyProxy.yml的LDAP实现按组过滤应用访问权限?

解决ShinyProxy LDAP组权限过滤失效问题

1. 完善LDAP组关联配置

当前LDAP配置缺少用户与组的关联映射逻辑,导致ShinyProxy无法识别用户所属组,进而使权限规则失效。需补充以下关键配置项:

  • 补全group-search-base和user-search-base的完整DN,避免搜索范围错误
  • 添加group-role-attribute指定组的标识属性(通常为cn)
  • 添加user-attribute指定用户对象中关联组的字段(如memberOf)

调整后的LDAP配置示例:

ldap:
    url: ldap://ourIP:389/dc=ourdomain,dc=com
    manager-dn: cn=admin,dc=ourdomain,dc=com
    manager-password: ++++++++
    group-search-base: ou=Groups,dc=ourdomain,dc=com
    group-search-filter: (|(cn=admingroup)(cn=nonadmingroup))
    user-search-base: ou=People,dc=ourdomain,dc=com
    user-search-filter: uid={0}
    group-role-attribute: cn
    user-attribute: memberOf

2. 配置全局管理员组

在配置文件根层级添加admin-groups,指定拥有管理员权限的LDAP组:

admin-groups:
  - admingroup

3. 为应用配置访问控制组

在每个apps条目下添加access-groups,限制仅指定组的用户可访问对应应用:

apps:
  - name: admin-only-app
    display-name: 管理员专属应用
    docker-cmd: ["R", "-e", "shiny::runApp('/root/admin-app')"]
    docker-image: shiny-admin-image
    access-groups:
      - admingroup
  - name: regular-app
    display-name: 普通用户应用
    docker-cmd: ["R", "-e", "shiny::runApp('/root/regular-app')"]
    docker-image: shiny-regular-image
    access-groups:
      - nonadmingroup
      - admingroup

4. 验证LDAP配置有效性

  • 使用LDAP客户端测试组搜索过滤规则,确保能正确匹配目标组:
    ldapsearch -x -H ldap://ourIP:389 -b ou=Groups,dc=ourdomain,dc=com "(|(cn=admingroup)(cn=nonadmingroup))"
    
  • 确认用户对象的memberOf属性包含对应组的完整DN,例如cn=admingroup,ou=Groups,dc=ourdomain,dc=com

5. 重启ShinyProxy服务

修改配置后,重启ShinyProxy使新配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:05:25