配置口令身份验证

本部分介绍如何配置口令以便在 Service Desk 或 Asset Manager 中使用仅口令登录策略。

有关配置口令的更多详细和特定信息,请参阅口令文档。

口令由两个部分组成:

  • 身份提供程序 (IdP) – 配置为与 Active Directory 通信的 Web 应用程序。它显示登录网页,用于输入您的相关凭据以及确定您在其已配置的系统中的身份。
  • 服务提供程序 (SP) – Web 服务器的加载项(例如 IIS 或 Apache),配置用于保护某些网站路径(如 /ServiceDesk.WebAccess)。它将用户重定向到 IdP 以进行登录,然后将其身份相关信息传送回 Web 应用程序,具体做法是将头添加到 HTTP 请求。SP 和 IdP 不需要直接通信,但确实需要将其配置为互相信任。用户的 Web 浏览器需要两者的可见性。

如果使用 IIS,请确保您的 Web 服务器上安装了 IIS 6 Management Compatibility Windows Feature。

以下示例包含示例地址,请记得将这些地址替换为您自己的值

连接到内部 IdP

第一步是连接到内部 IdP。

要连接到内部 IdP:

  1. 在 Web 服务器上转到 https://localhost/Shibboleth.sso/Metadata 以下载包含有关 SP 的详细信息的 XML 文件。
  2. 使用 SP 的唯一名称保存此文件。
  3. 在口令服务器上,将上一步中的 XML 文件复制到 C:\Program Files (x86)\Shibboleth\IdP\metadata
  4. 在文本编辑器中打开 C:\Program Files (x86)\Shibboleth\IdP\conf\metadata-providers.xml 文件。
  5. 在注释所述处,将具有唯一 ID 和路径的如下行添加到元数据文件中,类似于:
复制
<MetadataProvider id="LocalMetadataUNIQUEID" xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/example.com.xml"/>
  1. 保存并关闭该文件。
  2. 重新启动 Shibboleth 3 IdP Daemon 服务,然后断开与服务器的连接。
  3. 在 Web 服务器上导航到 C:\Program Files\Shibboleth\etc\shibboleth 并打开 shibboleth2.xml
  4. <Sessions> 部分中,将 <SSO> 标签替换为类似以下内容:
复制
<SSO entityID="https://www.example.com/idp/shibboleth"> SAML2 SAML1</SSO>
  1. <ApplicationDefaults> 部分中,将 <MetadataProvider> 标签添加到:
复制
<MetadataProvider type="XML"
    uri="https://www.example.com/idp/shibboleth"
    backingFilePath="lab-shib01-idp-metadata.xml"
    reloadInterval="180000"/>
  1. 保存该文件,然后重新启动 IIS 和 Shibboleth 2 Daemon(默认)服务。

服务器变量列表的底部有一些与口令相关的值,包括 HTTP_EPPN,用于确认已登录的用户名。

https://webserver/Shibboleth.sso/Session 上提供了关于会话的详细信息。

将服务器变量名更改为 HTTP_LANDESK_USER

Service Desk 和 Asset Manager 预期的已登录用户的默认头为 HTTP_LANDESK_USER。您可以在 tps.config 文件中覆盖此内容以匹配默认值(请参阅将 Web Access 配置为使用不同服务器变量),或者您可以重新配置口令。

配置并保护 Service Desk 和 Asset Manager

使用控制台中的管理组件将 Service Desk 和 Asset Manager 用户与网络登录相关联并按照中所述方法设置设置登录策略后,您可以保护 Web Access 实例。

要保护 Web Access 实例:

  1. 导航到 C:\Program Files\Shibboleth\etc\shibboleth 并打开 shibboleth2.xml
  2. <Host> 部分中,添加具有 Web Access 实例名称的新 <Path> 标签:
复制
<Host name="hd37f6c6dv3ctrh.example.com">
    <Path name="安全" authType="口令" requireSession="真"/>
    <Path name="ServiceDesk.WebAccess" authType="口令"
        requireSession="真"/>
</Host>
  1. 保存该文件,然后重新启动 IIS 和 Shibboleth 2 Daemon(默认)服务。
  2. 转到 http://webserver/ServiceDesk.WebAccess
    您即已登录。

Web Access 在两个位置查找 HTTP_LANDESK_USER 值。首先,它在口令 SP 填充的 HTTP 头中查找。然后,它在 URL 查询字符串中查找,您可以通过后者在没有完全集成的环境设置的情况下测试口令身份验证。

要使用 URL 查询字符串测试 Web Access,请导航到:https://webserver/ServiceDesk/WebAccess/[email protected]

这在集成的口令环境中没有任何作用。SP 仍然会将您重定向到 IdP 登录页面并填充 HTTP 头,其优先级高于 URL 值。

将 Web Access 配置为使用不同服务器变量

与其将口令重新配置为使用属性名 HTTP_LANDESK_USER,不如将 Web Access 重新配置为使用默认属性名 HTTP_EPPN

要将 Web Access 配置为使用不同服务器变量:

  1. 打开 Web Access 的 tps.config 文件并添加以下行:
复制
<add key="ShibbolethHeaderId" value="HTTP_EPPN" />
  1. 回收由 Web Acces 使用的应用程序池。