配置 Netbox 以通过 REMOTE_AUTH 获取授权信息?

配置 Netbox 以通过 REMOTE_AUTH 获取授权信息?

我正在尝试在 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_HEADERREMOTE_AUTH_GROUP_SEPARATOR但查看帐户配置文件(https://netbox.../user/profile/)始终显示“组:无”,并且我无法获得超级用户权限。

我的配置中是否明显缺少了某些东西?

答案1

我刚刚也遇到了这个问题。不确定这对你是否仍然有用,但这里留下解决方案,供其他可能遇到此问题的人参考。

事实证明,群组同步需要群组存在于后端默认情况下,netbox 部署时使用没有团体

解决方案是使用部署时创建的管理员帐户登录,然后转到管理员>组并手动创建您想要同步的命名组。

就您而言,您应该创建一个名为 的组netbox-admin。无需为该组分配任何权限,但它们必须存在,即使它们什么也不做。

我还注意到,修复此问题后,使用已创建的用户登录不会分配组成员身份或超级用户或员工身份。我必须先删除我的用户,然后通过远程身份验证再次登录,然后才能分配正确的组和身份。文档中确实说,当进行不包含相同组的远程登录时,它将取消超级用户身份,但显然它不会以其他方式同步。

相关内容