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)

字符串

为凭据添加别名。

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

属性 (attributes)

列表 / 元素=字典

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

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

数据 (data)

字符串

属性的值。

数据格式 (data_format)

字符串

控制*数据*的输入类型。

如果为 text,则*数据*是 UTF-16LE 编码为字节的文本字符串。

如果为 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

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

持久性 (persistence)

字符串

定义凭据的持久性。

如果为 local,则凭据将对同一主机上同一用户的每次登录都保持有效。

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

选项

  • "enterprise"

  • "local" ← (默认)

密钥 (secret)

字符串

凭据的密钥。

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

当*类型*为密码类型时,这是*用户名*的密码。

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

密钥格式 (secret_format)

字符串

控制*密钥*的输入类型。

如果为 text,则*密钥*是 UTF-16LE 编码为字节的文本字符串。

如果为 base64,则*密钥*是 base64 编码的字符串,将被解码为字节。

选项

  • "base64"

  • "text" ← (默认)

状态 (state)

字符串

当为 absent 时,将删除由*名称*和*类型*指定的凭据。

当为 present 时,将添加由*名称*和*类型*指定的凭据。

选项

  • "absent"

  • "present" ← (默认)

类型 (type)

字符串 / 必需

要存储的凭据类型。

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

当类型为 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\Username) 或 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: username@DOMAIN.COM
    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)