azure.azcollection.azure_rm_aduser 模块 – 修改 Azure Active Directory 用户

注意

此模块是 azure.azcollection 集合(版本 3.1.0)的一部分。

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

要安装它,请使用: ansible-galaxy collection install azure.azcollection。您需要其他要求才能使用此模块,有关详细信息,请参阅要求

要在 Playbook 中使用它,请指定:azure.azcollection.azure_rm_aduser

azure.azcollection 1.5.0 中的新增功能

概要

  • 创建、删除和更新 Azure Active Directory 用户。

要求

执行此模块的主机需要满足以下要求。

  • python >= 2.7

  • 执行此模块的主机必须通过 galaxy 安装了 azure.azcollection 集合

  • 必须通过 pip 在执行来自 azure.azcollection 模块的主机上安装集合的 requirements.txt 中列出的所有 python 包

  • 完整的安装说明可以在 https://galaxy.ansible.com/azure/azcollection 中找到

参数

参数

注释

account_enabled

布尔值

一个布尔值,确定是否启用用户帐户。

在创建或更新用户帐户时使用。

选择

  • false

  • true

ad_user

字符串

Active Directory 用户名。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。

adfs_authority_url

字符串

在 azure.azcollection 0.0.1 中添加

Azure AD 授权 URL。当使用用户名/密码进行身份验证,并且拥有自己的 ADFS 授权时使用。

api_profile

字符串

在 azure.azcollection 0.0.1 中添加

选择在与 Azure 服务通信时使用的 API 配置文件。默认值 latest 适用于公有云;未来的值将允许与 Azure Stack 一起使用。

默认值: "latest"

attribute_name

字符串

您想要与 attribute_value 匹配的属性的名称。

如果 attribute_name 不是集合类型,它将更新或删除 attribute_name 等于 attribute_value 的用户。

如果 attribute_name 是集合类型,它将更新或删除 attribute_valueattribute_name 中的用户。

object_iduser_principal_nameodata_filter 互斥。

attribute_value 一起使用是必需的。

attribute_value

字符串

要与 attribute_name 匹配的值。

如果 attribute_name 不是集合类型,它将更新或删除 attribute_name 等于 attribute_value 的用户。

如果 attribute_name 是集合类型,它将更新或删除 attribute_valueattribute_name 中的用户。

attribute_name 一起使用是必需的。

auth_source

字符串

在 azure.azcollection 0.0.1 中添加

控制用于身份验证的凭据的来源。

也可以通过 ANSIBLE_AZURE_AUTH_SOURCE 环境变量进行设置。

当设置为 auto(默认值)时,优先级为模块参数 -> env -> credential_file -> cli

当设置为 env 时,凭据将从环境变量中读取

当设置为 credential_file 时,它将从 ~/.azure/credentials 读取配置文件。

当设置为 cli 时,凭据将来自 Azure CLI 配置文件。subscription_id 或环境变量 AZURE_SUBSCRIPTION_ID 可用于标识订阅 ID(如果存在多个订阅 ID),否则将使用默认的 az cli 订阅。

当设置为 msi 时,主机必须是启用了 MSI 扩展的 Azure 资源。subscription_id 或环境变量 AZURE_SUBSCRIPTION_ID 可用于标识订阅 ID(如果该资源被授予对多个订阅的访问权限),否则将选择第一个订阅。

msi 在 Ansible 2.6 中添加。

选择

  • "auto" ← (默认)

  • "cli"

  • "credential_file"

  • "env"

  • "msi"

cert_validation_mode

字符串

在 azure.azcollection 0.0.1 中添加

控制 Azure 端点的证书验证行为。默认情况下,所有模块都会验证服务器证书,但是当使用 HTTPS 代理时,或者针对 Azure Stack 时,可能需要通过传递 ignore 来禁用此行为。也可以通过凭据文件配置文件或 AZURE_CERT_VALIDATION 环境变量进行设置。

选择

  • "ignore"

  • "validate"

client_id

字符串

Azure 客户端 ID。当使用服务主体或托管标识 (msi) 进行身份验证时使用。

也可以通过 AZURE_CLIENT_ID 环境变量进行设置。

cloud_environment

字符串

在 azure.azcollection 0.0.1 中添加

