探索 Logto 管理 API 的全部潜力
在本文中,我们将重新强调 Logto 管理 API 的定义,解释它的工作原理,并展示典型场景,以提高你的工作效率并解锁更多用例。
作为基础设施服务,我们努力使使用我们的 Logto 管理 API 变得更加简单和快捷。我们最近更新了我们的指南和教程。在本文中,我们将重新强调 Logto 管理 API 的定义,解释它的工作原理,并展示典型场景,以提高你的工作效率并解锁更多用例。
什么是 Logto 管理 API
Logto 管理 API 是一组强大的预构建 API,使开发者能够完全控制其实现,以满足产品需求和技术堆栈。
它列在 API 资源列表中,不能被删除或修改。在 Logto 管理控制台中可以做的所有事情,通过 Logto 管理 API 也可以完成。
它的标识符格式为 https://[tenant-id].logto.app/api
它默认包含 all
权限。随着 Logto 的发展,我们将继续使权限更为精细。
通过 Logto 管理 API,你可以访问 Logto 的强大后端服务,这些服务具有极高的可扩展性并可在多种场景中使用。欲了解可用的 API,请访问 Logto API 参考。
使用管理 API 的典型场景
我们的开发人员使用管理 API 实现了许多附加功能。我们相信我们的 API 非常灵活,可以支持广泛的需求。以下是一些通过管理 API 可以实现而 Logto 管理控制台 无法实现的场景示例。
使用自定义 UI 实现用户资料
Logto 目前不提供预构建的用户资料 UI 解决方案。我们认识到用户资料与业务和产品属性密切相关。在我们努力找到最佳解决方案的同时,建议使用我们的 API 创建你自己的解决方案。例如,你可以利用我们的互动 API、资料 API 和验证码 API 来开发满足你需求的自定义解决方案。我们已准备了专门的页面 用户资料 提供教程和指南。
一个有趣的例子是,Logto Cloud 的用户资料功能是使用 Logto 管理 API 构建的。
使用自定义 UI 实现组织管理
如果你正在使用 组织 功能来构建你的多租户应用程序,那么你可能需要使用 Logto 管理 API 来完成如组织邀请和成员管理等任务。
类似地,Logto Cloud 的邀请和协作功能也是使用 Logto 管理 API 构建的。
为了进一步扩展,在你的 SaaS 产品中,有管理员和成员两个角色,Logto 管理 API 可以帮助你创建一个定制的管理员门户,以满足你的业务需求。查看 此处 获取更多详细信息。
高级用户搜索
Logto 管理控制台支持基本的搜索和过滤功能。如果你需要更高级的选项来根据业务需求定制你的用户管理服务,你可以使用 Logto 管理 API。它支持高级的搜索选项,例如:
- 模糊搜索
- 精确匹配
- 区分大小写
- 指定字段
查看我们的 高级用户搜索 教程和指南。
利用 Logto 的日志构建你自己的服务
Logto 的审计日志让你能够轻松监控用户活动和事件。它为各种用户管理和健康检查的业务场景提供了坚实的基础。
通过使用管理 API,你可以访问实时的审计日志数据。这允许你设计你自己的模式模型和仪表板,使用从 Logto 获取的日志数据。
迁移和导入用户到 Logto
使用管理 API 可以轻松帮助你导入用户数据,尤其是你想要向 Logto 进行 迁移 时。
在你准备好用户数据并设置好 密码散列 和 用户模式 后,设置管理 API 连接,我们将调用 创建用户 API 来导入用户数据。要了解更多关于迁移的信息,请查看这份 文档。
如何访问 Logto 管理 API
创建 M2M 应用
选择 M2M 应用类型并开始创建过程。创建后,你将被引导到一个模块,可以在这里分配机器对机器角色。
提供名称和描述后,你将看到一个模块,要求你分配角色。这个模块中包含所有 M2M 角色,带有 Logto 图标的角色意味着这些角色包括 Logto 管理 API 的权限。
分配 M2M 角色包括对你的 M2M 应用的 Logto 管理 API 权限。
为什么使用机器对机器通信并分配机器对机器角色?
为什么 Logto 允许 M2M (机器对机器)通信调用 Logto 管理 API 而不是使用 API 密钥?
Logto 处理客户身份管理,并严格遵循 OAuth 2.0 和 OpenID Connect 等开放标准。M2M 令牌为具有特定范围的服务器到服务器交互提供了更好的安全性,相比于静态 API 密钥具有更高的安全性。与 API 密钥不同,API 密钥不会过期,一旦被泄露风险很高,而 M2M 令牌则具有定义的过期时间,从而限制了潜在滥用的窗口。
在 Logto 中,我们使用基于角色的访问控制 (RBAC) 来保护和管理对 Logto 管理 API 的访问。下图展示了它的工作原理。
权限、API 资源、角色和机器对机器应用的关系。
获取访问令牌
访问令牌请求的基础知识
M2M 应用向令牌端点发出 POST
请求,通过在 HTTP 请求实体主体中使用 application/x-www-form-urlencoded
格式添加以下参数来获取访问令牌:
- grant_type: 必须设置为
client_credentials
- resource: 你想要访问的资源指示符
- scope: 访问请求的范围
你还需要包含你的 M2M 凭据,以便令牌端点对你的 M2M 应用进行身份验证。这通过在 Authorization
头中使用 基本身份验证(Basic authentication)实现,用户名是应用 ID,密码是应用密钥。
你可以从 M2M 应用的详细信息页面找到应用 ID 和应用密钥:
一个 Logto 管理 API 访问令牌请求的示例如下:
获取 Logto 管理 API 的访问令牌
Logto 提供了一个内置的“Logto 管理 API”资源,这是一个只读资源,包含 all
权限来访问 Logto 管理 API,你可以在你的 API 资源列表中看到它。
资源 API 指示符的格式为 https://{YOUR_TENANT_ID}.logto.app/api
,这是你在访问令牌请求主体中使用的资源值。
在访问 Logto 管理 API 之前,请确保你的 M2M 应用已被分配了包含 all
权限的 M2M 角色,这个内置的“Logto 管理 API”资源就是其中之一。
现在,将所有信息组合在一起并发送请求:
令牌响应
成功的响应主体将如下所示:
使用访问令牌访问 Logto 管理 API
你可能注意到令牌响应中有一个 token_type
字段,它固定为 Bearer
。因此你应该在 HTTP 请求的 Authorization
头中使用 Bearer 格式(Bearer YOUR_TOKEN
)放置访问令牌。
现在你可以通过请求 Logto 管理 API 端点 https://[your-tenant-id].logto.app/api
来访问 Logto 管理 API,获取 Logto 中的所有应用程序。
相关资源
以下是一些相关资源,深入探讨了我们之前关于使用 Logto 管理 API 的见解和策略。这些材料涵盖了各种方面,包括最佳实践、实施提示和使用案例,帮助你充分利用 Logto 管理 API 进行项目开发。