为 ServiceDesk Plus Cloud 安装和配置 ADFS 3.0

为 ServiceDesk Plus Cloud 安装和配置 ADFS 3.0

安装及配置

转到服务器管理器 > 添加角色和功能向导


 






 


 

 


 

 


 

在上面的截图中,点击 "在此服务器上配置联合服务"。您将看到以下界面
 


 

 


 

 

 

创建自签名证书


可使用 Windows SDK 或 OpenSSL 生成自签名证书

** 重要说明** :

  • 请使用正确的通用名称/主题生成证书

  • 例如,如果您要将 AD FS 暴露到互联网,并使用登录 URL "https://adfs.zillum.com/adfs/ls",那么请使用通用名称/主题 "adfs.zillum.com "生成证书。

 

Windows SDK 步骤

安装 Windows SDK .NET Framework 3.0 后
  1. 打开命令提示符
  2.  cd "C:\Program Files\Windows SDK\bin" (请转到实际安装文件夹)
  3.  运行以下命令 :
  • makecert -r -pe -n "CN=adfs.yourdomain.com" -b 01/01/2016 -e 01/01/2026 -sky exchange Server.cer -sv Server.pvk
  • 在上述命令中,不要使用 "adfs.yourdomain.com",而要给出 AD FS 系统的完整限定名称
  • 如果要将 AD FS 对外公开,请使用要公开的 FQDN(如 adfs.zillum.com)。
  • pvk2pfx.exe -pvk Server.pvk -spc Server.cer -pfx Server.pfx
  • 证书(Server.pfx)将在运行命令的同一文件夹中生成(例如,C:\Program Files\Windows SDK\bin) 

OpenSSL 步骤

OpenSSL Windows 二进制文件可从此处下载: https://slproweb.com/products/Win32OpenSSL.html

打开命令提示符并进入 OpenSSL 安装目录,然后按照以下步骤操作。

假设 Open SSL 安装在 C:\OpenSSL-Win64 目录中,则步骤如下:
 
  1. cd C:\OpenSSL-Win64\bin
  2. set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg
  3. OpenSSL req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
  • 填写命令要求输入的详细信息,如国家、城市、机构名称
  • 对于 "通用名称 "或 "主题",请提供 AD FS 机器的 FQDN,例如 adfs.yourdomain.com
  • 如果要将 AD FS 暴露到外部互联网,请使用要暴露的 FQDN(如 adfs.zillum.com)
  • OpenSSL pkcs12 -export -out Server.pfx -inkey privateKey.key -in certificate.crt
  • 证书(Server.pfx)将在运行命令的同一文件夹中生成(例如,C:\OpenSSL-Win64\bin)。

现在,点击 "导入 "按钮并选择使用上述命令创建的 "Server.pfx "文件
 


 

 



 


 

