授权服务器和访问令牌
授权服务器作为OAuth2.0授权框架中的一个中央组件执行多项重要功能。
OAuth2.0授权服务器
授权服务器主要负责创建和签名访问令牌。这些令牌包含身份和授权信息、使客户端应用程序能够有选择地访问受保护的资源。这些服务器通常彼此隔离、可通过多种不同的方式实施、包括作为独立的专用服务器或作为大型身份和访问管理产品的一部分。
有时、授权服务器可能会使用不同的术语、尤其是当OAuth2.0功能打包在更大型的身份和访问管理产品或解决方案中时。例如,术语*身份提供程序(IDP)*经常与*authorization server*互换使用。 |
管理
除了颁发访问令牌之外、授权服务器还通常通过Web用户界面提供相关管理服务。例如、您可以定义和管理:
-
用户和用户身份验证
-
范围
-
通过租户和领域实现管理隔离
-
策略实施
-
与各种外部服务的连接
-
支持其他身份协议(例如SAML)
ONTAP与符合OAuth2.0标准的授权服务器兼容。
定义到ONTAP
您需要为ONTAP定义一个或多个授权服务器。ONTAP可以与每台服务器安全地进行通信、以验证令牌并执行其他相关任务来支持客户端应用程序。
下面介绍了ONTAP配置的主要方面。另请参见 "OAuth2.0部署方案" 有关详细信息 …
验证访问令牌有两个选项。
-
本地验证
ONTAP可以根据发出访问令牌的授权服务器提供的信息在本地验证访问令牌。从授权服务器检索到的信息由ONTAP进行缓存、并定期刷新。
-
远程自省
您还可以使用远程自省在授权服务器上验证令牌。自省是一种协议、允许授权方向授权服务器查询有关访问令牌的信息。它为ONTAP提供了一种从访问令牌中提取某些元数据并对令牌进行验证的方法。出于性能原因、ONTAP会缓存某些数据。
ONTAP可能受防火墙保护。在这种情况下、您需要在配置中标识代理。
您可以使用任何管理界面(包括命令行界面、System Manager或REST API)为ONTAP定义授权服务器。例如、在命令行界面中、您可以使用命令 security oauth2 client create
。
一个ONTAP集群最多可以定义八个授权服务器。只要颁发者或颁发者/受众声明是唯一的、同一授权服务器就可以多次定义到同一ONTAP集群。例如、使用Keyloak时、使用不同领域时始终会出现这种情况。
ONTAP中支持的OAuth2.0功能
OAuth.14.1最初提供对ONTAP 9 2.0的支持、之后的版本将继续增强支持。下面介绍了ONTAP支持的OAuth2.0功能。
特定ONTAP版本引入的功能将延续到未来版本。 |
ONTAP 9.16.1.
OAuth.161扩展了标准ONTAP 9 2.0功能、为本机的Entra ID组提供了特定于Entra ID的扩展。这涉及到在访问令牌中使用GUID而不是名称。此外、此版本还增加了对外部角色映射的支持、可使用访问令牌中的"Roles"字段将本机身份提供程序角色映射到ONTAP角色。
ONTAP 9.14.1
从Oauth.14.1开始、使用的应用程序可通过以下标准ONTAP 9 2.0功能支持授权服务器:
-
具有标准字段(包括“iss”、“aud”和“exp”)的OAuth2.0,如和 "RFC 7519:JSON Web令牌(JWT)"中所述 "RFC6749:OAuth2.0授权框架"。这还包括支持通过访问令牌中的字段(例如"UPN"、"AppID"、"sub"、"USERNAME"或"PREDY_USERNAME")唯一标识用户。
-
使用"group"字段的组名称的ADFS供应商专用扩展。
-
具有"组"字段的组UUID的Azure供应商专用扩展。
-
ONTAP扩展、用于在OAuth2.0访问令牌范围内使用自包含和命名角色提供授权支持。这包括"范围"和"scp"字段以及范围内的组名称。
使用OAuth2.0访问令牌
授权服务器颁发的OAuth2.0访问令牌由ONTAP进行验证、用于针对REST API客户端请求做出基于角色的访问决策。
获取访问令牌
您需要从为使用REST API的ONTAP集群定义的授权服务器获取访问令牌。要获取令牌、您必须直接联系授权服务器。
ONTAP不会通过问题描述访问令牌、也不会将客户端的请求重定向到授权服务器。 |
如何请求令牌取决于多个因素、包括:
-
授权服务器及其配置选项
-
OAuth2.0授予类型
-
用于问题描述请求的客户端或软件工具
授予类型
_GRANT _是一个定义完善的过程、包括一组网络流、用于请求和接收OAuth2.0访问令牌。根据客户端、环境和安全要求、可以使用多种不同的授予类型。下表列出了最受欢迎的补助金类型。
授予类型 | Description |
---|---|
客户端凭据 |
一种仅使用凭据(如ID和共享密钥)的常见授予类型。假定客户端与资源所有者具有密切的信任关系。 |
Password |
如果资源所有者与客户端建立了信任关系、则可以使用资源所有者密码凭据授予类型。在将旧版HTTP客户端迁移到OAuth2.0时、此功能也很有用。 |
授权代码 |
这是机密客户端的理想授予类型、并且基于基于重定向的流。它可用于获取访问令牌和刷新令牌。 |
Jwt内容
OAuth2.0访问令牌格式为JWT.此内容由授权服务器根据您的配置创建。但是、令牌对客户端应用程序是不透明的。客户端没有理由检查令牌或了解其内容。
每个JWT"访问令牌都包含一组声明。这些声明描述了颁发者的特征以及基于授权服务器上管理定义的授权。下表介绍了根据标准登记的一些索赔。所有字符串都区分大小写。
款项申请 | 关键字 | Description |
---|---|---|
颁发者 |
ISS |
标识发出令牌的主体。款项申请处理是针对特定应用程序的。 |
主题 |
子 |
令牌的主题或用户。此名称的范围为全局唯一或本地唯一。 |
audience |
澳元 |
令牌的目标收件人。以字符串数组的形式实施。 |
到期日期 |
有效期 |
令牌过期后必须拒绝的时间。 |
请参见 "RFC 7519:JSON Web令牌" 有关详细信息 …