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

如何在App Service部署的Verdaccio中集成AAD实现登录

Verdaccio 与 Active Directory 集成(App Service 容器部署场景)操作指南

1. 前置依赖校验(配置不生效最常见原因)

  • 确认已安装AD认证插件:官方镜像默认不带verdaccio-activedirectory插件,需自定义容器镜像,示例Dockerfile如下:
FROM verdaccio/verdaccio:latest
USER root
RUN npm install -g verdaccio-activedirectory
USER verdaccio
  • 确认App Service网络已打通AD域控:确保实例可访问AD的389(普通LDAP)或636(LDAPS)端口,无网络ACL、防火墙拦截。

2. 配置文件编写与挂载校验

  • 编写正确的config.yaml配置,AD认证段需放在其他认证插件(如默认htpasswd)之前,示例配置:
auth:
  activedirectory:
    url: "ldap://你的AD域控IP:389"
    baseDN: "DC=你的域,DC=com"
    # 用于查询AD用户的服务账号
    adminUserDN: "CN=服务账号,OU=Users,DC=你的域,DC=com"
    adminPassword: "服务账号密码"
    # 用户查询规则,默认按sAMAccountName匹配登录用户名
    searchFilter: "(sAMAccountName={{username}})"
    searchAttributes:
      - "dn"
      - "sAMAccountName"
      - "mail"
      - "memberOf"
  # 可保留默认htpasswd作为备用登录方式,注释则完全禁用本地账号
  htpasswd:
    file: ./htpasswd
  • 确认App Service挂载路径正确:容器内默认配置路径为/verdaccio/conf/config.yaml,挂载时需严格匹配该路径,同时确保文件权限为10001(verdaccio容器默认用户UID)可读。
  • 验证配置是否生效:进入App Service SSH终端,执行cat /verdaccio/conf/config.yaml,确认内容与你上传的配置一致,无格式错误。

3. 权限与日志排查

  • 配置包权限:在config.yaml的packages段配置AD用户/组的操作权限,示例:
packages:
  '@*/*':
    access: $authenticated
    # 填写AD中对应安全组名称,只有该组成员可发布包
    publish: npm-admin-group
    unpublish: npm-admin-group
  '**':
    access: $authenticated
    publish: npm-admin-group
  • 排查启动日志:在App Service日志流中查看容器启动日志,若出现以下报错可对应处理:
    • Cannot find module 'verdaccio-activedirectory':插件未正确安装,重新构建镜像
    • LDAP connection error:AD地址/端口错误、网络不通、服务账号密码错误
    • Configuration file not found:配置挂载路径错误、文件权限不足

4. LDAPS 特殊配置(若使用加密LDAP)

如果AD使用LDAPS协议,需将AD根证书挂载到容器/usr/local/share/ca-certificates目录,在启动命令中添加update-ca-certificates更新可信证书列表,避免连接时证书校验失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:57:02