在 Windows Azure Pack 中重新配置 FQDN 和端口

 

适用于:Windows Azure Pack

Windows azure Pack for Windows Server 使用基于声明的身份验证系统对用户进行身份验证和授权。 此身份验证由外部标识提供程序的安全标记服务 (IdP-STS) 执行。 系统信任 IdP-STS 来验证用户的标识并提供有关每个用户的受信任的一组声明。 必须在 Windows Azure Pack 配置期间建立与 IdP-STS 的双向信任关系,以便终结点更改正确与受影响的组件通信。

若要建立此信任关系,以下Windows Azure Pack 组件公开元数据信息。

  • 供租户使用的管理门户

  • 供管理员使用的管理门户

  • 租户身份验证网站

  • 管理员身份验证网站

公开的数据包括所有必需的信任信息,其中包括不同组件的终结点信息。 终结点信息用于将用户重定向到 IdP-STS,并返回到 Windows Azure Pack。

因此,每次组件的终结点配置更改时,必须更新元数据信息并且必须使用更新的元数据重新建立信任关系。

Windows Azure Pack 安装和配置为公开的元数据和终结点信息提供默认值。 默认情况下,Windows Azure Pack 使用计算机和域名作为每个组件的完全限定域名 (FQDN) 。 它还为每个组件设置预定义的端口号。

例如,如果您的租户计算机主机名为“mytenantmachine”且域为“contoso.com”,则租户门户的默认配置将为 https://mytenantmachine.contoso.com:30081

在某些情形下,必须更改默认终结点值。 例如:

  • 如果您将组件的默认自签名的 SSL 证书更新为真实证书,组件的 FQDN 必须匹配证书 FQDN。

  • 如果您使用跨多个组件实例的负载均衡器,必须使用负载均衡器终结点而非每个组件实例的终结点。

  • 如果更改预定义端口,则必须更新 Windows Azure Pack 端口设置。 例如,更改为默认 HTTPS 端口 443 需要更新 Windows Azure Pack 端口设置。

在这样的情况下,必须更新元数据信息并且必须按以下步骤重新建立信任关系。

更新 FQDN 和端口设置

  1. 在要更新的计算机上运行 Set–MgmtSvcFqdn cmdlet。

    Set-MgmtSvcFqdn –Namespace <Namsepace Token> -ConnectionString <Connection String> [-FQDN <FQDN>] [-Port <port>] [-Verbose]
    

    参数

    必需/可选

    详细信息

    -ConnectionString

    必需

    此参数定义托管 Windows Azure Pack 配置存储SQL Server的连接字符串。

    不需要使用数据库名称(初始目录)。

    字符串中包含的凭据必须对配置存储区具有写权限。

    例如:

    $connectionString = “Data Source=$server;User ID=$userId;Password=$password”
    

    $server – 托管管理门户配置数据库的SQL Server的地址。

    $userId – 具有管理门户配置数据库的写入权限的SQL用户。

    $password – $userId 帐户的密码。

    -FQDN

    可选

    此参数用于指定计算机的新 FQDN。 用新 FQDN 替换 $fqdn,不包括协议前缀。 例如,mynewfqdn.contoso.com。

    如果您未更改 FQDN,可以忽略此参数。

    -Namespace

    必需

    此参数用指示要配置哪个组件。 可能的值为:“AdminSite”、“TenantSite”、“AuthSite”、“WindowsAuthSite”。

    -Port

    可选

    此参数用于定义新端口。 用新端口替换 $port。 例如 443。 请注意,使用默认 HTTPS 端口 443 将从终结点中删除端口部分。

    如果您未更改端口,可以忽略此参数。

  2. 在 Internet Information Services 管理器中,确保已更新 FQDN 和端口值。 还要确保 FQDN 匹配 SSL 证书。

  3. 更新的 FQDN 和端口值将最终传播到目标组件。 要确保这立即生效,请重新启动网站。

  4. 对承载组件的所有计算机重复步骤 2 和 3。

  5. 如果需要,请设置您的 DNS 以将请求转发到合适的位置。

  6. 按下一节中的说明重新建立所有受影响组件之间的信任关系。

重新建立信任关系

