跳到主要内容

OIDC / OAuth 应用的权限管理

第三方应用(不属于你的服务)作为身份提供商 (IdP) 集成到 Logto,用于认证 (Authentication) 用户。这些应用通常来自外部服务提供商,需要谨慎管理权限,以保护用户数据。

Logto 让你能够控制授予第三方应用的具体权限。这包括管理用户资料、API 资源和组织 (Organization) 权限。与第一方应用不同,第三方应用请求未授权的权限 (Scopes) 时将被拒绝访问。

通过启用特定权限 (Scopes),你可以决定第三方应用可以访问哪些用户信息。用户将在用户授权页面 (Consent screen) 上查看并批准这些权限后,才会授予访问权限。

管理你的 OIDC 第三方应用的权限​

前往你的 OIDC 第三方应用的 控制台 > 应用程序 > 应用详情页,切换到 权限 标签页,并点击 添加权限 按钮来管理第三方应用的权限。

第三方应用请求时,基础用户数据始终是必需的。此外,Logto 支持分配组织 (Organization) 资源,非常适合 B2B 服务场景。

授予用户数据权限​

分配用户级别的权限,包括用户资料权限(如邮箱、姓名和头像)和API 资源权限(如对特定资源的读写访问)。

所请求资源的名称(如个人用户数据、API 名称)和具体权限描述(如你的邮箱地址)会在用户授权页面 (Consent screen) 上展示,供用户审核。

用户点击 授权 按钮,即表示同意将指定权限授予第三方应用。

grant permissions of user data

授予组织 (Organization) 数据权限​

分配组织 (Organization) 级别的权限,包括组织 (Organization) 权限和API 资源权限。Logto 支持将 API 资源分配给特定组织角色 (Role)。

在用户授权页面 (Consent screen) 上,组织 (Organization) 数据会与用户数据分开展示。在授权流程中,用户必须选择一个具体的组织 (Organization) 进行授权。用户可以在确认前切换组织。第三方应用仅能访问所选组织的数据及相关权限。

grant permissions of organization data

权限类型​

用户权限(用户资料权限 Scopes)​

这些权限是 OIDC 标准和 Logto 的基础用户资料权限 (Scopes),用于访问用户声明 (Claims)。用户声明 (Claims) 会在 ID 令牌 (ID token) 和 userinfo 端点中返回。

  • profile:OIDC 标准权限 (Scope),用于访问用户名和头像。
  • email:OIDC 标准权限 (Scope),用于访问用户邮箱。
  • phone:OIDC 标准权限 (Scope),用于访问用户手机号。
  • custom_data:Logto 用户资料权限 (Scope),用于访问用户自定义数据。
  • identity:Logto 用户资料权限 (Scope),用于访问用户关联的社交身份信息。
  • role:Logto 用户资料权限 (Scope),用于访问用户角色 (Role)信息。
  • urn:logto:scope:organizations:Logto 用户组织 (Organization) 权限 (Scope),用于访问用户组织 (Organization) 信息。如果启用并被第三方应用请求,用户授权页面 (Consent screen) 上会显示组织选择器,允许用户审核并选择要授权的组织。详见组织 (Organizations)。
  • urn:logto:scope:organization_roles:Logto 用户组织 (Organization) 权限 (Scope),用于访问用户组织角色 (Role) 信息。
注意:

在授权 (Authorization) 请求中请求未启用的用户资料权限 (Scope) 会导致错误。

API 资源权限(API 资源权限 Scopes)​

Logto 为 API 资源提供基于角色的访问控制 (RBAC)。API 资源是你的服务所拥有并由 Logto 保护的资源。你可以为第三方应用分配自定义 API 权限 (Scopes) 以访问你的 API 资源。详情请参阅授权 (Authorization)。

你可以在 控制台 > API 资源 下创建和管理你的 API 资源权限 (Scopes)。

注意:

未为第三方应用启用的 API 资源权限 (Scopes) 在发送授权 (Authorization) 请求时会被忽略。它不会在用户授权页面 (Consent screen) 上展示,也不会被 Logto 授予。

组织 (Organization) 权限(组织权限 Scopes)​

组织 (Organization) 权限 是专为 Logto 组织 (Organizations) 定义的权限 (Scopes),用于访问组织信息和资源。

备注:

要使用 Logto 组织 (Organization) 权限,需先启用 urn:logto:scope:organizations 用户权限 (Scope)。否则,在发送授权 (Authorization) 请求时,组织权限 (Scopes) 会被忽略。

你可以在组织模板设置页面自定义你的组织权限 (Scopes)。详见组织模板。

注意:

未为第三方应用启用的组织权限 (Scopes) 在发送授权 (Authorization) 请求时会被忽略。它不会在用户授权页面 (Consent screen) 上展示,也不会被 Logto 授予。

默认 OIDC 权限​

核心 OIDC 权限会自动为你的应用配置。这些权限 (Scopes) 是 OIDC 认证 (Authentication) 所必需的,并且不会在用户授权页面 (Consent screen) 上展示。如果不需要 OIDC 认证 (Authentication),OAuth 应用可以选择不请求这些权限。

  1. openid:OIDC 认证 (Authentication) 必需(纯 OAuth 可选)。授予 ID 令牌 (ID token) 和访问 userinfo_endpoint。

  2. offline_access:可选。用于获取刷新令牌 (Refresh token),以实现长期访问或后台任务。