对于美国公共云以外的云环境,环境名称(由 Azure Python SDK 定义,例如 AzureChinaCloudAzureUSGovernment),或元数据发现端点 URL(Azure Stack 所必需)。也可以通过凭据文件配置文件或 AZURE_CLOUD_ENVIRONMENT 环境变量进行设置。

默认值: "AzureCloud"

公司名称

字符串

用户关联的公司名称。

此属性可用于描述外部用户来自的公司。

最大长度为 64 个字符。仅在 $select 时返回。

支持 $filter(eq、ne、not、ge、le、in、startsWith 和对 null 值的 eq)。

禁用实例发现

布尔值

在 azure.azcollection 2.3.0 中添加

确定在尝试身份验证时是否执行实例发现。将其设置为 true 将完全禁用实例发现和授权验证。此功能旨在用于无法访问元数据端点(例如在私有云或 Azure Stack 中)的情况。实例发现的过程包括从 https://login.microsoft.com/ 检索授权元数据以验证授权。通过将此设置为 **True**,将禁用授权的验证。因此,至关重要的是要确保配置的授权主机是有效且可信的。

通过凭据文件配置文件或 AZURE_DISABLE_INSTANCE_DISCOVERY 环境变量设置。

选择

  • false ←(默认)

  • true

显示名称

字符串

用户的显示名称。

在创建或更新用户帐户时使用。

名字

字符串

用户的名字。

在创建或更新用户帐户时使用。

日志模式

字符串

父参数。

日志路径

字符串

父参数。

邮件

字符串

用户的主要电子邮件地址。

在创建或更新用户帐户时使用。

邮件昵称

字符串

用户的邮件别名。

在创建或更新用户帐户时使用。

手机号码

字符串

用户的手机号码。

在创建或更新用户帐户时使用。

对象 ID

字符串

用户的对象 ID。

更新或删除具有此对象 ID 的用户。

user_principal_nameattribute_nameodata_filter 互斥。

odata 过滤器

字符串

可用于指定要更新或删除的用户的过滤器。

object_idattribute_nameuser_principal_name 互斥。

本地扩展属性

别名:extension_attributes

字典

包含用户的 extensionAttributes1-15。

这些扩展属性也称为 Exchange 自定义属性 1-15。

对于已启用 onPremisesSync 的用户,此属性集的授权源是本地,并且是只读的。

对于仅限云的用户(其中 onPremisesSyncEnabled 为 false),可以在创建或更新用户对象期间设置这些属性。

对于先前从本地 Active Directory 同步的仅限云的用户,这些属性在 Microsoft Graph 中是只读的,但可以通过 Exchange 管理中心或 PowerShell 中的 Exchange Online V2 模块进行完全管理。

本地不可变 ID

别名:immutable_id

字符串

用户的 on_premises_immutable_id。

在创建或更新用户帐户时使用。

密码

字符串

Active Directory 用户密码。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。

密码强制更改

布尔值

用户是否将在下次登录时被强制更改密码。

如果未指定,Azure 会将新用户的此值默认为 true。

在创建或更新用户帐户时使用。

选择

  • false

  • true

密码强制更改 MFA

布尔值

与 password_force_change 的行为相同,但必须在更改密码之前执行多因素身份验证 (MFA)。

在创建或更新用户帐户时使用。

选择

  • false

  • true

密码配置文件

字符串

用户的密码。

在创建或更新用户帐户时使用。

配置文件

字符串

在 ~/.azure/credentials 文件中找到的安全配置文件。

密钥

字符串

Azure 客户端密钥。当使用服务主体进行身份验证时使用。

状态

字符串

AD 用户的状态。使用 present 创建或更新 AD 用户,使用 absent 删除 AD 用户。

选择

  • "absent"

  • "present" ←(默认)

订阅 ID

字符串

您的 Azure 订阅 ID。

姓氏

字符串

用户的姓氏。

在创建或更新用户帐户时使用。

租户

字符串

Azure 租户 ID。当使用服务主体进行身份验证时使用。

指纹

字符串

在 azure.azcollection 1.14.0 中添加

x509_certificate_path 中指定的私钥的指纹。

当使用服务主体进行身份验证时使用。

如果定义了 x509_certificate_path,则为必需。

使用位置

字符串

一个两位数的国家/地区代码,ISO 标准 3166。

对于将分配许可证的用户是必需的,因为法律要求检查各国/地区的服务可用性。

在创建或更新用户帐户时使用。