Windows Azure Pack 是一个声明感知应用程序,它使用令牌和声明对最终用户进行身份验证和授权。 只要标记符合某些条件(如由受信任的密钥签名),这类应用程序将不使用标记颁发方的标识。 有关详细信息,请参阅 声明感知应用程序

通过基于声明的身份验证,系统信任 STS 来颁发其标记。 但是,这不一定表示此 STS 实际执行用户身份验证。 STS 可能将用户身份验证请求(或联合)委托给受第一个 STS 信任的另一 STS。 这种相互信任和委托请求的 STS 链很常见,并且很灵活。 信任关系的拓扑有无限可能。 系统管理员必须选择最合适的拓扑来满足业务需求。

例如,可以将Windows Azure Pack 管理门户配置为信任 AD FS 以对用户进行身份验证。 根据 AD FS 配置,AD FS 可以执行以下操作之一:

  • AD FS 可以使用管理门户 Active Directory 凭据直接验证用户身份。

  • AD FS 可以联合对另一 STS 的请求。

例如,在第二种情况下,您可以使用 Windows Azure Active Directory 访问控制服务 (ACS) 作为另一 STS。 ACS 然后可以再次联合对另一 STS(如 Windows Live)的请求。 在此情况下,Windows Live 实际使用 Windows Live 凭据验证用户身份。 这是在 Windows Azure Pack 中启用 Windows Live、Google 或 Facebook 身份验证的一种方法。

重要

因为终结点用于将用户重定向到信任链中的下一个组件,必须在所有组件中正确配置所有终结点以确保联合成功。

如果您更改管理门户终结点,必须更新门户直接信任的 STS。

确保对于依赖方联合元数据 URL,更新 STS 中的 FQDN 和端口信息,然后刷新元数据。

如果您更改 STS 终结点,必须更新它直接信任的所有组件,如管理门户和其他 STS。

系统管理员应熟悉信任链,以了解在配置更改后必须更新哪些组件。

为管理门户重新建立信任关系

  1. 如果Windows Azure Pack 管理门户立即信任的 STS 终结点已更改,则必须使用新的终结点信息更新门户。 可以通过在相关计算机上使用 Set-MgmtSvcRelyingPartySettings PowerShell cmdlet 做到这点。

    Set-MgmtSvcRelyingPartySettings -Target <Targets> –MetadataEndpoint <Metadata Endpoint Full URL> [-ConnectionString <Connection String>] [-DisableCertificateValidation] [-PortalConnectionString <Portal Configuration Store Connection String>] [-ManagementConnectionString <Management Store Connection String>]
    

    参数

    必需/可选

    详细信息

    目标

    必需

    此参数定义要更新哪些组件。

    目标允许>的值<

    租户 - 使用此值配置租户、租户 API 层和管理员 API 层的管理门户。

    管理员 - 使用此值配置管理员和管理员 API 层的管理门户。

    您可以提供单个目标或目标的数组。

    MetadataEndpoint

    必需

    此参数定义受信任的 IdP-STS 元数据终结点的完整 URL。

    元数据终结点完整 URL> 的<允许值:

    例如,有效 URL 为:

    http://mysts.contoso.com:1234/FederationMetadata/2007-06/FederationMetadata.xml

    ConnectionString

    必需的,除非使用了 PortalConnectionString 和 ManagementConnectionString。

    此参数定义托管 Windows Azure Pack 门户配置存储和管理存储SQL Server的连接字符串。

    不需要使用数据库名称(初始目录)。

    如果门户配置存储区或管理存储区位于不同 SQL Server 实例或使用非默认的数据库名称,请改用 PortalConnectionString 和 ManagementConnectionString 参数。

    DisableCertificateValidation

    可选

    不建议在生产环境中使用

    此参数禁止 SSL 证书验证。

    如果您不使用此参数,在元数据终结点使用自签名的 SSL 证书时,cmdlet 将无法检索元数据信息。

    PortalConnectionString

    可选的,除非未提供 ConnectionString

    使用此参数来仅覆盖配置存储区的默认连接字符串。

    在以下情况下应这样做:

    - 门户配置存储位于不同的SQL实例上。

    - 门户配置存储使用不同的凭据。

    - 不想使用默认连接字符串。

    ManagementConnectionString

    可选的,除非未提供 ConnectionString

    使用此参数来仅覆盖管理存储区的默认连接字符串。

    在以下情况下应这样做:

    - WAP 管理存储位于不同的SQL实例上。

    - 管理存储使用不同的凭据。

    - 不想使用默认连接字符串。

    示例 cmdlet:

    Set-MgmtSvcRelyingPartySettings –Target Tenant –MetadataEndpoint ‘https://mysts.contoso.com:12345/FederationMetadata/2007-06/FederationMetadata.xml’ -ConnectionString “Data Source=mysqlserver.contoso.com;User ID=myprivilegeduser;Password=mypassword”
    

    提示

    • 此 cmdlet 可用于安装 Windows Azure Pack Windows Azure PowerShell更新的任何计算机上。

    • 更新的设置将最终传播到所有受影响的组件。 为了更快地传播,请手动重新启动受影响的组件以立即提取新的配置值。 如果目标为“租户”,应重新启动租户、租户 API 和管理员 API 组件的所有管理门户。 如果目标为“管理员”,应重新启动管理员和管理员 API 组件的所有管理门户。

