OAuth 2.0 概览

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

您可以构建或授权使用开放云 API 访问 Roblox 资源的应用程序。开放云使用 OAuth 2.0 为这些应用提供身份验证。

作为体验创建者或群组所有者

您可以安全地使用其他人创建的工具来提高创建效率。OAuth 2.0 授权层允许您向第三方应用授予权限以访问您或您的群组的体验,而不需要提供您的凭据和个人信息。您选择特定 Roblox 资源的访问权限,Roblox 使用 OAuth 2.0 框架为您处理授权过程。

作为应用开发者

您可以为自己和 Roblox 社区的其他人创建应用程序。OAuth 2.0 定义了参与授权过程的角色、角色之间的协议以及需要遵循的授权流程,用于开发安全且兼容的应用程序。

角色

开放云 OAuth 2.0 协议有以下角色。了解权限流程中不同角色之间如何互动之前,理解特定角色有用。

  • 资源所有者 :一个能够提供保护资源的访问的实体。例如,允许第三方应用程序通过开放云网络 API 访问 Roblox 资源的创建者。

  • 资源服务器 :一个 Roblox 服务,用于托管受保护的资源并回应来自资源所有者的请求。

  • 客户端 :一个应用程序,可以代表资源所有者访问受保护的资源(经过所有者的授权)。

  • 授权服务器 :Roblox 服务器,用于验证资源所有者的身份并向客户端发出访问代币。

授予类型

授权流或授权类型是角色在授权过程中执行的行动步骤。Roblox 支持 OAuth 2.0 授权代码流和其 Proof Key for Code Exchange (PKCE) 扩展,具有不同的实现要求对于能够或无法存储客户秘密的应用程序。

授权代码流程

通过授权代码流程,客户端交换授权代码换取访问代币和刷新代币来完成以下步骤的授权过程:

  1. 客户端向 Roblox 授权服务器发送授权请求。

  2. 授权服务器验证资源所有者的身份。

  3. 授权服务器从资源所有者那里收到特定 Roblox 资源的访问权限。

  4. 授权服务器将资源所有者重定向到客户端以授权代验证码返回。

  5. 客户端使用代币端点上的授权代码请求访问代币。

  6. 客户端收到包含访问代币、ID 代币和刷新代币的响应端点的响应,其中包含一个代币端点。

  7. 客户端在获取访问代币后检索允许的资源。

下面的图描述了授权代码流中角色之间的互动,您将在以下部分阅读:

使用 PKCE 的授权代码流程

权限代码流的 PKCE扩展 帮助减少泄露权限代码的风险,并防止跨站请求伪造(CSRF),一种欺骗用户提交不意欲的网站请求的攻击。该流程完成授权过程的步骤如下:

  1. 客户端为每个授权请求生成一个独特且加密随机的键称为代码验证器

  2. 客户端在代码验证器上运行 SHA-256 哈希算法,生成一个 代码挑战

  3. 如果客户端:

    • 是一个 公共客户端,而不是使用客户端秘密,它在授权请求中传递客户端ID和代码挑战。

    • 是一个 机密客户端 ,它将代码挑战与客户ID和秘密一起添加到请求中

  4. 客户端向 Roblox 授权服务器发送授权请求。

  5. 授权服务器验证资源所有者的身份。

  6. 授权服务器从资源所有者那里收到特定 Roblox 资源的访问权限。

  7. 授权服务器将资源所有者重定向到客户端以授权代验证码返回。

  8. 客户端包含授权代码和原始代码验证器在 代币端点 的代币请求中。

  9. 授权服务器验证授权代码和相关代码验证器。

  10. 客户端收到包含访问代币、ID 代币和刷新代币的响应端点的响应,其中包含一个代币端点。

  11. 客户端在获取访问代币后检索允许的资源。

OpenID Connect 协助持

Roblox 使用 OpenID Connect (OIDC) 作为身份层,位于 OAuth 2.0 协议之上进行身份验证,保护敏感帐户信息。OIDC允许应用程序验证用户身份并获得其基本公共资料信息,例如用户ID、用户名、显示名称和资料链接。

注册和实现

要实现使用权限代码流的网站或移动应用程序,您需要:

  1. 注册 您的应用程序与 Roblox。这可以让你获得客户端 ID 和秘密,用于注册你的应用程序与 Roblox 并向你的终端发出调用。

  2. 实现 授权代码流。要了解您需要调用的 OAuth 2.0 端点的完整参考,请参阅 身份验证 参考。

  3. 通过审核过程获得更多用户配额。