OAuth 2.0 概览

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

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

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

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

作为应用开发者

您可以为自己和其他人在 Roblox 社区中创建应用程序。OAuth 2.0 定义了与权限过程中涉及的角色、角色之间的协议以及您需要跟随的安全和兼容应用程序开发工具。

角色

Open Cloud OAuth 2.0 协议有以下角色。 它的帮助是了解它们在授权流程中如何相互作用之前了解特定角色。

  • 资源所有者 :一个能够向资源持有者授予访问保护资源的实体。例如,允许第三方应用程序通过 Open Cloud Web 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 连接支持

Roblox 使用 OpenID Connect (OIDC) 作为身份层在 OAuth 2.0 协议上的身份层,用于保护敏感帐户信息。 OIDC 允许应用程序验证用户身份并获取其基本公开个人信息,例如用户ID、用户名、显示名称和 profil 链接。

注册和实现

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

  1. 注册 您的应用程序,使您可以获得一个客户端ID并秘密注册您的应用程序以便在Roblox上注册您的应用程序并向您的端口发出调用。

  2. 实现授权代码流程。 对于您需要调用的 OAuth 2.0 端点的完整引用,请参阅身份认证引用。

  3. 通过评论过程获取更多用户权限。