用户主体名称

字符串

用户的主体名称。

创建、更新或删除具有此主体名称的用户。

object_idattribute_nameodata_filter 互斥。

用户类型

字符串

一个字符串值,可用于对目录中的用户类型进行分类,例如“成员”和“来宾”。

在创建或更新用户帐户时使用。

x509 证书路径

路径

在 azure.azcollection 1.14.0 中添加

用于创建 PEM 格式的服务主体的 X509 证书的路径。

证书必须附加到私钥。

当使用服务主体进行身份验证时使用。

注释

注意

  • 要使用 Azure 进行身份验证,您可以传递参数、设置环境变量、使用存储在 ~/.azure/credentials 中的配置文件,或者在运行任务或剧本之前使用 az login 登录。

  • 还可以使用服务主体或 Active Directory 用户进行身份验证。

  • 要通过服务主体进行身份验证,请传递 subscription_id、client_id、secret 和 tenant 或设置环境变量 AZURE_SUBSCRIPTION_ID、AZURE_CLIENT_ID、AZURE_SECRET 和 AZURE_TENANT。

  • 要通过 Active Directory 用户进行身份验证,请传递 ad_user 和 password,或在环境中设置 AZURE_AD_USER 和 AZURE_PASSWORD。

  • 或者,凭据可以存储在 ~/.azure/credentials 中。这是一个 ini 文件,其中包含 [default] 部分和以下键:subscription_id、client_id、secret 和 tenant 或 subscription_id、ad_user 和 password。还可以添加其他配置文件。通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。

另请参阅

另请参阅

使用 Azure CLI 登录

如何使用 az login 命令进行身份验证。

示例

- name: Create user
  azure_rm_aduser:
    user_principal_name: "{{ user_id }}"
    state: "present"
    account_enabled: "True"
    display_name: "Test_{{ user_principal_name }}_Display_Name"
    password_profile: "password"
    mail_nickname: "Test_{{ user_principal_name }}_mail_nickname"
    on_premises_immutable_id: "{{ object_id }}"
    given_name: "First"
    surname: "Last"
    user_type: "Member"
    usage_location: "US"
    mail: "{{ user_principal_name }}@contoso.com"
    mobile_phone: "+1234567890123"
    company_name: 'Test Company'
    on_premises_extension_attributes:
      extension_attribute1: "test_extension_attribute1"
      extension_attribute2: "test_extension_attribute2"
      extension_attribute11: "test_extension_attribute11"

- name: Update user with new value for account_enabled
  azure_rm_aduser:
    user_principal_name: "{{ user_id }}"
    state: "present"
    account_enabled: "False"

- name: Delete user
  azure_rm_aduser:
    user_principal_name: "{{ user_id }}"
    state: "absent"

返回值

常见返回值记录在 此处,以下是此模块特有的字段

描述

account_enabled

布尔值

该帐户是否已启用。

返回:始终

示例: false

公司名称

字符串

用户关联的公司名称。

返回:始终

示例: "Test Company"

显示名称

字符串

用户的显示名称。

返回:始终

示例: "John Smith"

邮件

字符串

用户的主要电子邮件地址。

返回:始终

示例: "[email protected]"

邮件昵称

字符串

用户的邮件别名。

返回:始终

示例: "jsmith"

手机号码

字符串

用户的手机号码。

返回:始终

示例: "+1234567890123"

对象 ID

字符串

用户的 object_id。

返回:始终

示例: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

on_premises_extension_attributes

字典

包含用户的 extensionAttributes1-15。

这些扩展属性也称为 Exchange 自定义属性 1-15。

对于已启用 onPremisesSync 的用户,此属性集的授权源是本地,并且是只读的。

对于仅限云的用户(其中 onPremisesSyncEnabled 为 false),可以在创建或更新用户对象期间设置这些属性。

对于先前从本地 Active Directory 同步的仅限云的用户,这些属性在 Microsoft Graph 中是只读的,但可以通过 Exchange 管理中心或 PowerShell 中的 Exchange Online V2 模块进行完全管理。

返回:始终

示例: {}

用户主体名称

字符串

用户的主体名称。

返回:始终

示例: "[email protected]"

用户类型

字符串

一个字符串值,可用于对目录中的用户类型进行分类。

返回:始终

示例: "Member"

作者

  • Cole Neubauer(@coleneubauer)