Skip to content

认证与权限

基于对象的权限

NetBox 拥有一个非常强大的权限系统,远远超出了其底层 Django 框架的基于模型的权限。在 NetBox 中分配权限涉及几个维度:

  • 权限适用的对象类型
  • 被授予权限的用户和/或群组
  • 权限允许的操作(例如查看、添加、更改等)
  • 任何限制条件,限制权限的应用到特定子集的对象

限制条件的实施是 NetBox 管理员能够分配每个对象权限的关键:用户可以被限制为只查看或与基于对象属性的任意子集互动。例如,你可能限制某个用户只能查看特定 VRF 中的前缀或 IP 地址。或者你可能限制一个群组只能修改特定区域内的设备。

在创建权限时,权限约束以 JSON 格式声明,并且与 Django ORM 查询非常相似。例如,这里有一个匹配 VLAN ID 在 100 到 199 之间的保留 VLAN 的约束:

[
  {
    "vid__gte": 100,
    "vid__lt": 200
  },
  {
    "status": "reserved"
  }
]

有关权限约束的更多信息,请查看权限文档

LDAP 认证

NetBox 包含一个内置的认证后端,用于对远程 LDAP 服务器上的用户进行认证。安装文档提供了有关此功能的更多详细信息。

单点登录 (SSO)

NetBox 与开源 python-social-auth 库集成,提供了众多选项用于单点登录 (SSO) 认证。这些包括:

  • Cognito
  • GitHub 和 GitHub Enterprise
  • GitLab
  • Google
  • Hashicorp Vault
  • Keycloak
  • Microsoft Azure AD
  • Microsoft Graph
  • Okta
  • OIDC

...等等。也可以根据需要使用 python-social-auth 的基本 OAuth、OpenID 和 SAML 类来构建自己的自定义后端。您可以在 NetBox 的认证文档中找到一些配置 SSO 的示例。