运行 Powershell 脚本

  1. 下载 adfsscript_2012_r2.txt,并将其保存在 AD FS 安装系统的 C 驱动器中(C:\)。
  2. 解压缩文件夹。
  3. 打开 "命令提示符"("以管理员身份运行)
  4. 运行以下命令将脚本重命名为 adfsscript_2012_r2.ps1
    1. move C:\adfsscript_2012_r2.txt  C:\adfsscript_2012_r2.ps1
  5. 输入以下指令 :
    1. PowerShell
    2. Set-ExecutionPolicy Unrestricted
    3. C:\adfsscript_2012_r2.ps1  <Your Organization ID>
  6. 确保 PowerShell 脚本成功运行。运行脚本时遇到的任何错误都将以 "红色 "打印在控制台中。
  7. 如果由于域策略的原因无法将执行策略设置为 "不受限制",则可能需要在域控制器中设置相同的策略。请参阅此处,了解如何在域控制器中设置或绕过执行策略:
组织 ID (ORG ID) 列于 ESM目录>> 组织明细下。

在SDP Cloud中配置SAML 

  1. 进入 SDP cloud中的 ESM 目录--> SAML 身份验证页面
  2. 将登录 URL 配置为 https://adfs.yourdomain.com/adfs/ls [ 使用生成证书时使用的 fqdn ]。
  3. 注销 URL 为 https://adfs.yourdomain.com/adfs/ls/idpinitiatedsignon?SingleSignOut=SingleSignOut
  4. 证书将保存在 C:\certificate.cer。浏览并选择
  5. 算法为 RSA
  6. 保存设置

启动 AD / SAML 身份验证

要启动 SAML 身份验证,必须使用在 SDP Cloud 的 ESM 目录 --> ESM 门户设置中配置的自定义域或子域(例如 helpdesk.zillum.com(或)zillum.sdpondemand.manageengine.com)。

用户将被重定向到 AD FS 身份验证页面。

退出登录

SDP Cloud目前不支持 SAML 注销。请关闭浏览器或打开新的无痕浏览页进行新会话

登录问题故障排除

对于 AD FS 3.0,请确保 AD FS 服务的登录账户的 "servicePrincipalName "属性值正确。

检查以下内容

  1. 在 AD FS 机器中,转到管理工具---> Windows 服务
  2. 右键点击活动目录联合服务(AD FS)服务并转到登录选项卡
  3. 记下在登录选项卡中配置的账户
  4. 现在,进入活动目录计算机
  5. 运行 "adsiedit.msc"(如果未显示 AD 对象,请点击 "操作"-->"连接 "并连接到 AD)
  6. 找到在步骤 3 中看到的账户(AD FS 服务的登录账户)
  7. 右键点击账户并转到属性
  8. 在属性列表中,确保 "servicePrincipalName "属性的值为 HTTP/ADFS_Service_Name。例如,如果您的联合服务名称是 adfs.zillum.com,那么请确保 "servicePrincipalName "属性中的值是 http/adfs.zillum.com。
  9. 重新启动 AD FS 服务,然后尝试身份验证

要成功登录,必须确保以下事项

  1. Active Directory 必须包含用户的电子邮件地址。要检查这一点,请转到 Active Directory 用户和计算机。右键点击用户并点击属性。用户的电子邮件地址必须出现在电子邮件字段中。
  2. 用户必须已作为请求者导入 SDP Cloud
  3. 该用户在 Zoho / SDP Cloud 中的电子邮件地址和活动目录中的电子邮件地址必须相同
  4. 组织 ID 必须在运行 adfsscript PowerShell 脚本时正确给出。组织 ID 列于 ESM 目录 >> 组织详细信息。
  5. 确保以下 4 项内容具有相同的 FQDN:(1) AD FS 管理控制台中的 "Federation Service Name" (2) SDP Cloud 中配置的登录/注销 URL (3) SSL 证书的通用名称/主题 (4) Active Directory 中 AD FS 服务登录账户的 servicePrincipalName
    • 例如,如果登录 URL 为 "https://adfs.zillum.com/adfs/ls",则
    • 联合服务名称必须是:adfs.zillum.com
    • SSL 证书的通用名称/主题必须是:adfs.zillum.com
    • servicePrincipalName 属性值必须包含:http/adfs.zillum.com
    • 如果变更联合服务名称,则需要重新启动 AD FS 2.0 Windows 服务
  6. 确保 PowerShell 脚本成功运行。运行脚本时遇到的任何错误都将以 "红色 "显示在控制台中。

进一步的故障排除
有关进一步的故障排除信息,请参阅此处:http://help.sdpondemand.com/ad-integration-single-sign-on-issues

禁用 SAML 身份验证

1) 组织管理员(通常是首次注册 SDP Cloud的用户)可通过访问 sdpondemand.manageengine.com,而不是自定义域来登录我们的服务。在登录页面,可以使用常用的 SDP Cloud 凭证代替 AD 凭证。登录后,转到 ESM目录--> SAML 验证页面并删除配置。这将禁用 SAML 身份验证。

2) 使用供应应用程序导入用户时,应用程序不会从 AD 导入任何密码。因此导入的用户在 SDP Cloud 中不会有任何与之关联的密码。如果您打算禁用 SAML 身份验证并使用 SDP Cloud身份验证,他们将需要密码才能登录。因此,他们必须点击登录页面上的 "忘记密码 "链接,以收到一封生成新密码的邮件。

验证外部用户

要使 SAML 身份验证在互联网上的任何地方都能正常工作,需要执行以下 2 个步骤:

1) 通过以下任一步骤,允许从互联网访问 AD FS 计算机的 443 端口

  • 安装 AD FS 代理: 您可以安装 AD FS 代理,通过它可以访问 AD FS 机器的 443 端口。AD FS 代理需要安装在 DMZ 中,并且必须能访问互联网。需要在外部 DNS(如 adfs.zillum.com)中添加一个指向 AD FS 代理外部 IP 的条目。 有关安装和配置 AD FS 代理的更多详情,请参阅此处: https://nolabnoparty.com/en/adfs-3-0-install-wap-server-pt-4/
  • 或者,允许 AD FS 机器的 443 端口从互联网访问(通过添加 NAT 条目或其他方式)。为此,您需要在外部 DNS 服务器中添加一个条目(如 adfs.zillum.com)。请注意,AD FS 无需安装在域控制器上。您可以在任何 Windows 2008 系统上安装 AD FS,只需将 AD FS 系统加入域即可。这样,您的域控制器系统就不会暴露在互联网上。只允许访问端口 443。

2)在 AD FS 管理中变更联合服务名称
  • 允许 ADFS 通过 443 端口访问互联网后,进入 ESM 目录 > SAML 身份验证页面。变更登录和注销 URL,给出允许访问互联网的系统的完全合格域名(例如,https://adfs.zillum.com/adfs/ls)。
  • 在 AD FS 系统中,进入 AD FS 管理,右键点击服务并点击 "编辑联合服务属性"。为联合服务名称提供相同的 fqdn
  • 从服务控制台重新启动 AD FS 2.0 Windows 服务。现在尝试再次登录。
  • 例如,如果登录 URL 是 "https://adfs.zillum.com/adfs/ls",那么联合服务名称必须是 "adfs.zillum.com"。