为身份验证网站重新建立信任关系

  1. 如果Windows Azure Pack 身份验证站点立即信任的 STS 终结点已更改,则必须使用新的终结点信息更新身份验证站点。 为此,可以使用相关计算机上的 PowerShell cmdlet Set-MgmtSvcIdentityProviderSettings PowerShell cmdlet。

    Set-MgmtSvcIdentityProviderSettings -Target <Targets> –MetadataEndpoint <Metadata Endpoint Full URL> [-ConfigureSecondary] [-ConnectionString <Connection String>] [-DisableCertificateValidation] [-PortalConnectionString <Portal Configuration Store Connection String>]
    

    参数

    必需/可选

    详细信息

    目标

    必需

    此参数定义要更新哪些组件。

    目标>允许的值<

    成员资格 - 使用此值配置租户(成员资格)身份验证网站。

    Windows - 使用此值配置管理员 (Windows) 身份验证网站。

    您可以提供单个目标或目标的数组。

    MetadataEndpoint

    必须

    此参数定义受信任的组件元数据终结点的完整 URL。

    元数据终结点完整 URL> 的<允许值:

    例如,有效 URL 为:

    http://mysts.contoso.com:1234/FederationMetadata/2007-06/FederationMetadata.xml

    ConfigureSecondary

    可选

    每个身份验证网站最多支持两个受信任的依赖方。

    包含此参数可配置第二个依赖方而非覆盖默认依赖方。

    ConnectionString

    必需的,除非使用了 PortalConnectionString

    此参数定义托管 Windows Azure Pack 门户配置存储SQL Server的连接字符串。

    不需要使用数据库名称(初始目录)。

    如果门户配置存储区使用非默认数据库名称,请改用 PortalConnectionString 参数。

    DisableCertificateValidation

    可选

    不建议在生产环境中使用

    此参数禁止 SSL 证书验证。

    如果您不使用此参数,在元数据终结点使用自签名的 SSL 证书时,cmdlet 将无法检索元数据信息。

    PortalConnectionString

    可选的,除非未提供 ConnectionString

    使用此参数来仅覆盖配置存储区的默认连接字符串。

    在以下情况下应这样做:

    - 门户配置存储使用不同的凭据。

    - 不想使用默认连接字符串。

    示例 cmdlet:

    Set-MgmtSvcIdentityProviderSettings –Target Membership  –MetadataEndpoint ‘https://mytenantportal.contoso.com:23456/FederationMetadata/2007-06/FederationMetadata.xml’ -ConnectionString “Data Source=mysqlserver.contoso.com;User ID=myprivilegeduser;Password=mypassword”
    

    提示

    • 此 cmdlet 可用于安装 Windows Azure Pack Windows Azure PowerShell更新的任何计算机上。

    • 更新的设置将最终传播到所有受影响的组件。 为了更快地传播,请手动重新启动受影响的组件以立即提取新的配置值。 如果目标是“成员资格”,应重新启动所有租户(成员资格)身份验证网站。 如果目标是“管理员”,应重新启动所有管理员 (Windows) 身份验证网站。