将AEM Forms与Microsoft® Office 365邮件服务器协议集成 oauth2-support-for-the-microsoft-mail-server-protocols
为了让组织遵守安全电子邮件要求,AEM Forms提供了OAuth 2.0支持与Microsoft® Office 365邮件服务器协议集成。 您可以使用Azure Active Directory (Azure AD) OAuth 2.0身份验证服务连接各种协议(如IMAP、POP或SMTP),并访问Office 365用户的电子邮件数据。 以下是配置Microsoft® Office 365邮件服务器协议以通过OAuth 2.0服务进行身份验证的分步说明:
-
登录到https://portal.azure.com/并在搜索栏中搜索 Azure Active Directory,然后单击结果。
或者,您可以直接浏览到 https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Overview -
单击 添加 > 应用程序注册 > 新注册。
-
根据您的要求填写信息,然后单击 注册。
在上例中,已选择任何组织目录(任何Azure AD目录 — 多租户)中的 帐户和个人Microsoft®帐户(例如,Skype、Xbox) 选项。note note NOTE - 对于任何组织目录(任何Azure AD目录 — 多租户)应用程序中的 帐户,Adobe建议您使用工作帐户,而不是个人电子邮件帐户。
- 仅个人Microsoft®帐户 应用程序不受支持。
- Adobe建议您使用 多租户和个人Microsoft®帐户 应用程序。
-
接下来,转至 证书和密码,单击 新建客户端密码,然后执行屏幕上显示的步骤来创建密码。请务必记下此secret值供以后使用。
-
若要添加权限,请转到新创建的应用程序,然后选择 API权限 > 添加权限 > Microsoft® Graph > 委派权限。
-
选中应用程序的以下权限对应的复选框,然后单击 添加权限:
IMAP.AccessUser.All
Mail.Read
offline_access
POP.AccessAsUser.All
SMTP.Send
User.Read
-
选择 身份验证 > 添加平台 > Web,然后在 重定向Url 部分中,添加以下任意URI(通用资源标识符)作为:
https://login.microsoftonline.com/common/oauth2/nativeclient
http://localhost
在这种情况下,
https://login.microsoftonline.com/common/oauth2/nativeclient
被用作重定向URI。 -
添加每个URL后单击 配置,并根据您的要求配置设置。
note note NOTE 必须选中 访问令牌 和 ID令牌 复选框。 -
单击左侧窗格中的 概述,并复制 应用程序(客户端) ID、目录(租户) ID 和 客户端密钥 的值供以后使用。
生成授权码 generating-the-authorization-code
接下来,必须生成授权码,如以下步骤所述:
-
将
clientID
替换为<client_id>
并在浏览器中打开以下URL,将redirect_uri
替换为您的应用程序的重定向URI:https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=[clientid]&scope=IMAP.AccessAsUser.All%20POP.AccessAsUser.All%20SMTP.Send%20User.Read%20Mail.Read%20offline_access&response_type=code&redirect_uri=[redirect_uri]&prompt=login
note note NOTE 如果存在单个租户应用程序,请在以下URL中将 common
替换为您的[tenantid]
以生成授权代码:https://login.microsoftonline.com/[tenantid]/oauth2/v2.0/authorize?client_id=[[clientid]]&scope=IMAP.AccessAsUser.All%20POP.AccessAsUser.All%20SMTP.Send%20User.Read%20Mail.Read%20openid%20offline_access&response_type=code&redirect_uri=[redirect_uri]&prompt=login
-
键入上述URL后,您将被重定向到登录屏幕:
-
输入电子邮件,单击 下一步,将显示“应用程序权限”屏幕:
-
当您允许权限时,您将被重定向到一个新的URL,如下所示:
https://login.microsoftonline.com/common/oauth2/nativeclient?code=<code>&session_state=[session_id]
-
将上述URL中
<code>
的值从0.ASY...
复制到上述URL中的&session_state
。
生成刷新令牌 generating-the-refresh-token
接下来,必须生成刷新令牌,如以下步骤所述:
-
打开命令提示符并使用以下cURL命令获取refreshToken。
-
将
clientID
、client_secret
和redirect_uri
替换为应用程序的值以及<code>
的值:curl -H "ContentType application/x-www-form-urlencoded" -d "client_id=[client-id]&scope=https%3A%2F%2Foutlook.office.com%2FIMAP.AccessAsUser.All%20https%3A%2F%2Foutlook.office.com%2FPOP.AccessAsUser.All%20https%3A%2F%2Foutlook.office.com%2FSMTP.Send%20https%3A%2F%2Foutlook.office.com%2FUser.Read%20https%3A%2F%2Foutlook.office.com%2FMail.Read%20offline_access&code=[code]&grant_type=authorization_code&redirect_uri=[redirect_uri]&client_secret=[secretkey_value]" -X POST https://login.microsoftonline.com/common/oauth2/v2.0/token
note note NOTE 在单个租户应用程序中,要生成刷新令牌,请使用以下cURL命令并将 common
替换为中的[tenantid]
:curl -H "ContentType application/x-www-form-urlencoded" -d "client_id=[client-id]&scope=https%3A%2F%2Foutlook.office.com%2FIMAP.AccessAsUser.All%20https%3A%2F%2Foutlook.office.com%2FPOP.AccessAsUser.All%20https%3A%2F%2Foutlook.office.com%2FSMTP.Send%20https%3A%2F%2Foutlook.office.com%2FUser.Read%20https%3A%2F%2Foutlook.office.com%2FMail.Read%20offline_access&code=[code]&grant_type=authorization_code&redirect_uri=[redirect_uri]&client_secret=[secretkey_value]" -X POST https://login.microsoftonline.com/[tenantid]/oauth2/v2.0/token
-
记下刷新令牌。
使用OAuth 2.0支持配置电子邮件服务 configureemailservice
现在,通过登录到管理员UI在最新的JEE服务器上配置电子邮件服务:
-
转到 主页 > 服务 > 应用程序和服务 > 服务管理 > 电子邮件服务,将显示 配置电子邮件服务 窗口,此窗口是为基本身份验证配置的。
note note NOTE 若要启用oAuth 2.0身份验证服务,必须选中 SMTP服务器是否需要身份验证(SMTP身份验证) 复选框。 -
将 oAuth 2.0身份验证设置 设置为
True
。 -
从Azure门户复制 客户端ID 和 客户端密钥 的值。
-
复制生成的 刷新令牌 的值。
-
登录到 Workbench 并从 活动选取器 中搜索 电子邮件1.0。
-
电子邮件1.0下提供了三个选项:
- 随文档一起发送:发送带有单个附件的电子邮件。
- 随附件映射一起发送:发送带有多个附件的电子邮件。
- 接收:接收来自IMAP的电子邮件。
note note NOTE - 传输安全协议具有以下有效值:“blank”、“SSL”或“TLS”。 将 SMTP Transport Security 和 Receive Transport Security 的值设置为 TLS 以启用oAuth身份验证服务。
- 使用电子邮件端点时,OAuth不支持 POP3协议。
-
通过选择 随文档 一起发送,测试应用程序。
-
提供 TO 和 From 地址。
-
调用应用程序,并使用0Auth 2.0身份验证发送电子邮件。
note note NOTE 如果需要,您可以将Workbench中特定进程的Auth 2.0身份验证设置更改为基本身份验证。 为此,请在 连接设置 选项卡中的 使用全局设置 下将 OAuth 2.0身份验证 值设置为“False”。
启用oAuth任务通知 enable_oauth_task
-
转到 主页 > 服务 > 表单工作流 > 服务器设置 > 电子邮件设置
-
要启用oAuth任务通知,请选中 启用oAuth 复选框。
-
从Azure门户复制 客户端ID 和 客户端密钥 的值。
-
复制生成的 刷新令牌 的值。
-
单击 保存 以保存详细信息。
note note NOTE 若要了解有关任务通知的更多信息,单击此处。
配置电子邮件端点 configure_email_endpoint
-
转到 主页 > 服务 > 应用程序和服务 > 端点管理
-
要配置电子邮件终结点,请将 oAuth 2.0身份验证设置 设置为
True
。 -
从Azure门户复制 客户端ID 和 客户端密钥 的值。
-
复制生成的 刷新令牌 的值。
-
单击 保存 以保存详细信息。
note note NOTE 若要了解有关配置电子邮件端点的详细信息,请单击配置电子邮件端点。
疑难解答 troubleshooting
-
如果电子邮件服务无法正常工作,请尝试重新生成
Refresh Token
,如上所述。 部署新值需要花费几分钟的时间。 -
使用Workbench在电子邮件端点中配置电子邮件服务器详细信息时出错。 尝试通过Admin UI(而不是Workbench)配置端点。