3.2. 添加令牌
您可以通过在 OAuth Applications 详情页面中选择 Tokens 选项卡来查看具有令牌来访问应用的用户列表。
您只能为您自己的用户创建 OAuth 2 Tokens,这意味着您只能从您自己的用户配置集配置或查看令牌。
配置身份验证令牌后,您可以选择与令牌关联的应用,以及令牌具有的访问级别。
流程
-
在导航面板中,选择
。 - 选择用户配置集的用户名来配置 OAuth 2 令牌。
选择 Tokens 选项卡。
当没有令牌时,Tokens 屏幕会提示您添加它们。
- 点 打开 Create Token 窗口。
输入以下详情:
- Application
输入您要将令牌与之关联的应用程序的名称。或者,您可以通过单击 进行搜索。这会打开一个单独的窗口,供您从可用选项中选择。如果列表太长,请从过滤器列表中选择 Name 以根据名称过滤。
注意要创建没有链接到任何应用程序的个人访问令牌(PAT),请将 Application 字段留空。
- 描述
- (可选)为您的令牌提供简短描述。
- 影响范围
(必需)指定此令牌具有的访问级别。OAuth 2 令牌的范围可以设置为以下之一:
- Write: 允许使用这个令牌发送的请求在系统中添加、编辑和删除资源。
- 读: 限制操作为只读。请注意,写入范围包含读取范围。
点 ,或者点击 以取消您的更改。
Token 信息显示 Token 和 Refresh Token 信息,以及令牌的到期日期。这将是唯一显示令牌和刷新令牌的时间。您可以从列表视图查看令牌关联和令牌信息。
- 点复制图标并保存令牌和刷新令牌供以后使用。
验证
您可以使用 Applications 详情页面中的 Tokens 选项卡验证应用程序现在显示具有适当令牌的用户。
-
在导航面板中,选择
。 - 从 Applications 列表视图中选择您要验证的应用程序。
选择 Tokens 选项卡。
您的令牌应显示在与您选择的应用程序关联的令牌列表中。
其他资源
3.2.1. 应用程序令牌功能 复制链接链接已复制到粘贴板!
对于 /o/ 端点中的令牌,刷新和撤销 与令牌关联的刷新和撤销功能目前只能使用应用令牌执行。
3.2.1.1. 刷新现有访问令牌 复制链接链接已复制到粘贴板!
以下示例显示了提供有刷新令牌的现有访问令牌:
/o/token/ 端点用于刷新访问令牌:
curl -X POST \
-d "grant_type=refresh_token&refresh_token=AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/token/ -i
curl -X POST \
-d "grant_type=refresh_token&refresh_token=AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/token/ -i
其中 refresh_token 由上述访问令牌的 refresh_token 字段提供。
身份验证信息的格式是 < client_id>:<client_secret >,其中 client_id 和 client_secret 是访问令牌底层相关应用程序的对应字段。
特殊 OAuth 2 端点只支持使用 x-www-form-urlencoded Content-type,因此 /o passphrase 端点都不接受 application/json。
成功时,会以 JSON 格式显示一个响应,其中包含新的(刷新的)访问令牌,其范围信息与前面的信息相同:
refresh 操作通过删除原始令牌替换现有令牌,然后立即创建新令牌,其范围和相关应用程序与原始令牌相同。
验证新令牌是否存在,并在 api/gateway/v1/tokens/ 端点中删除旧令牌。
3.2.1.2. 撤销访问令牌 复制链接链接已复制到粘贴板!
您可以通过在平台 UI 中删除令牌或使用 /o/revoke-token/ 端点来撤销访问令牌。
通过此方法撤销访问令牌与删除令牌资源对象相同,但它允许您通过提供令牌值以及关联的 client_id (如果应用是 confidential)来删除令牌。例如:
curl -X POST -d "token=rQONsve372fQwuc2pn76k3IHDCYpi7" \ -u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \ http://<gateway>/o/revoke_token/ -i
curl -X POST -d "token=rQONsve372fQwuc2pn76k3IHDCYpi7" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/revoke_token/ -i
-
特殊 OAuth 2 端点只支持使用
x-www-form-urlencodedContent-type,因此/opassphrase 端点都不接受application/json。 -
Allow External Users to Create Oauth2 Tokens (
ALLOW_OAUTH2_FOR_EXTERNAL_USERSin the API)设置被默认禁用。外部用户引用通过 LDAP 等服务或任何其他 SSO 服务等服务向外部进行身份验证的用户。此设置可确保外部用户无法创建自己的令牌。如果您启用然后禁用它,则同时由外部用户创建的令牌仍会存在,且不会自动撤销。此设置可以通过菜单进行配置。
或者,要撤销 OAuth2 令牌,您可以使用 manage 实用程序,请参阅 撤销 oauth2 令牌。
成功后,会显示响应 200 OK。通过检查 api/gateway/v1/tokens/ 端点中是否存在令牌来验证删除。
3.2.2. 令牌和会话管理 复制链接链接已复制到粘贴板!
Ansible Automation Platform 支持以下 OAuth2 令牌管理命令:
3.2.2.1. create_oauth2_token 复制链接链接已复制到粘贴板!
使用以下命令来创建 OAuth2 令牌(指定 example_user的用户名):
aap-gateway-manage create_oauth2_token --user example_user New OAuth2 token for example_user: j89ia8OO79te6IAZ97L7E8bMgXCON2
$ aap-gateway-manage create_oauth2_token --user example_user
New OAuth2 token for example_user: j89ia8OO79te6IAZ97L7E8bMgXCON2
确保您在创建令牌时提供有效的用户。否则,会显示在没有指定用户的情况下尝试发出命令的错误消息,或者提供不存在的用户名。
3.2.2.2. revoke_oauth2_tokens 复制链接链接已复制到粘贴板!
使用此命令撤销 OAuth2 令牌,包括应用程序令牌和个人访问令牌(PAT)。它撤销所有应用令牌(但不关联刷新令牌),并撤销所有个人访问令牌。但是,您还可以指定用于撤销所有令牌的用户。
使用以下命令撤销所有现有 OAuth2 令牌:
aap-gateway-manage revoke_oauth2_tokens
$ aap-gateway-manage revoke_oauth2_tokens
使用以下命令撤销所有 OAuth2 令牌及其刷新令牌:
aap-gateway-manage revoke_oauth2_tokens --revoke_refresh
$ aap-gateway-manage revoke_oauth2_tokens --revoke_refresh
使用 id=example_user (指定 example_user的用户名)为用户撤销所有 OAuth2 令牌:
aap-gateway-manage revoke_oauth2_tokens --user example_user
$ aap-gateway-manage revoke_oauth2_tokens --user example_user
为具有 id=example_user 的用户撤销所有 OAuth2 令牌和刷新令牌:
aap-gateway-manage revoke_oauth2_tokens --user example_user --revoke_refresh
$ aap-gateway-manage revoke_oauth2_tokens --user example_user --revoke_refresh
3.2.2.3. cleartokens 复制链接链接已复制到粘贴板!
使用此命令清除已撤销的令牌。
如需更多信息,请参阅 Django 的 Oauth Toolkit 文档中的 cleartokens。
3.2.2.4. clearsessions 复制链接链接已复制到粘贴板!
使用此命令删除所有已过期的会话。
如需更多信息,请参阅 Django 的 Oauth Toolkit 文档中的 清除会话存储。
有关在 UI 中有关 OAuth2 令牌管理的更多信息,请参阅 应用。