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 凭据。

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

参数

参数

注释

别名

字符串

为凭据添加别名。

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

属性

列表 / 元素=字典

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

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

数据

字符串

属性的值。

数据格式

字符串

控制 data 的输入类型。

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

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

选择

  • "base64"

  • "text" ← (默认)

名称

字符串 / 必填

属性的键。

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

注释

字符串

凭据的用户定义注释。

名称

字符串 / 必填

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

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

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

它与 type 一起用于生成唯一凭据。

持久性

字符串

定义凭据的持久性。

如果 local,则凭据将在同一主机上同一用户的所有登录会话中持久存在。

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

选择

  • "enterprise"

  • "local" ← (默认)

密钥

字符串

凭据的密钥。

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

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

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

密钥格式

字符串

控制 secret 的输入类型。

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

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

选择

  • "base64"

  • "text" ← (默认)

状态

字符串

absent 时,将删除由 nametype 指定的凭据。

present 时,将添加由 nametype 指定的凭据。

选择

  • "absent"

  • "present" ← (默认)

类型

字符串 / 必填

要存储的凭据类型。

它与 name 一起用于生成唯一凭据。

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

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

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

选择

  • "domain_certificate"

  • "domain_password"

  • "generic_certificate"

  • "generic_password"

更新密钥

字符串

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

on_create 时,仅在首次创建密钥时才检查/更新密钥。

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

选择

  • "always" ← (默认)

  • "on_create"

用户名

字符串

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: [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)