WAP默认登录方法是让用户自己通过邮件地址注册账户,或者管理员直接在管理门户中添加。然后用此账户登陆,通过添加订阅来使用各种服务。

clip_p_w_picpath002

但对于非运营商企业运用而言,企业如果通过WAP来创建自己的私有化云,当然不希望再多创建其他账号,而希望直接利用现有的AD账户登陆租户门户,提供各种云服务。

这节我们来看看WAP怎么和AD集成,使租户直接使用AD账号登陆。

我们这里需要利用Windows的ADFS(Active Directory Federation Services)服务,即活动目录联合服务。通过ADFS,可以把WAP和AD相集成。

 

1. 首先先配置租户门户证书。

之前每次登陆租户门户的时候,都会显示网站安全证书的问题提示。

因为默认情况下,WAP都会使用自签名证书,所以显示此网站出具的安全证书不是由受信任的证书颁发机构颁发的,或者是为其他网站地址颁发的。

clip_p_w_picpath003

我们在第16节中,已经安装了企业CA。所以这里我们直接打开IIS管理器,为网站配置证书。

1)进入IIS的服务器证书。

clip_p_w_picpath005

选择创建域证书。

clip_p_w_picpath007

填写证书信息

clip_p_w_picpath009

颁发机构就选之前创建的证书服务器,最后点击完成。

clip_p_w_picpath011

2)然后我们定位到租户门户网站,点击绑定,为租户门户网站更换证书

clip_p_w_picpath013

clip_p_w_picpath015

3)同样我们把租户认证网站也绑定证书。

clip_p_w_picpath017

做完以上操作后,我们登录租户门户试试,发现已经不再提示证书问题了。

clip_p_w_picpath019

 

2. 接下来要为ADFS服务申请证书

在16节中,我们曾经用命令行来申请证书,这次我们用UI界面来申请吧。

1)首先先到DNS管理器中,增加一个sc-adfs的DNS记录,作为ADFS的联合认证申明提供方的域名。

clip_p_w_picpath020

2)接着我们到证书服务器上,打开证书颁发机构,管理并复制Web服务器模板。

clip_p_w_picpath022

定义模板名称

clip_p_w_picpath023

允许导出私钥

clip_p_w_picpath024

安全中赋予ADFS服务器注册的权限。

clip_p_w_picpath025

3)模板做完后接着启用证书模板

clip_p_w_picpath027

4)最后我们到ADFS服务器上,打开MMC的证书来申请证书

clip_p_w_picpath028

设定公用名,使用之前新增的DNS:sc-adfs.scdemo.local。

clip_p_w_picpath030

查看结果,申请成功。

clip_p_w_picpath032

5)最后,我们来导出这个证书。

clip_p_w_picpath034

导出私钥

clip_p_w_picpath036

导出PFX的带有私钥的证书。

clip_p_w_picpath038

 

3. 现在我们可以来安装ADFS服务了。

1)首先打开添加角色和功能向导,选择ADFS角色,并点击默认安装。

clip_p_w_picpath040

2)安装后选择配置ADFS服务。

clip_p_w_picpath042

点击导入,这里选择我们之前创建的证书。

如果使用自签名证书的话,配置之后需要使用以下命令手动设置服务帐户的 SPN。

setspn -u -d host/$dnsname $username

setspn -u -s host/$dnsname $username

clip_p_w_picpath044

指定服务账户,这里有个警告提示,可以暂时忽略它。

clip_p_w_picpath046

指定数据库,这里选择安装在SQL服务器上。

clip_p_w_picpath048

确认选择后,点击下一步并点击配置。

clip_p_w_picpath050

 

4. 打开工具—ADFS管理,配置ADFS

1)配置信赖方信任,这样 ADFS就知道租户门户要通过它来得到信任关系。

右键点击信赖方信任,并选择添加。

clip_p_w_picpath051

在向导中点击启用

clip_p_w_picpath053

在联合元数据地址中,输入WAP租户门户地址,

https:// <Tenant Portal URI>/federationMetadata/2007-06/Federationmetadata.xml

clip_p_w_picpath055

输入租户门户的显示名称

clip_p_w_picpath057

余下的都默认即可

clip_p_w_picpath059

clip_p_w_picpath061

clip_p_w_picpath063

clip_p_w_picpath065

现在准备添加规则,这样 ADFS才会知道向租户门户发送什么声明。WAP 门户可以理解两种声明,UPN和Group。所以在 ADFS中必须创建四个规则来发出这些声明。

clip_p_w_picpath066

首先选择发送LDAP

clip_p_w_picpath068

这里要注意的,因为中文版的BUG,如果从下拉菜单选择*UPN的话,之后传递申明会出错。

这里手动输入UPN。

clip_p_w_picpath070

同样传出申明组的话,也输入Group

clip_p_w_picpath072

添加筛选传入声明。因为如果ADFS已经有了一个 UPN的话,需要额外添加两个规则,将 UPN 声明按原样传递。

clip_p_w_picpath074

UPN

clip_p_w_picpath076

Group,同样需要手动输入

clip_p_w_picpath078

最后添加完成的4个规则如下:

clip_p_w_picpath079

2)然后我们添加申明提供方信任。

clip_p_w_picpath080

在联合元数据地址中,输入ADFS服务地址,

https:// <adfs federation servicename>/federationmetadata/2007-06/federationmetadata.xml

clip_p_w_picpath082

设定显示名称

clip_p_w_picpath084

最后同样添加四个规则。

clip_p_w_picpath085

 

5. 为依赖方启用JWT 令牌,使其可以被发送到ADFS。

打开Powershell,输入以下命令:

Set-AdfsRelyingPartyTrust -TargetIdentifier 'http://azureservices/TenantSite' -EnableJWT $true

Get-AdfsRelyingPartyTrust -Identifier 'http://azureservices/TenantSite'

clip_p_w_picpath086

Set-AdfsRelyingPartyTrust -TargetName "WAP" -ClaimsProviderName @("ADFS")

clip_p_w_picpath088

 

6. 最后到WAP服务器上,配置租户门户通过ADFS服务认证

$fqdn = 'ADFS服务器FQDN'

$dbServer = '数据库实例'

$dbPassword = '数据库密码'

$portalConfigStoreConnectionString = [string]::Format('Data Source={0};Initial Catalog=Microsoft.MgmtSvc.PortalConfigStore;User ID=sa;Password={1}', $dbServer, $dbPassword)

Set-MgmtSvcRelyingPartySettings -Target Tenant -MetadataEndpoint https://$fqdn/FederationMetadata/2007-06/FederationMetadata.xml -ConnectionString $portalConfigStoreConnectionString

clip_p_w_picpath090

 

7. 最后我们登录租户门户,发现认证服务已经为ADFS服务了。

现在我们可以直接用域用户登录了。

clip_p_w_picpath091

这里提一下,如果AD中用户和之前租户门户的用户UPN都一致的话,就会直接应用租户门户用户的配置。如果是新的AD用户的话就会直接在WAP中创建同名账户。

这点可以在管理员门户的用户账户中确认。

clip_p_w_picpath093

 

8. 如果管理员门户进行AD集成的话,过程和租户门户基本一样。

在以下地方相应做修改即可。

1)信赖方元数据地址

clip_p_w_picpath095

2)管理门户配置ADFS认证

Set-MgmtSvcRelyingPartySettings -Target Admin

3)赋予AD用户管理员权限

Add-MgmtSvcAdminUser –Principal <admin account>