本文介绍如何在 Azure Active Directory (Azure AD) 中填充 proxyAddresses 属性,并讨论常见方案,以帮助你了解如何在 Azure AD 中填充 proxyAddresses 属性。

原始产品版本: Azure Active Directory
原始 KB 编号: 3190357

Active Directory 中的 proxyAddresses 属性是可以包含各种已知地址条目的多值属性。 例如,它可以包含 SMTP 地址、X500 地址、SIP 地址等。 将对象同步到 Azure AD 时,Active Directory 中的 mail 或 proxyAddresses 属性中指定的值将复制到 Azure AD 中的影子邮件或 proxyAddresses 属性,然后根据 Azure AD 内部规则计算 Azure AD 中对象的最终 proxyAddresses。 在 Azure AD 中填充 mail、mailNickName 和 proxyAddresses 属性的逻辑称为代理计算,它考虑了本地 Active Directory数据的多个不同方面,例如:

  • 基于本地 ProxyAddresses 或 UserPrincipalName 设置或更新主 SMTP 地址和其他辅助地址。
  • 根据计算的主要 SMTP 地址设置或更新 Mail 属性。
  • 基于本地 MailNickName 或主 SMTP 地址前缀设置或更新 MailNickName 属性。
  • 放弃具有保留域后缀的本地地址,例如 @*.onmicrosoft.com、@*.microsoftonline.com;
  • 放弃具有旧式协议(如 MSMAIL、X400 等)的本地 ProxyAddresses;
  • 丢弃格式不正确的本地地址或不符合 RFC 5322,例如缺少协议前缀“SMTP:”,包含空格或其他无效字符;
  • 如果用户分配了Exchange Online许可证,则删除具有未验证域后缀的 ProxyAddresses。
  • 因此,Active Directory 中对象的 Mail 和 ProxyAddresses 属性的值可能与 Azure AD 中的 ProxyAddresses 属性值不同。

    本文使用以下术语:

  • 初始域:租户中预配的第一个域。 例如, Contoso.onmicrosoft.com
  • Microsoft Online Email 路由地址 (MOERA) :根据用户的 userPrincipalName 前缀构造的地址,加上初始域后缀,该地址会自动添加到 Azure AD 中的 proxyAddresses。 例如, smtp:john.doe@Contoso.onmicrosoft.com
  • UserPrincipalName (UPN) :用户的登录地址。
  • 主 SMTP 地址:Exchange 收件人对象的主要电子邮件地址,包括 SMTP 协议前缀。 例如, SMTP:john.doe@Contoso.com
  • 辅助 smtp 地址:其他电子邮件地址 (exchange 收件人对象的) 。 例如, smtp:john.doe@Contoso.com
  • 邮件属性:保留用户的主电子邮件地址,不带 SMTP 协议前缀。 例如, john.doe@Contoso.com
  • MailNickName 属性:保留 Exchange 收件人对象的别名。 例如, john.doe
  • 方案 1:用户未设置 mail、mailNickName 或 proxyAddresses 属性

    你创建了一个本地用户对象,该对象设置了以下属性:

    AD:mail              : \<not set>
    AD:mailNickName      : \<not set>
    AD:proxyAddresses    : {\<not set>}
    AD:userPrincipalName : user1upn@Contoso.com
    

    接下来,它将同步到 Azure AD,并且仅使用 UPN 的前缀填充 mailNickName 属性,因为它是强制属性:

    AAD:mailNickName      : user1upn
    AAD:UserPrincipalName : user1upn@Contoso.com
    

    然后,会为其分配Exchange Online许可证。 在此方案中,由于代理计算,将执行以下操作:

  • 使用 UPN 值在 proxyAddresses 属性中设置主 SMTP 地址。
  • 使用主 SMTP 地址填充邮件属性。
  • 使用 mailNickName@initial 域的格式,在 proxyAddresses 属性中添加 MOERA 作为辅助 smtp 地址。
  • 以下属性在 Azure AD 中对具有Exchange Online许可证的同步用户对象进行设置:

    AAD:mail              : user1upn@Contoso.com
    AAD:mailNickName      : user1upn
    AAD:proxyAddresses    : {smtp:user1upn@Contoso.onmicrosoft.com; SMTP:user1upn@Contoso.com}
    AAD:userPrincipalName : user1upn@Contoso.com
    

    方案 2:用户没有设置 mailNickName 或 proxyAddresses 属性

    你创建了一个本地用户对象,该对象设置了以下属性:

    AD:mail              : user2mail@Contoso.com
    AD:mailNickName      : \<not set>
    AD:proxyAddresses    : {\<not set>}
    AD:userPrincipalName : user2upn@Contoso.com
    

    接下来,它会同步到 Azure AD,并且由于代理计算,将执行以下操作:

  • 使用邮件属性的相同值设置主 SMTP。
  • 使用主 SMTP 地址前缀填充 mailNickName 属性。
  • 使用主 SMTP 地址填充邮件属性。
  • 初始用户预配时,会在 Azure AD 中设置以下属性:

    AAD:mail              : user2mail@Contoso.com
    AAD:mailNickName      : user2mail
    AAD:proxyAddresses    : {SMTP:user2mail@Contoso.com}
    AAD:userPrincipalName : user2upn@Contoso.com
    

    然后,会为其分配Exchange Online许可证。 在此方案中,将执行以下操作作为代理计算的结果:

  • 将 UPN 添加为 proxyAddresses 属性中的辅助 smtp 地址。
  • 使用 mailNickName@initial 域的格式,在 proxyAddresses 属性中添加 MOERA 作为辅助 smtp 地址。
  • 以下属性在 Azure AD 中对具有Exchange Online许可证的同步用户对象进行设置:

    AAD:mail              : user2mail@Contoso.com
    AAD:mailNickName      : user2mail
    AAD:proxyAddresses    : {smtp:user2upn@Contoso.com; smtp:user2mail@Contoso.onmicrosoft.com; SMTP:user2mail@Contoso.com}
    AAD:userPrincipalName : user2upn@Contoso.com
    

    方案 3:更改本地用户的 proxyAddresses 属性值

    你创建了一个本地用户对象,该对象设置了以下属性:

    AD:mail              : \<not set>
    AD:mailNickName      : \<not set>
    AD:proxyAddresses    : {smtp:user3pa3@Fabrikam.microsoftonline.com, smtp:user3pa2@Contoso.onmicrosoft.com, SMTP:user3pa1@Contoso.com}
    AD:userPrincipalName : user3upn@Contoso.com
    

    接下来,它将同步到 Azure AD 并分配Exchange Online许可证。 在此方案中,将执行以下操作作为代理计算的结果:

  • 放弃具有保留域后缀的地址。 在此示例中,将跳过以下地址:
    • smtp:user3pa2@Contoso.onmicrosoft.com
    • smtp:user3pa3@Fabrikam.microsoftonline.com
    • 使用本地 proxyAddresses 属性中指定的同一地址设置主 SMTP。
    • 使用主 SMTP 地址前缀填充 mailNickName 属性。
    • 使用主 SMTP 地址填充邮件属性。
    • 使用 mailNickName@initial 域的格式,在 proxyAddresses 属性中添加 MOERA 作为辅助 smtp 地址。
    • 将 UPN 添加为 proxyAddresses 属性中的辅助 smtp 地址。
    • Azure AD 中对同步的用户对象设置了以下属性:

      AAD:mail              : user3pa1@Contoso.com
      AAD:mailNickName      : user3pa1
      AAD:proxyAddresses    : {smtp:user3upn@Contoso.com; smtp:user3pa1@Contoso.onmicrosoft.com; SMTP:user3pa1@Contoso.com}
      AAD:userPrincipalName : user3upn@Contoso.com
      

      然后,将本地 proxyAddresses 属性的值更改为以下值:

      AD:mail              : \<not set>
      AD:mailNickName      : \<not set>
      AD:proxyAddresses    : {smtp:user3new3@Fabrikam.microsoftonline.com, smtp:user3new2@Contoso.onmicrosoft.com, SMTP:user3new1@Contoso.com}
      AD:userPrincipalName : user3upn@Contoso.com
      

      在此方案中,将执行以下操作作为代理计算的结果:

    • 放弃具有保留域后缀的地址。 例如,跳过以下地址:
      • smtp:user3new2@Contoso.onmicrosoft.com
      • smtp:user3new3@Fabrikam.microsoftonline.com
      • 替换 proxyAddresses 属性中指定的新主 SMTP 地址。
      • 使用 proxyAddresses 属性中指定的新主 SMTP 地址的值更新邮件属性。
      • 保留旧的 mailNickName,因为未设置本地 mailNickName 或其值已更改。
      • 将旧的 MOERA 保留为 proxyAddresses 属性中的辅助 smtp 地址。
      • 将 UPN 保留为 proxyAddresses 属性中的辅助 SMTP 地址。
      • Azure AD 中对同步的用户对象设置了以下属性:

        AAD:mail              : user3new1@Contoso.com
        AAD:mailNickName      : user3pa1
        AAD:proxyAddresses    : {SMTP:user3new1@Contoso.com; smtp:user3upn@Contoso.com; smtp:user3pa1@Contoso.onmicrosoft.com}
        AAD:userPrincipalName : user3upn@Contoso.com
        

        方案 4:删除Exchange Online许可证

        你创建了一个本地用户对象,该对象设置了以下属性:

        AD:mail              : \<not set>
        AD:mailNickName      : \<not set>
        AD:proxyAddresses    : {\<not set>}
        AD:userPrincipalName : user4upn@Contoso.com
        

        接下来,它将同步到 Azure AD 并分配Exchange Online许可证。 在此方案中,将执行以下操作作为代理计算的结果:

      • 使用 UPN 值在 proxyAddresses 属性中设置主 SMTP 地址。
      • 使用主 SMTP 地址前缀填充 mailNickName 属性。
      • 使用主 SMTP 地址填充邮件属性。
      • 使用 mailNickName@initial 域的格式,在 proxyAddresses 属性中添加 MOERA 作为辅助 smtp 地址。
      • Azure AD 中对同步的用户对象设置了以下属性:

        AAD:mail              : user4upn@Contoso.com
        AAD:mailNickName      : user4upn
        AAD:proxyAddresses    : {smtp:user4upn@Contoso.onmicrosoft.com; SMTP:user4upn@Contoso.com}
        AAD:userPrincipalName : user4upn@Contoso.com
        

        然后,删除Exchange Online许可证,并执行以下操作作为代理计算的结果:

      • 删除与 UPN 值对应的 proxyAddresses 属性中的主 SMTP 地址。
      • 在 proxyAddresses 属性中将 MOERA 从辅助地址提升为主 SMTP 地址。
      • 使用 proxyAddresses 属性中的主 SMTP 地址更新邮件属性 (MOERA) 。
      • AAD:mail              : user4upn@Contoso.onmicrosoft.com
        AAD:mailNickName      : user4upn
        AAD:proxyAddresses    : {SMTP:user4upn@Contoso.onmicrosoft.com}
        AAD:userPrincipalName : user4upn@Contoso.com
        

        然后,在本地 proxyAddresses 属性中添加辅助 smtp 地址:

        AD:mail              : \<not set>
        AD:mailNickName      : \<not set>
        AD:proxyAddresses    : {smtp:user4new@Contoso.com}
        AD:userPrincipalName : user4upn@Contoso.com
        

        当对象同步到 Azure AD 时,将执行以下操作作为代理计算的结果:

      • 在 proxyAddresses 属性中添加辅助 smtp 地址。
      • 将 UPN 添加为 proxyAddresses 属性中的辅助 smtp 地址。
      • Azure AD 中针对同步用户对象设置的以下属性:

        AAD:mail              : user4upn@Contoso.onmicrosoft.com
        AAD:mailNickName      : user4upn
        AAD:proxyAddresses    : {smtp:user4upn@Contoso.com; smtp:user4new@Contoso.com; SMTP:user4upn@Contoso.onmicrosoft.com}
        AAD:userPrincipalName : user4upn@Contoso.com
        

        方案 5:mailNickName 属性值已更改

        你创建了一个本地用户对象,该对象设置了以下属性:

        AD:mail              : \<not set>
        AD:mailNickName      : \<not set>
        AD:proxyAddresses    : {\<not set>}
        AD:userPrincipalName : user5upn@Contoso.com
        

        接下来,它将同步到 Azure AD 并分配Exchange Online许可证。 在此方案中,将执行以下操作作为代理计算的结果:

      • 使用 UPN 值在 proxyAddresses 属性中设置主 SMTP 地址。
      • 使用主 SMTP 地址前缀填充 mailNickName 属性。
      • 使用主 SMTP 地址填充邮件属性。
      • 使用 mailNickName@initial 域的格式,在 proxyAddresses 属性中添加 MOERA 作为辅助 smtp 地址。
      • Azure AD 中对同步的用户对象设置了以下属性:

        AAD:mail              : user5upn@Contoso.com
        AAD:mailNickName      : user5upn
        AAD:proxyAddresses    : {smtp:user5upn@Contoso.onmicrosoft.com; SMTP:user5upn@Contoso.com}
        AAD:userPrincipalName : user5upn@Contoso.com
        

        然后,将本地 mailNickName 属性的值更改为以下内容:

        mail              : \<not set>
        AD:mailNickName      : user5new1
        AD:proxyAddresses    : {\<not set>}
        AD:userPrincipalName : user5upn@Contoso.com
        

        在此方案中,将执行以下操作作为代理计算的结果:

      • 使用与本地 mailNickName 属性相同的值更新 mailNickName 属性。
      • 保持邮件属性不变。
      • 使 proxyAddresses 属性保持不变。
      • Azure AD 中对同步的用户对象设置了以下属性:

        AAD:mail              : user5upn@Contoso.com
        AAD:mailNickName      : user5new1
        AAD:proxyAddresses    : {smtp:user5upn@Contoso.onmicrosoft.com; SMTP:user5upn@Contoso.com}
        AAD:userPrincipalName : user5upn@Contoso.com
        

        方案 6:两个用户具有相同的 mailNickName 属性

        你创建了两个具有相同 mailNickName 值的本地用户对象:

        AD:mail              : \<not set>
        AD:mailNickName      : user6mnn
        AD:proxyAddresses    : {\<not set>}
        AD:userPrincipalName : user6a@Contoso.com
        
        AD:mail              : \<not set>
        AD:mailNickName      : user6mnn
        AD:proxyAddresses    : {\<not set>}
        AD:userPrincipalName : user6b@Contoso.com
        

        接下来,它们将同步到Office 365并分配Exchange Online许可证。 在此方案中,将执行以下操作作为代理计算的结果:

      • 使用 UPN 值在 proxyAddresses 属性中设置主 SMTP 地址。
      • 使用与本地 mailNickName 属性相同的值填充 mailNickName 属性。
      • 使用主 SMTP 地址填充邮件属性。
      • 对于预配的第一个用户 - 使用格式mailNickName@initial域,将 MOERA 添加为 proxyAddresses 属性中的辅助 smtp 地址。
      • 对于预配的第二个用户,MOERA 已被另一个对象使用 - 通过将 4 个随机数字追加到 mailNickName 作为前缀加上 @initial 域后缀,将 MOERA 添加为辅助 smtp 地址。
      • Azure AD 中对同步的用户对象设置了以下属性:

        AAD:mail              : user6a@Contoso.com
        AAD:mailNickName      : user6mnn
        AAD:proxyAddresses    : {smtp:user6mnn@Contoso.onmicrosoft.com; SMTP:user6a@Contoso.com}
        AAD:userPrincipalName : user6a@Contoso.com
        
        AAD:mail              : user6b@Contoso.com
        AAD:mailNickName      : user6mnn
        AAD:proxyAddresses    : {smtp:user6mnn5236@Contoso.onmicrosoft.com; SMTP:user6b@Contoso.com}
        AAD:userPrincipalName : user6b@Contoso.com
        

        联系我们寻求帮助

        如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 还可以向 Azure 社区支持提交产品反馈。

  •