亚马逊AWS官方博客
如何为 Amazon Workmail 启用 MFA 双因素认证
![]() |
本文介绍如何为 Amazon Workmail 启用 IAM Identity Center 并开启 MFA 多因素认证。
一、背景
Amazon Workmail 邮件系统自身有内部的目录服务,可用于用户数量较少的快速部署和使用。在此时登录界面上是不支持配置 MFA 的。即便点击 Workmail 的设置图标,在其中也无法找到开启 MFA 的选项。这是由于 Amazon Workmail 内置的目录认证服务是不支持 MFA 的。
为了开启 MFA,需要将 Amazon Workmail 配置为使用 IAM Identity Center 服务(以前叫做 AWS Single Sign-On 即 SSO,以下简称 IdC 服务),并在 IdC 服务中管理用户和分组。此时在 IdC 服务中,可以设置用户第一次登录时候必须强制绑定 MFA,即可满足安全合规要求。IdC 服务支持主流的软件 MFA,例如 Microsoft Authenticator,Google Authenticator 等手机 APP,也支持硬件形式的 USB Token。
二、Workmail 服务初始化
本文假设当前用户已经有一个配置好的 Workmail 邮件系统,使用 Workmail 内置的用户目录进行认证。在配置完毕后,添加第一个邮箱用户,并确认这个邮箱登录正常。
其配置的全过程可以参考这篇博客:https://aws.amazon.com/cn/blogs/china/use-amazon-workmail-to-build-overseas-enterprise-email-services。
三、开启本 AWS 账户的 IAM Identity Center 服务
IAM Identity Center 服务(以前叫做 AWS Single Sign-On 即 SSO,以下简称 IdC 服务),是一个全局性的服务。在本账号内只能在一个 Region 内创建。如果某个 Region 已经有了,在其他 Region 配置的时候,会提示:
AWS Organizations supports IAM Identity Center in only one AWS Region at a time.
To enable IAM Identity Center in this Region.
这时候需要删除原来 Region 内的 IdC 服务,并在使用 Workmail 的 Region 重新创建一个。如果您之前的应用已经在别的 Region 使用了 IdC 服务无法删除,那么建议您注册一个全新的 AWS 账号,在新的 AWS 账号内运行 Workmail 邮件服务,并开启 IdC 服务。
删除方法如下截图。注意,删除将丢失所有 IdC 现有用户和分组。
![]() |
删除后到 Workmail 所在的 Region,创建 IdC 服务。如下截图。
![]() |
确认 Region 正确。点击启用。如下截图。
![]() |
创建成功。如下截图。
![]() |
四、修改 Workmail 设置开启 IAM Identity Center 服务
1、启用 IAM Identity Center
进入 Workmail 服务。点击左侧的 Organization
,在左侧菜单找到 Identity Center
,在右侧下方的设置中点击 Enable
按钮。如下截图。
![]() |
在弹出的提示中,点击 Enable
按钮开启。
![]() |
启用完成。
2、确认 IAM Identity Center 和 Workmail 的用户名映射关系
IAM Identity Center 也就是 IdC 服务和 Workmail 两个服务的配置界面中,都有 Users、Groups 的菜单。两个服务是两套独立的系统,IdC 是用户认证登录名,Workmail 负责实际接受邮件的邮箱名。由此,可以建立如下的一个 mapping 关系。以张三 Zhang San、李四 Li Si 为例,映射关系如下。
用户编号 | Workmail 邮箱名 | IdC 登录用户名 |
#1 | zhangsan@xxxx.com | user01 |
#2 | lisi@xxxx.com | user02 |
接下来分别配置 IdC 服务和 Workmail 服务。
五、在 IAM Identity Center 服务和 Workmail 服务中分别添加用户
1、在 IAM Identity Center 服务中添加用户
进入 IdC 服务,点击左侧的 Users
菜单,在右侧点击创建用户按钮。如下截图。
![]() |
输入登录名是 user01
,这将用于单点登录。在密码生成位置,选择生成一次性密码。输入邮箱名例如 zhangsan@xxxx.com
。这里使用的 zhangsan 与上一步映射表保持一致。如下截图。
![]() |
在分组界面,跳过。如下截图。
![]() |
点击创建按钮,完成创建。
![]() |
在生成一次性使用密码位置,把密码复制下来。注意这里仅显示一次,一旦忘记,就只能重置一个新密码。如下截图。
![]() |
创建用户完成。
2、在 Workmail 服务中添加新邮箱
进入 Workmail 服务,在左侧的 Users
菜单下,点击 Add users
按钮,创建新用户。如下截图。
![]() |
创建新用户的界面上,这里输入的用户名请参考上述映射表格中 Workmail 的用户名。在用户名位置输入 zhangsan
,在 Display name
友好显示名称位置,输入 Zhang San
,便于后期友好信息查询。在邮箱位置,输入要使用的邮箱名字,本例中也是 zhangsan
。在下方的 Map with Identity Center user
位置,留空不输入。最后填写上密码。这里需要填写一个足够复杂的密码。注意:本密码将不会被使用,稍后仅会使用 IdC 服务中的用户密码。如下截图。
![]() |
注意:这里设置的用户密码是 Workmail 本地 User 的密码,以后将不会被使用,稍后仅会使用 IdC 服务中的用户密码。即便如此,请依然设置一个足够复杂的密码,长度达到 12 位以上,包含数字、字母大小写、特殊字符等。
配置完成,可看到用户添加完毕。如下截图。
![]() |
至此添加 Workmail 用户完成。
六、配置映射关系、并强制用户 IdC 方式认证
1、将 Workmail 邮箱用户添加到 IdC 的认证 User 清单中(Assign 操作)
进入 Workmail 服务界面,从左侧菜单找到 Identity Center
,点击进入,从右侧菜单找到 Assign users and groups
按钮,点击进入。如下截图。
![]() |
在新建用户
或者选择现有用户
的对话框中,选择现有用户。如下截图。
![]() |
在搜索框中,输入上一步在 Workmail 服务中配置时候,录入的友好显示名称。请注意这里只支持查询友好显示名称,输入别的 ID 是无法检索获得结果的。前文创建 Workmail 用户时候,使用的友好显示名称是 Zhang San
,输入后选中搜索结果。如下截图。
![]() |
在对话框中点击 Assign
按钮,完成分配。如下截图。
![]() |
2、将 Workmail 真实邮箱与 IdC 用户绑定(Associate 操作)
在上一步完成了 Assign 分配操作后,页面下方的 Assigned users
里边可以看到用户 id 和邮箱名字,复制其 ID。然后点击 Associate
按钮。如下截图。
![]() |
在 Associate 对话框中,从下拉框中选择出来 Workmail 用户名和邮箱,在下方的 ID 位置输入上一步复制的 ID,然后点击 Associate users
按钮完成操作。如下截图。
![]() |
3、设置 Workmail 强制采用 IdC 服务用户认证
前文分别在 IdC 服务和 Workmail 服务中各自创建了用户和密码,上一步也完成了二者映射和绑定。现在要关闭 Workmail 自己的用户认证,强制使用 IdC 用户的认证机制。又因为 IdC 用户认证是使用 MFA 的,因此就可以强制 MFA 认证了。
首先进入 Workmail 服务,从左侧菜单找到 Identity Center
,点击进入,从右侧菜单中找到 Authentication mode
按钮。点击 Edit
按钮。如下截图。
![]() |
在配置对话框中,修改认证类型,改成 IdC Only 方式。如下截图。
![]() |
至此配置完成。
七、最终邮箱用户登录效果
1、首次登录绑定 MFA 并修改密码
现在登录 Workmail。登录入口可以是 Workmail 服务上显示的登录入口,也可以是 IdC 服务上显示的登录入口。二者都将跳转到 IdC 入口。跳转完成后,输入 IdC 上的用户名,即 user01
,在输入创建用户时候的一次性密码。如下截图。
![]() |
用于本用户在创建后第一次登录,之前并未使用过,因此这里会强制绑定 MFA 双因素认证,并重新修改密码。选择类型是认证 APP。如下截图。
![]() |
选择认证方式是手机 APP 后,在手机上安装例如 Microsoft Authenticor
,Google Auth
等手机 MFA,用摄像头扫描中间的二维码。二维码默认是不显示的,准备就绪后点击就可以刷新获得二维码。扫描后,手机上将新增一个认证条目,将其中的数字填写到认证码位置,点击添加。如下截图。
![]() |
用户第一次登录还强制改掉创建用户时候的一次性密码。这里输入新的密码,注意满足复杂度要求,包含大小写、特殊字符,并且不要是类似 888888 这种容易破解的密码。如下截图。
![]() |
至此用户第一次登录的初始化完成。
2、跳转到 Workmail
在设置好新密码后,页面跳转到 IdC 认证界面,下边显示出来 Workmail 图标,已经可以使用了。点击进入。如下截图。
![]() |
使用 MFA 登录到 Workmail 成功。
![]() |
以上过程,可通过 AWS 的 API 服务、以脚本化方式批量操作,具体请参考 AWS 相关服务的 API 文档。
八、开启 Personal access tokens 在客户端上免 MFA 登录
1、什么是 Personal access tokens
当开启了 MFA 后,Workmail 的网页版的登录入口就从 Workmail 自己内置的目录服务(账号+密码)登录变成了由 IAM Identity Center 提供的用户名+密码+MFA Token 的认证,即要多输入一个 MFA Token。在网页界面上登录交互中会要求输入 MFA,而在其他客户端包括手机内置的邮件服务、App、电脑上的 C/S 架构的客户端软件如 Outlook/Thunderbird 这些软件,大多是没有额外输入 MFA Token 的对话框,由此无法直接使用 MFA 完成认证。针对这种场景,Workmail 提供了名为 Personal access tokens(以下简称 PAT)的功能。
Personal access tokens(以下简称 PAT)是在用户登录到自己的邮箱后,由用户自己创建的具有一定固定期限的 Key,默认是 365 天有效。这个 PAT 将直接替代原有的密码(用户名不变),即可满足仅支持固定密码输入的客户端软件的登录。
2、创建 PAT
为了创建 PAT,首先以邮箱用户即本例是 user01 的身份在网页界面完成登录,进入 Workmail 邮箱服务后,点击右上角的设置按钮,在左下方找到 Personal access tokens
,点击右上角的创建按钮。如下截图。
![]() |
创建完毕后,点击复制按钮,将 PAT 的值复制下来。注意这里不需要复制 ID,另外 PAT 的值仅能复制一次,不能第二次显示。一旦忘记,就只能重新生成。如下截图。
3、使用 Thunderbird 客户端登录(输入 PAT 替代密码)
本文以安装 Thunderbird这个开源客户端为例,Thunderbird 支持 Windows、MacOS、Linux 等多个操作系统平台。安装完毕后,输入全名(即友好显示名称)、输入邮箱完整名(包含用户名和域名),最后在密码位置,输入 PAT 代替之前的用户单点登录密码。如下截图。
![]() |
输入 PAT 校验正确的话,系统会提示是否要继续连接到 Workmail。点击登录按钮继续。如下截图。
![]() |
登录成功。如下截图。
![]() |
由此就实现了用 PAT 替代密码在客户端登录,客户端不再需要 MFA 也可以正常登录。
需要注意的是:Workmail 默认生成的 PAT 有效期是 365 天,到期需要重新生成,届时没有更新 PAT 的客户端就无法接受邮件了。关于其默认有效天数,可以在 Workmail 的设置中调整,最短 1 天,最长 10 年。
4、使用 Outlook Auto Discover 的注意事项
如果您使用 Outlook 作为客户端,在配置邮箱过程中,希望客户端全自动完成配置,那么需要开启 Auto Discover 功能。Auto Discover 功能本质上是提供一个托管的 WEB Server,提供如下方式的文件访问:
https://company.tld/autodiscover/autodiscover.xml
在这个连接中,company.tld
是您的企业域名。由此,Outlook 客户端即可通过 Auto Discover 功能完成自动的配置,不再需要手动填写服务器地址。
如果希望开启这个功能,请参考本文末尾配置文档。
如果没有开启 Auto Discover,一些邮件客户端会要求手工填写服务器地址,此时以本文配置在 us-west-2
区域为例,其 SMTP 服务器地址是 smtp.mail.us-west-2.awsapps.com
,IMAP 服务器地址是 imap.mail.us-west-2.awsapps.com
。具体地址参考本文末尾的文档。
参考资料
Amazon WorkMail – Working with IAM Identity Center
Amazon WorkMail – Enabling AutoDiscover to configure endpoints
https://docs.aws.amazon.com/workmail/latest/adminguide/autodiscover.html
Improving Security in Amazon WorkMail with MFA
Setting up IMAP for Amazon WorkMail
https://docs.aws.amazon.com/workmail/latest/userguide/using_IMAP.html