community.windows.win_credential 模块 – 管理凭据管理器中的 Windows 凭据

注意

此模块是 community.windows 集合 (版本 2.3.0) 的一部分。

如果您使用的是 ansible 软件包,则您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.windows

要在 playbook 中使用它,请指定: community.windows.win_credential

概要

  • 用于在凭据管理器中创建和删除 Windows 凭据。

  • 此模块可以管理标准用户名/密码凭据以及证书凭据。

参数

参数

注释

别名 (alias)

字符串

添加凭据的别名。

如果 *name* 设置为 DNS 名称,则通常这是主机的 NetBIOS 名称。

属性 (attributes)

列表 / 元素=字典

一个字典列表,用于设置凭据的应用程序特定属性。

设置后,将把现有属性与整个列表进行比较,任何差异都意味着所有属性都将被替换。

数据 (data)

字符串

属性的值。

数据格式 (data_format)

字符串

控制 *data* 的输入类型。

如果为 text,则 *data* 是一个文本字符串,UTF-16LE 编码为字节。

如果为 base64,则 *data* 是一个 base64 字符串,base64 解码为字节。

选项

  • "base64"

  • "text" ← (默认)

名称 (name)

字符串 / 必填

属性的键。

这不是唯一标识符,因为多个属性可以具有相同的键。

注释 (comment)

字符串

用户为凭据定义的注释。

名称 (name)

字符串 / 必填

标识要使用凭据的服务器或服务器的目标。

如果该值可以是 NetBIOS 名称、DNS 服务器名称、包含通配符字符 (*) 的 DNS 主机名后缀、包含通配符字符序列的 NetBIOS 或 DNS 域名或星号。

有关此值可以是什么的更多详细信息,请参阅 https://docs.microsoft.com/en-us/windows/win32/api/wincred/ns-wincred-credentiala 中的 TargetName

这与 *type* 一起使用以生成唯一的凭据。

持久性 (persistence)

字符串

定义凭据的持久性。

如果为 local,则凭据将保留在同一主机上同一用户的全部登录中。

enterpriselocal 相同,但凭据在其他主机上运行时对同一域用户可见,而不仅仅是 localhost。

选项

  • "enterprise"

  • "local" ← (默认)

密钥 (secret)

字符串

凭据的密钥。

省略时,如果创建新的凭据,则不使用任何密钥。

当 *type* 为密码类型时,这是 *username* 的密码。

当 *type* 为证书类型时,这是证书的 PIN 码。

密钥格式 (secret_format)

字符串

控制 *secret* 的输入类型。

如果为 text,则 *secret* 是一个文本字符串,UTF-16LE 编码为字节。

如果为 base64,则 *secret* 是一个 base64 字符串,base64 解码为字节。

选项

  • "base64"

  • "text" ← (默认)

状态 (state)

字符串

absent 时,将删除由 *name* 和 *type* 指定的凭据。

present 时,将添加由 *name* 和 *type* 指定的凭据。

选项

  • "absent"

  • "present" ← (默认)

类型 (type)

字符串 / 必填

要存储的凭据类型。

这与 *name* 一起使用以生成唯一的凭据。

当类型为 domain 类型时,凭据由 Microsoft 身份验证包(如 Negotiate)使用。

当类型为 generic 类型时,任何特定的身份验证包都不会使用该凭据。

建议使用 domain 类型,因为只有身份验证提供程序才能访问密钥。

选项

  • "domain_certificate"

  • "domain_password"

  • "generic_certificate"

  • "generic_password"

更新密钥 (update_secret)

字符串

always 时,如果密钥不同,则始终更新密钥。

on_create 时,密钥只有在首次创建时才会被检查/更新。

如果无法检索密钥并且将其设置为 always,则模块将始终导致更改。

选项

  • "always" ← (默认)

  • "on_create"

用户名 (username)

字符串

当 *type* 为密码类型时,这是要为凭据存储的用户名。

当 *type* 为凭据类型时,这是要使用的证书的十六进制字符串形式的指纹。

type=domain_password 时,这应采用 Netlogon (DOMAIN\用户名) 或 UPN (username@DOMAIN) 的形式。

如果使用证书指纹,则证书必须存在于执行用户的CurrentUser\My证书存储区中。

备注

注意

  • 此模块需要使用become运行,以便访问用户的凭据存储区。

  • 每个主机和类型只能有一个凭据。如果定义了第二个使用相同主机和类型的凭据,则原始凭据将被覆盖。

另请参见

另请参见

ansible.windows.win_user_right

管理 Windows 用户权限。

ansible.windows.win_whoami

获取有关当前用户和进程的信息。

示例

- name: Create a local only credential
  community.windows.win_credential:
    name: server.domain.com
    type: domain_password
    username: DOMAIN\username
    secret: Password01
    state: present

- name: Remove a credential
  community.windows.win_credential:
    name: server.domain.com
    type: domain_password
    state: absent

- name: Create a credential with full values
  community.windows.win_credential:
    name: server.domain.com
    type: domain_password
    alias: server
    username: [email protected]
    secret: Password01
    comment: Credential for server.domain.com
    persistence: enterprise
    attributes:
      - name: Source
        data: Ansible
      - name: Unique Identifier
        data: Y3VzdG9tIGF0dHJpYnV0ZQ==
        data_format: base64

- name: Create a certificate credential
  community.windows.win_credential:
    name: '*.domain.com'
    type: domain_certificate
    username: 0074CC4F200D27DC3877C24A92BA8EA21E6C7AF4
    state: present

- name: Create a generic credential
  community.windows.win_credential:
    name: smbhost
    type: generic_password
    username: smbuser
    secret: smbuser
    state: present

- name: Remove a generic credential
  community.windows.win_credential:
    name: smbhost
    type: generic_password
    state: absent

作者

  • Jordan Borean (@jborean93)