基于角色的访问控制

控制谁可以查看您的文档

以 Markdown 格式查看
团队版和企业版功能

基于密码的 RBAC 在团队版和企业版计划中可用。基于 JWT 和 OAuth 的 RBAC 需要企业版计划

RBAC 根据用户角色控制对页面、部分和其他导航项目的访问。它与密码保护JWTOAuth 身份验证配合使用。

RBAC 对于合作伙伴文档、测试版功能、分层访问和内部内容非常有用。在使用 JWT 或 OAuth 身份验证时,您可以将其与 API 密钥注入结合使用。配置 RBAC 后,Ask Fern 会自动遵守这些权限。默认情况下,受限页面对未授权用户完全隐藏——如果您希望它们可见但被锁定,请在设置期间告知 Fern。

设置

RBAC 在 docs.yml 中配置,并通过 Fern CLI 管理。如果您使用向导界面设置网站,您需要直接使用 Fern 配置文件而不是通过 Fern Dashboard。

要启用 RBAC,首先设置身份验证方法——密码保护JWTOAuth——然后在 docs.yml 中定义您的角色:

docs.yml
1roles:
2 - everyone # 每个用户都会被赋予这个角色
3 - partners
4 - beta-users
5 - admins

每个用户都会自动获得 everyone 角色,包括未经身份验证的访问者。如果用户缺乏所需角色或未经身份验证,Fern 会将他们重定向到您的登录页面。您可以定义的角色数量没有限制,除非您使用密码保护,它最多支持三个角色。

限制内容

配置 RBAC 后,在导航中使用 viewers,在页面中使用 <If /> 组件来控制每个角色可以看到的内容。

在导航中

您可以为以下导航项目分配 viewersproductsversionstabssectionspagesapi referenceschangelogs

如果您不指定查看者,内容将对任何经过身份验证的用户可见。要使内容公开访问,请明确将查看者设置为 everyone

docs.yml
1navigation:
2 - tab: Home
3 layout:
4 - page: Welcome # 此页面是公开的
5 path: pages/welcome.mdx
6 viewers:
7 - everyone
8 - tab: Documentation
9 layout:
10 - page: Overview # 此页面对所有已登录用户可见
11 path: pages/overview.mdx
12 - section: Beta Release # 此部分对 beta-users 和 admins 可见
13 viewers:
14 - beta-users
15 - admins
16 contents:
17 ...

查看权限是继承的。例如,如果某个部分只能由 admins 查看,那么它的所有页面和嵌套部分也只能由管理员查看。

在 MDX 页面中

使用 <If /> 组件根据用户角色有条件地渲染内容。您可以指定一个或多个角色。内容对具有任何指定角色的用户可见:

1<If roles={["partners", "admins"]}>
2 <Callout>
3 此内容对合作伙伴和管理员都可见。
4 </Callout>
5</If>

您还可以将 rolesproductsversions 属性结合使用。