OAuth 2.0 是允许应用服务器获取 HTTP 服务(如Facebook,GitHub 和 DigitalOcean)上用户帐户有限访问权限的授权框架。 它将用户身份验证委托给管理用户帐户的授权服务器(Authorization Server),并授权第三方应用服务器访问用户帐户。

  1. 应用服务器(Application, client)通过用户(User, resource owner)请求访问服务资源(Resource Server)的授权。
  2. 如果用户授权请求,应用服务器将收到授权许可(Authorization Grant)。
  3. 应用服务器通过提供自己的身份和授权许可来从授权服务器(Authorization Server)请求访问令牌(Access Token)
  4. 如果应用服务器通过身份验证并且授权许可有效,则授权服务器向应用+发出访问令牌,完成授权。
  5. 应用服务器从资源服务器(Resource Server)请求资源(Protected Resource),并呈现用于认证的访问令牌。
  6. 如果访问令牌有效,则资源服务器为应用服务器提供资源。

注: 授权服务器和资源服务器可以是同一台服务器。

应用服务器身份 Client ID 和 Client Secret

应用服务器注册后,将以 Client ID 和 Client Secret 的形式发出“客户端凭据(client credentials)”。 Client ID 是服务 API 用于标识应用服务器的公开字符串,并且还用于构建向用户呈现的授权 URL 。 Client Secret 用于请求访问用户帐户时, 对应用服务器进行身份验证,并且必须只对应用服务器和授权服务器可见 。

授权许可类型 Authorization Grant Type

获取授权许可中,授权类型取决于应用服务器请求授权的方法以及授权服务器支持的授权类型。

OAuth 2.0 定义了四种授权类型, 以适用不同场景:

  • 授权码模式(authorization code)
  • 简化模式(implicit)
  • 密码模式(resource owner password credentials)
  • 客户端模式(client credentials)

云子可信授权服务器使用的是授权码模式(authorization code)。

results matching ""

    No results matching ""