我试图在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: me@example.com
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/)总是显示"Groups: None",而且我无法获得超级用户权限。
我的配置中有明显的遗漏吗?
发布于 2022-06-27 12:55:16
我也碰到了这个问题。不确定这是否仍然与你相关,但将解决方案留给其他可能会遇到这一问题的人。
结果表明,组同步要求组必须存在于后端。默认情况下,netbox在没有组的情况下部署。
解决方案是使用部署时创建的管理帐户登录,然后转到admin > groups,然后手动创建希望同步的指定组。
在您的例子中,您应该创建一个名为netbox-admin的组。没有必要将任何权利分配给这些团体,但它们必须存在,即使它们什么也不做。
我还注意到,与修复后已经创建的用户登录并没有分配组成员身份或超级用户或人员状态。在分配正确的组和状态之前,我必须先删除我的用户,然后再通过远程auth登录。它确实在文档中说,当远程登录不包含相同的组(S)时,它将废弃超级用户状态,但显然它不会以另一种方式同步。
https://serverfault.com/questions/1081929
复制相似问题