我正在尝试在 Netbox 前面设置一个 oauth2 代理(以针对本地 Keycloak 实例进行身份验证)。我在 中有以下配置/etc/netbox/config/extra.py
:
REMOTE_AUTH_ENABLED=True
REMOTE_AUTH_AUTO_CREATE_USER=True
REMOTE_AUTH_HEADER='HTTP_X_FORWARDED_PREFERRED_USERNAME'
REMOTE_AUTH_GROUP_HEADER='HTTP_X_FORWARDED_GROUPS'
REMOTE_AUTH_GROUP_SYNC_ENABLED=True
REMOTE_AUTH_SUPERUSER_GROUPS=['netbox-admin']
REMOTE_AUTH_GROUP_SEPARATOR=','
身份验证工作正常;我可以输入我的凭证,Netbox 会在帐户菜单中显示我的电子邮件地址。
请求的X-Forwarded-*
标头如下:
X-Forwarded-Preferred-Username: [email protected]
X-Forwarded-Groups: default-roles-example,offline_access,netbox-admin,uma_authorization,role:default-roles-example,role:offline_access,role:netbox-admin,role:uma_authorization,role:account:manage-account,role:account:manage-account-links,role:account:view-profile
我已经验证这些标头存在于对 Netbox 的请求中。
我已尝试进行适当设置REMOTE_AUTH_GROUP_HEADER
,REMOTE_AUTH_GROUP_SEPARATOR
但查看帐户配置文件(https://netbox.../user/profile/
)始终显示“组:无”,并且我无法获得超级用户权限。
我的配置中是否明显缺少了某些东西?
答案1
我刚刚也遇到了这个问题。不确定这对你是否仍然有用,但这里留下解决方案,供其他可能遇到此问题的人参考。
事实证明,群组同步需要群组存在于后端默认情况下,netbox 部署时使用没有团体。
解决方案是使用部署时创建的管理员帐户登录,然后转到管理员>组并手动创建您想要同步的命名组。
就您而言,您应该创建一个名为 的组netbox-admin
。无需为该组分配任何权限,但它们必须存在,即使它们什么也不做。
我还注意到,修复此问题后,使用已创建的用户登录不会分配组成员身份或超级用户或员工身份。我必须先删除我的用户,然后通过远程身份验证再次登录,然后才能分配正确的组和身份。文档中确实说,当进行不包含相同组的远程登录时,它将取消超级用户身份,但显然它不会以其他方式同步。