公共访问控制
默认情况下,公共 Space 没有任何身份验证方法,但您可以选择并设置几种:
- Space 范围密码;
None

默认行为设置为 None,意味着其公开可用。您可以更改控制项以限制读者访问。
任何拥有链接的人都可以阅读内容。
链接是安全可分享的,因为它们是通过加密方式生成且不可猜测的。
当您希望对特定读者限制内容访问时,请尝试以下任一选项。
访客账户

创建访客账户。任何拥有链接且拥有访客账户的人都可以阅读内容。访客账户在 Archbee 中不计入席位费用。
私人账户

如果您将用户的电子邮件地址或域添加到下方列表,则他们将能够使用邮箱地址/密码在您的 space 中验证/创建账户。
任何拥有链接且账户匹配的人都可以阅读内容。账户在 Archbee 中不计入席位费用。
具有活跃账户的用户列表将显示在“Active Accounts”窗口中。
Magic Link

如果您将用户的电子邮件地址或域添加到下方列表,则他们可以使用其电子邮箱地址验证访问您的 space。 任何拥有链接且账户匹配的用户都可以阅读内容。账户在 Archbee 中不计入席位费用。
私人链接
为特定用户组/团队生成私密链接。每个用户组/团队将拥有访问同一文档的专属链接,并且您可以通过这些链接管理访问控制。需要切断团队 1 的访问?删除与团队 1 关联的私密链接即可。

JWT 的工作方式
JWT - secret 访客认证

前往 Spaces 设置,并设置由您的服务器生成的 JWT secret 密钥
JSON WEB Key 访客认证

前往 Spaces 设置,并设置 JSON WEB Key Set URL。JSON Web Key Set (JWKS) URL 是服务器以 JSON 格式发布其公钥的 URL 端点。
JWKS URL 通常指向一个 JSON 文档,其中包含用于验证签名的加密密钥数组。
当 Archbee 接收到 JWT 时,可以从 JWKS URL 获取相应的公钥,并使用它验证 JWT 的签名,确保令牌未被篡改,且确实由受信任方签发。
JWKS URL 为客户端提供了一种标准化方式,以安全且可扩展的方式获取验证 JWT 签名所需的公钥。
这是一个示例 jwks.json 文件:
{
"keys": [{
"kid": "1234example=",
"alg": "RS256",
"kty": "RSA",
"e": "AQAB",
"n": "1234567890",
"use": "sig"
}, {
"kid": "5678example=",
"alg": "RS256",
"kty": "RSA",
"e": "AQAB",
"n": "987654321",
"use": "sig"
}]
}生成 JWT token
使用以下示例之一生成 JWT token。
您还需要将 URL 替换为文档站点的子域。
const sign = require('jsonwebtoken').sign;
exports.buildArchbeeLoginURL = function() {
// Optional user credentials that you want to send back to Archbee
const user = {
name: 'John',
email: 'Wick',
};
//create a signed token out of the user credentials with the
//secret you set in Archbee
const jwtToken = sign(user, '<archbeeJwtSecret>');
//yourdomain is set in the Custom Domain tab
const archbeeUrl = 'https://yourdomain.com';
//create the complete URL containing the signed token that you'll send back to Archbee
return `${archbeeUrl}?jwt=${jwtToken}&reload`;
};以下是使用 .NET 生成 JWT token 的示例:https://github.com/dragosbulugean/archbee-jwt-dotnet
using JWT;
using JWT.Algorithms;
using JWT.Serializers;
var payload = new Dictionary<string, object>
{
{ "name", "John Wick" },
{ "email", "[email protected]" }
};
const string secret = "TW9zaGVFcmV6UHJpdmF0ZUtleQ";
IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); // symmetric
IJsonSerializer serializer = new JsonNetSerializer();
IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
var jwtToken = encoder.Encode(payload, secret);
var archbeeLink = $"https://docs.yourcompany.com/?jwt={jwtToken}&reload";
Console.WriteLine($"JWT Token: {jwtToken}");
Console.WriteLine($"Archbee Link: {archbeeLink}");JWT token 在 Preview/Staging 中会被跳过
SAML - Security Assertion Markup Language

SAML 可以像团队集成一样为公共空间访问进行配置,请参阅SAML 集成以获取有关设置每个提供商的更详细步骤。
请注意,只需要 metadata URL 作为输入。此外,我们假定该空间已托管在自定义域上。
以这种方式,发布的空间链接将通过新的 SAML 应用路由;因此,仅在提供商应用中设置的成员可以访问公共门户。
如何将 SAML 设置为公共访问控制
前往 Azure Services -> Microsoft Entra ID -> "+Add" -> App registration
选择 "Accounts in this organizational directory only -Single tenant",并将来自 Archbee Space Settings -> Public Access Control -> SAML 的 CallBack URL 粘贴到 "Redirect URI" 中,如下图所示,选择 Web auth:

点击 "Register"
在 Azure 中新创建的应用上,前往 "Endpoints",并将 Azure App 中的 "Federation metadata document" 复制到 Archbee Space Settings -> Public Access Control -> SAML 中的 "Set SAML Metatada URL"

Archbee 中将生成唯一的 Entity ID,将 Azure App - Expose an API -> Add -> Fill Up the URL -> Save 中的 "api://PUBLISHED..." 链接复制过去

前往您的 Archbee 空间并重新发布
尝试访问链接并测试 SAML 身份验证
预览设置
此功能允许您在上线前,在受控的预览环境中模拟身份验证设置。
目的
启用此设置以将身份验证保护应用到预览环境,限制仅内部用户访问。这有助于验证您的身份验证配置、用户访问流程和保护设置而不会将更改暴露给公众。
如何启用
- 在 Space Settings 中导航到 Public Access Control 部分
- 选择任一身份验证方法
- 关闭预览设置
- 将更改发布到 Preview 并测试身份验证

多重身份验证
多重身份验证功能允许您为访问文档门户启用多种身份验证方式。这为用户提供了灵活性并提高了可访问性。
工作原理
您可以在 Public Access Control 设置中同时切换多个身份验证方法。访问您的门户的用户将能够使用任一启用的方法进行身份验证。
使用示例
如果您同时启用私有链接 和 密码, 用户可以通过以下任一方式访问您的文档:
- 您与他们共享的安全私有链接
- 或您设置的通用密码

只有符合任一启用的身份验证方式的用户才能获得访问权限。您可以随时通过 Public Access Control 设置中的切换开关禁用任一方法。