授权类型
授权类型 指示客户机用于从 Verify检索标识令牌和访问令牌的授权机制。 您可以从 授权代码, 隐式, 授权代码和隐式, 设备流, 资源所有者凭证, JWT, 基于上下文的授权, 刷新令牌和 令牌交换中进行选择。
请参阅下表以了解支持的授权类型的比较,并确定要为应用程序设置的授权类型。
| 特征 | 授权代码 | 隐式 | 授权代码和隐式 |
|---|---|---|---|
| 描述 | 授权端点 需要进行客户机认证,方法是使用客户机标识和密钥来从令牌端点 这是最常用的流程。 |
授权端点 它不使用授权代码或令牌端点 |
它允许客户机前端和后端相互独立地接收令牌。 客户机从授权端点 |
| 用例 | 用于此类客户机:它们可以安全地维护客户机密钥(例如 Web 应用程序)和本机移动应用程序。 它旨在对用户和客户机进行认证。 |
用于此类客户机:它们无法保存客户机密钥,例如,基于浏览器或基于 JavaScript 的应用程序。 旨在认证用户。 |
用于此类客户机:
|
| 响应类型值 |
|
|
|
| 从授权端点返回所有令牌。 | 否 | 是 | 否 |
| 从令牌端点返回所有令牌。 | 是 | 否 | 否 |
| 不向用户代理显示令牌。 | 是 | 否 | 否 |
| 可以认证客户机应用程序。 | 是 | 否 | 是 |
| 生成刷新令牌。 | 是 | 否 | 是 |
| 来回通信 | 否 | 是 | 否 |
| 多数通信服务器到服务器 | 是 | 否 | 可变 |
| 登录提示 (login_hint) | 是 此值可以是作为字符串(例如,
john@ibm.com 或 JSON)的用户名,例如,. 使用 JSON 值时,域表示身份源域。 |
是 此值可以是作为字符串(例如,
john@ibm.com 或 JSON)的用户名,例如,. 使用 JSON 值时,域表示身份源域。 |
是 此值可以是作为字符串(例如,
john@ibm.com 或 JSON)的用户名,例如,. 使用 JSON 值时,域表示身份源域。 |
| 最长认证年限 (max_age) | 此值是自上次用户活动认证以后允许的耗用时间(以秒为单位)。 此属性仅适用于云目录登录会话。 | 此值是自上次用户活动认证以后允许的耗用时间(以秒为单位)。 此属性仅适用于云目录登录会话。 | 此值是自上次用户活动认证以后允许的耗用时间(以秒为单位)。 此属性仅适用于云目录登录会话。 |
| 工作流程 |
|
|
|
| 特征 | 设备流 | 资源所有者密码凭证 | JWT |
|---|---|---|---|
| 描述 | 它允许使用 QR 码或发送到 URL 的用户代码对客户机进行授权。 | 需要进行客户机认证和用户认证,方法是使用客户机标识、客户机密钥、用户名和密码从令牌端点/令牌来检索访问令牌和标识令牌。 用户名和密码将根据 Cloud Directory 进行验证。 | 在 RFC7523 中进行定义。 允许客户机提供签名、加密或签名且加密的 JWT 以交换授权。 JWT 由授权服务器进行验证,JWT 中的身份用作授权的主题。 |
| 用例 | 用于此类客户机:
|
仅当没有其他流程可用时,才可以启用此授权类型。 可将其用于:
|
授权服务器 (Verify) 与发出 JWT 的实体之间存在已建立的信任关系。 客户机从发出实体的 JWT 获取 JWT,并将其提供给授权服务器以交换授权。 发出实体的 JWT 可能具有其自己的需求,必须在发出 JWT 前满足这些需求(例如,替代认证和授权检查)。 |
| 响应类型值 | 不适用 | 不适用 | 不适用 |
| 从授权端点返回所有令牌。 | 否 | 否 | 否 |
| 从令牌端点返回所有令牌。 | 是 | 是 | 是 |
| 不向用户代理显示令牌。 | 是 | 是 | 是 |
| 可以认证客户机应用程序。 | 是 | 是 | 是 |
| 生成刷新令牌。 | 是 | 是 | 是 |
| 来回通信 | |||
| 多数通信服务器到服务器 | |||
| 登录提示 (login_hint) | 否 | 否 | 否 |
| 最长认证年限 (max_age) | 不适用 | ||
| 工作流程 |
|
|
|
| 特征 | 基于上下文的授权 | 刷新令牌 | 令牌交换 |
|---|---|---|---|
| 描述 | API 驱动的流,在其中执行其他认证和授权检查。 在向客户机发出授权之前,可能需要多因子认证。 | 通过使用客户机标识,客户机密钥和刷新令牌从令牌端点/令牌检索一组新的访问令牌,标识令牌和刷新令牌,需要客户机和用户认证。 刷新令牌必须属于同一客户机标识。 在此流期间,不会刷新与令牌关联的属性值。 | 在 RFC8693中定义。 允许客户机提供要与另一个令牌交换的令牌。 |
| 用例 |
|
使用此授权类型以获取具有更新的令牌生存期的一组全新访问令牌。 这允许访问令牌生存期保持较短,但不会要求用户再次登录以获取新的访问令牌。 |
|
| 响应类型值 | 不适用 | 不适用 | 不适用 |
| 从授权端点返回所有令牌。 | 否 | 否 | 否 |
| 从令牌端点返回所有令牌。 | 是 | 是 | 是 |
| 不向用户代理显示令牌。 | 是 | 是 | 是 |
| 可以认证客户机应用程序。 | 是 | 是 | 是 |
| 生成刷新令牌。 | 是 | 是 | 是 |
| 来回通信 | 是 | ||
| 多数通信服务器到服务器 | 是 | ||
| 登录提示 (login_hint) | 否 | 否 | 否 |
| 最长认证年限 (max_age) | 不适用 | 否 | |
| 工作流程 |
注意:
|
|
|