先解释一下为什么在RPA的应用过程中需要使用安全凭证Credentials以及安全凭证的重要性和它的基本组成。
RPA在替代业务人员手工操作的时候,也会给他们带来困扰,例如在登录系统时,机器人需要掌握用户的用户名和口令,在操作某些敏感数据的时候,机器人也需要事先存储这些信息。业务人员不得不将这些信息移交给RPA的开发人员,然后定义到机器人脚本中来使用。这时,在RPA软件中就需要利用安全凭证来存储这些敏感信息,先由业务人员将这些信息保管在更加安全的地方,而无需告知开发人员。在机器人使用的时候,开发人员通过参数直接来调用这些信息就可以了。这些安全凭证在AA里被称作Credentials。
随着RPA在不同流程和不同系统应用的推广使用,用户需要存储的安全凭证也会变多,而对于安全凭证的管理要求和使用权限要求也会变得复杂。比如支持单点登录SSO;业务用户需要定期修改自己的密码;将自己的部分敏感信息委托给其他人管理;或是由其他人可以来补充部分的敏感信息;这些敏感信息授权谁来使用等。这就需要将安全凭证分组来管理。这也就是AA里锁箱Locker的概念,Credentials会被放在Locker里。SSO则需要第三方通过API来管理Credentials。委托他人管理可以在AA中为Locker设定不同的Manger;其他人补充信息的能力需要在AA中为Locker设定participants;允许谁使用时,需要为Locker定于Consumer,由于某个Locker必须是通过那个机器人Runner或开发者Creator来使用的,所以一个Locker必须存在Consumer。
再来看看AA官方文档里对这些概念的定义是什么?
凭证 Credential: 管理用户的密码和其他敏感信息(例如自动化任务中包含的用户凭证、账号和社会保险号码)将加密并作为凭证集中存储在凭证保险箱中,所有Control Room用户均可创建凭证。
保险箱 Locker: 用于对相关敏感信息(以凭证形式包含在自动化任务中)进行分组并与其他用户共享。
保险箱所有者 Locker owner: 可以编辑、查看、删除存储柜,并可以添加或删除其他所有者。
保险箱管理者 Locker managers: 可以像保险箱所有者一样访问所有功能,但无权向保险箱添加所有者、管理者或参与者。
保险箱参与者 Locker participants:能够看到自己的凭证,可添加或查看自己的凭证,无权访问或查看其他用户创建的凭证。而运行机器人时,他们无法使用其凭据,除非他们也是保险箱的使用者。
保险箱使用者Locker consumers:可查看此保险箱,并能够查看保险箱中的所有凭据,能够按照“需要用户提供属性”的要求来提供凭据输入信息。在运行机器人时,能够使用此保险箱中的凭据。
接下来我们看看Credential和Locker是如何被创建和使用的?
系统已经默认提供了AAE_Locker Admin的角色,但是它只具有管理所有保险箱和创建凭据中标准属性的权限。AAE_Locker Admin这个角色的另外一个作用是,可以转移凭证的所有权,如果某个凭证已经分配了保险箱,则可以将所有权转让给其他用户。当所有权转让给其他用户后,之前的所有者便无法访问凭证。
既然AAE_Locker Admin的角色不是保险箱真正的所有者,那么如果要想一个用户具有管理自己保险箱的权限,必须要自定义一个新的角色。创建用户自定义的角色Role,在角色中选择以下选项:
创建角色完成以后,将此角色赋予某个用户以后,该用户就具有管理保险箱的能力了。接下来,我们看看如何建立保险箱Locker和凭证Credential。
第一步,创建保险箱Locker。必须填写名称,以及所有者和使用者,其他都属于可选填项。
由于使用者选择的并不是具体哪个用户,而是角色,如果为了特别的区分能够使用该保险箱的用户类别,那么最好在角色中新建一个特定的角色,将这个角色赋予相关的用户,这些用户就变成了该保险箱的使用者了。
第二步,创建凭证Credential。填写凭证名称,将凭证放入某个保险箱,下面可以增加凭证中的属性,这些属性可以是标准的,也可以是掩码类型的密码,也可以是由用户提供的。如果是标准的,意味着凭证所有者必须输入值,所有的使用者都可以使用这个凭证值;如果是掩码的,用于将键入的值隐藏在特殊字符*后面,使得其实际值是不可见的;如果是用户提供的,该值字段会灰显,因为该值并不是在此时预设的,是由使用者在后续提供的,也就是说只有包含此凭证的保险柜中的使用者才能提供该值。
第三步,如果选择了“用户提供”方式,那么具有使用者权限的用户都会收到凭证请求,由其来填写这个凭证值。这也意味着,虽然在凭证中设定的是一个属性,但是由于用户提供的值不同,那么在各个使用者运行自动化任务时,所使用的值就是不一样的。
最后,就是如何我们看看在开发态中如何使用这些凭证Credentials。回到AAE Client端,利用具有Bot Creator license且拥有保险箱使用者权限的用户登陆后,当遇到需要输入这些安全信息时,就可以通过F2选择出某保险箱里某凭据的属性值了。注意,只有填入字段时密码password类型的对象时,才能选择密码类型的属性值。
另外,作为具有凭证和保险箱所有者的角色权限的用户,可以使用凭证保险箱的 API 可以管理其中的凭证、属性、保险柜和保险柜模式。AAE中提供的API包括(1)用于管理凭证的 API ,可用于创建、更新和删除凭证;(2)用于管理凭证属性的 API ,可用于创建、更新和删除凭证属性和值;(3)用于管理保险箱的 API ,可用于添加、编辑和删除保险箱;(4)用于管理凭证保险箱模式的 API ,可用于配置连接模式,允许使用主密钥连接到凭证保险箱。详细内容参见:https://docs.automationanywhere.com/bundle/enterprise-v11.3/page/enterprise/topics/control-room/control-room-api/credential-vault-api.html#topicID__api-cred