跳到主要内容

认证 (Authentication) 与授权 (Authorization)

认证 (Authentication)授权 (Authorization) 之间的区别可以总结如下:

  • 认证 (Authentication) 回答了“你拥有哪个身份?”的问题
  • 授权 (Authorization) 回答了“你可以做什么?”的问题

有关完整的客户身份和访问管理 (CIAM) 介绍,你可以参考我们的 CIAM 系列:

认证 (Authentication)

Logto 支持多种交互式和非交互式的认证 (Authentication) 方法,例如:

  • 登录体验:终端用户的认证 (Authentication) 过程。
  • 机器对机器 (M2M) 认证 (Authentication):服务或应用程序的认证 (Authentication) 过程。

认证 (Authentication) 的最终目标非常简单:验证并获取实体的唯一标识符(在 Logto 中,是用户或应用程序)。

授权 (Authorization)

在 Logto 中,授权 (Authorization) 是通过基于角色的访问控制 (RBAC) 完成的。它让你可以完全控制用户或 M2M 应用程序对以下内容的访问:

  • API 资源:由绝对 URI 表示的全局实体。
  • 组织 (Organizations):用户或应用程序的组。
  • 组织 API 资源:属于组织的 API 资源。

要了解更多关于这些概念的信息,你可以参考以下资源:

以下是这些概念之间关系的可视化表示:

简而言之,授权 (Authorization) 是关于定义规则,以确定“Identities”组中的实体可以访问“Resources”组中的哪些实体。

常见问题解答

我需要指定哪些用户可以登录到应用程序

由于单点登录 (SSO) 的特性,Logto 目前不支持将应用程序用作资源。相反,你可以定义 API 资源和权限来控制对资源的访问。

我需要我的用户登录到一个组织

如前所述,认证 (Authentication) 涉及验证实体的身份,而访问控制是通过授权 (Authorization) 处理的。因此:

  • 确定用户属于哪个组织是一个授权 (Authorization) 问题。
  • 登录过程是一个认证 (Authentication) 问题。

这意味着在 Logto 中没有“登录到组织”的概念。一旦用户被认证 (Authentication),他们可以根据定义的权限被授权 (Authorization) 访问所有资源(包括组织资源)。

这种模型高效且清晰,因为它将认证 (Authentication) 和授权 (Authorization) 的关注点分开。所有现代 SaaS 应用程序,如 GitHub 和 Notion,都遵循这种模型。

然而,在某些情况下,你需要在用户来源和组织之间建立 1-1 映射。在这种情况下,企业单点登录 (SSO)组织即时 (JIT) 供应 可能会有所帮助。

我们的客户需要为他们的登录页面定制品牌

请查看 应用程序特定品牌组织特定品牌 以获取相关配置。