从 Ansible Tower 3.3 开始,提供了为外部应用程序创建和配置基于令牌的身份验证的功能。这使得 ServiceNow 和 Jenkins 等外部应用程序可以更容易地与 Ansible Tower 集成。OAuth 2 可让您在不公开登录信息的情况下使用令牌与应用程序共享某些数据。另外,这些令牌可以被限定为“只读”。在 Tower 中,您可以创建一个应用程序来代表您要集成的外部应用程序,然后使用它为外部应用程序的用户创建需要使用的令牌。
通过把这些由 Tower 发布的令牌与一个应用程序资源相关联,您可以更轻松地管理针对特定应用程序发布的所有令牌。通过对应用程序的令牌进行分离,您可以取消特定应用程序的令牌,而无需撤销系统中的所有令牌。
当把一个外部 web 应用程序与 Ansible Tower 集成时,那个 web 应用程序可能需要为该应用程序上的用户创建 OAuth2 令牌。实现这个目的的首选做法是在 Tower 中创建带有授权代码(Authorization Code)准许类型的应用程序。这是因为:
外部应用程序可以使用用户凭证从 Tower 获取令牌
对为特定应用程序发布的令牌进行分离,可轻松管理这些令牌(例如,可以删除所有与该应用程序关联的令牌)
点击左面导航栏中的 Applications () 图标进入 Applications 页。Applications 页包括了一个可以对其进行搜索的、当前由 Tower 管理的所有可用应用程序的列表,并可以根据 Name 进行排序。
如果没有其它应用程序,则只会显示一个添加应用程序信息的灰色框。
用户的基于令牌的验证可以在 Applications 窗口中进行配置。
在 Ansible Tower 用户界面中,从左侧导航栏中点 Applications () 图标。
Applications 窗口将打开。
点 Applications 窗口右上角的 按钮。
New Application 窗口将打开。
在 Create New Application 窗口中输入以下信息:
**Name**(必需):为要创建的应用程序提供名称
**Description**(可选):为您的应用程序提供简短描述。
**Organization**(必需):提供一个与这个应用程序关联的机构
**Authorization Grant Type**(必需):从一个准许类型中选择以便用户获取这个应用程序的令牌。请参考 Ansible Tower Administration Guide 的 Applications 部分中的 grant types。
Redirect URIS:提供一组允许的 URI,使用空格分开。如果您指定的准许类型为 Authorization code,则此项是必需的。
**Client Type**(必需):选择客户端设备的安全性级别
完成后,点 Save,或者点 Cancel 取消更改。
选择 Tokens 查看有令牌来访问应用程序的用户列表。
令牌只能访问与其关联的用户有权访问的资源,并可通过指定令牌范围来做进一步限制。
令牌可以通过 Users 屏幕添加,并与一个应用程序关联。指定应用程序可以在用户的令牌设置中直接执行。您可以为 Tokens 配置标签中为*您的*用户创建一个令牌,这意味着只能在您自己的用户屏幕中创建并查看您的令牌。要添加令牌:
点击左侧导航栏中的「Users () 图标显示用户列表,然后点击您的用户来配置 OAuth 2 令牌。
注解
使用 API 或 UI 只能为您自己的用户创建 OAuth 2 Tokens,这意味着您只能访问自己的用户配置集来配置或查看您的令牌。如果您是一个 admin,需要为其他用户创建或删除令牌,请参阅 Ansible Tower Administration Guide 的 Token and session management 部分中关于 revoke 和 create 命令的内容。
在用户档案中点 Tokens 标签页。
当没有令牌时,Tokens 屏幕会提示您添加它们:
点击 按钮,打开 Create Token 窗口。
在 Create Token 窗口中输入以下信息:
完成后,点击 Save,或者点 Cancel 取消更改。
保存令牌后,新生成的令牌会显示令牌信息及其过期的时间。
注解
这是唯一显示令牌值和关联刷新令牌值的时间。
在用户的档案中,分配给它的应用程序及其过期时间显示在令牌列表视图中。
通过 Applications 窗口的 Tokens 标签页可以验证上例中的应用程序的用户带有适当的令牌: