通过 AD FS 实现到 Windows Azure Pack 的联合身份 – 第 2 部分,共 3 部分

原文地址:https://blogs.technet.com/b/privatecloud/archive/2013/12/17/federated-identities-to-windows-azure-pack-through-ad-fs-part-2-of-3.aspx

在前面的几篇博文中,Anders Ravnholt 讨论了 WAP 的安装和配置并讨论了使用 FQDN、端口和信任证书重新配置的细节。在这个系列中,我要讨论如何配置 AD FS,让它向 WAP 安装提供身份。

场景

Contoso 公司是一家服务提供商,托管了一个私有云环境,向他们的客户提供计算资源。Contoso 希望安装一个 Windows Azure Pack 堆栈并且实现以下功能:

  1. 向来自其 Active Directory 的用户提供管理访问
  2. 向来自 Fabrikam 公司(Contoso 的客户之一)的用户提供租户门户的自助服务。

 

在这个博文系列的第一部分,我们讨论了 Contoso 如何在他们的公司域中设置一个 AD FS 实例。

在这个第二部分中,我们将讨论 Contoso 如何设置 AD FS 实例和 WAP 管理门户之间的信任关系,并为它的用户提供到管理门户的访问。

第三部分中,我们将讨论 Contoso 如何在 Fabrikam 的 AD FS 和自己的 AD FS 之间建立信任关系,让 Fabrikam 的用户访问租户门户。

 

  Drawing1

人员

Rob 是基础结构管理员,负责维护基础结构。Rob 负责为 Contoso 公司安装 Windows Azure Pack。

Mary 是 Contoso Active Directory 中 pcloud.contoso.corp 域的管理员。Mary 拥有配置与这个域链接的 AD FS 所必需的权限。

Alan 是租户管理员,负责在 Windows Azure Pack 中创建和管理计划及订阅。

范围

在这个场景中,我们对环境有以下假设:

  • 在 pcloud.contoso.corp      域已经设置了 Windows Azure      Pack
  • 环境中的所有组件都配置了来自可信 CA 的证书
  • Alan 在 pcloud.contoso.corp      域中有一个用户 id
  • 环境中的全部组件均已经配置了来自可信 CA 的证书
          

关于读者,我们也有以下假设:

AD FS 与 WAP 建立联合

为了让 AD FS 能够向 WAP 提供身份,需要在两个地方进行配置:

  1. Mary 是域管理员,她需要将 WAP 管理员门户作为 AD FS 的依赖方加进来。这样,AD FS 就知道管理员门户会向自己请求身份。
  2. Rob 能够访问基础结构,他需要配置 WAP 管理员门户,将用户转发,对他们的身份进行验证。

AD FS 配置

  1. Mary 打开 AD FS 控制台,可以从 Server Manager 打开,或者从 mmc 控制台添加 AD FS 管理单元。
    image

  2. 在 AD FS 控制台中,选择 “Relying Party Trusts”  ,从 Actions 侧栏上单击  “Add Relying Party Trust” ,打开 “Add Relying Party Trust Wizard”
     

     

     

  3. Select Data Source 步骤,Mary 通过向导从 WAP 管理员门户选择联合元数据设置。联合元数据文件通常位于
    https://<adminPortalUri>/federationmetadata/2007-06/federationmetadata.xml
     
      
    这个元数据文件也可以从以上位置下载,并以文件形式导入向导中。

  4. 她为管理员门户指定友好显示名称并单击 Next。
       

  5. 向导的其余步骤配置多因素验证、发布授权规则等,目前这个场景不需要,所以保持默认值,完成向导即可。

  6. 成功添加依赖方之后,Mary 必须配置声明转换规则,这样 ADFS 才会知道向特定的依赖方发送什么声明,在这个示例中,依赖方是 WAP 管理员门户。WAP 门户可以理解两种声明,UPNGroup。所以在 AD FS 中必须创建四个规则来发出这些声明。

  7. “Add Transform Claim rule Wizard” 中,选择声明规则模板 ”Send LDAP Attributes as Claims”   并单击 Next。
      

    在下一步,Mary 提供一个友好名称,并选择 Active Directory 作为Attribute 库,在映射表中,将 User-Principal-Name 映射到传出的 UPN 声明。

    重复相同的过程添加 Group Claim。选择 Token-Groups – Qualified by Domain 映射到传出 Group 声明。

  8. 在某些情况下,AD FS 可能已经有了一个 UPN。要处理这些场景,则需要额外添加两个规则,将 UPN 声明按原样传递。在 “Add Transform Claim rule Wizard” 中选择 “Pass Through or Filter an Incoming Claim”  。
    image

    在下一步,她提供规则的友好名称,将传入声明类型指定为 UPN 并单击 Finish。
     

    Group Claim 重复同样的步骤。
     image

  9. 现在依赖方的全部四个规则都已经添加进来,最后她单击 Apply,完成声明转换规则。
       

  10. 现在作为最后一步,Mary 必须为依赖方启用 JWT 令牌。这一步不能通过用户界面进行,所以她打开 PowerShell 窗口,确认刚刚添加的依赖方设置。命令如下:

    1: Get-AdfsRelyingPartyTrust 

image

    11.  她注意到依赖方的身份通常是 “https://azureservices/AdminSite” ,确认 EnableJWT 值设为 False。现在需要将它设为 True 来启用 JWT 令牌。她使用以下命令来启用令牌:

    1: Set-AdfsRelyingPartyTrust 

             

现在,AD FS 的操作结束,可以继续了!

WAP 配置

Mary 配置完 AD FS 之后,基础结构管理员 Rob 就能接手了,他配置 WAP 管理员门户,将 AD FS加为身份提供程序。Rob 还必须赋予 Alan 管理计划和订阅以及维护 WAP 堆栈的权限。

  1. Rob 登录到 WAP 安装的机器,运行以下 PowerShell
    1: $fqdn = 'adfs.pcloud.contoso.corp'
    2: $dbServer = 'ContosoWAP'
    3: $dbPassword = 'pass@word1'
    4: $portalConfigStoreConnectionString = [string]::Format('Data Source={0};Initial Catalog=Microsoft.MgmtSvc.PortalConfigStore;User ID=sa;Password={1}', $dbServer, $dbPassword)
    5:  
    6: Set-MgmtSvcRelyingPartySettings -Target Admin `
    7:     -MetadataEndpoint https://$fqdn/FederationMetadata/2007-06/FederationMetadata.xml `
    8:     -ConnectionString $portalConfigStoreConnectionString

 $fqdn  变量包含的是 AD FS的联合服务名称 
  

        2.  现在余下的工作就是赋予 Alan 访问管理员门户的权限,即,将他添加为管理员。这项工作可以用以下 PowerShell 命令完成:

提示: Principal 参数指定的名称应该与 AD FS 提供的 UPN 精确匹配。

    1: $dbServer = 'ContosoWAP'
    2: $dbPassword = 'pass@word1'
    3: $portalConfigStoreConnectionString = [string]::Format('Data Source={0};Initial Catalog=Microsoft.MgmtSvc.Store;User ID=sa;Password={1}', $dbServer, $dbPassword)
    4:  
    5: Add-MgmtSvcAdminUser -Principal alanj@pcloud.contoso.corp -ConnectionString $portalConfigStoreConnectionString

       3. 现在 Alan 能够用自己的凭据登录到管理员门户。
                

成功了! Alan 现在可以从这里管理 Windows Azure Pack。

下一部分将介绍租户面的内容,以及如何将 Fabrikam 的 AD FS 与 Contoso 建立联合,提供租户身份。