WAP默认登录方法是让用户自己通过邮件地址注册账户,或者管理员直接在管理门户中添加。然后用此账户登陆,通过添加订阅来使用各种服务。
但对于非运营商企业运用而言,企业如果通过WAP来创建自己的私有化云,当然不希望再多创建其他账号,而希望直接利用现有的AD账户登陆租户门户,提供各种云服务。
这节我们来看看WAP怎么和AD集成,使租户直接使用AD账号登陆。
我们这里需要利用Windows的ADFS(Active Directory Federation Services)服务,即活动目录联合服务。通过ADFS,可以把WAP和AD相集成。
1. 首先先配置租户门户证书。
之前每次登陆租户门户的时候,都会显示网站安全证书的问题提示。
因为默认情况下,WAP都会使用自签名证书,所以显示此网站出具的安全证书不是由受信任的证书颁发机构颁发的,或者是为其他网站地址颁发的。
我们在第16节中,已经安装了企业CA。所以这里我们直接打开IIS管理器,为网站配置证书。
1)进入IIS的服务器证书。
选择创建域证书。
填写证书信息
颁发机构就选之前创建的证书服务器,最后点击完成。
2)然后我们定位到租户门户网站,点击绑定,为租户门户网站更换证书
3)同样我们把租户认证网站也绑定证书。
做完以上操作后,我们登录租户门户试试,发现已经不再提示证书问题了。
2. 接下来要为ADFS服务申请证书
在16节中,我们曾经用命令行来申请证书,这次我们用UI界面来申请吧。
1)首先先到DNS管理器中,增加一个sc-adfs的DNS记录,作为ADFS的联合认证申明提供方的域名。
2)接着我们到证书服务器上,打开证书颁发机构,管理并复制Web服务器模板。
定义模板名称
允许导出私钥
安全中赋予ADFS服务器注册的权限。
3)模板做完后接着启用证书模板
4)最后我们到ADFS服务器上,打开MMC的证书来申请证书
设定公用名,使用之前新增的DNS:sc-adfs.scdemo.local。
查看结果,申请成功。
5)最后,我们来导出这个证书。
导出私钥
导出PFX的带有私钥的证书。
3. 现在我们可以来安装ADFS服务了。
1)首先打开添加角色和功能向导,选择ADFS角色,并点击默认安装。
2)安装后选择配置ADFS服务。
点击导入,这里选择我们之前创建的证书。
如果使用自签名证书的话,配置之后需要使用以下命令手动设置服务帐户的 SPN。
setspn -u -d host/$dnsname $username
setspn -u -s host/$dnsname $username
指定服务账户,这里有个警告提示,可以暂时忽略它。
指定数据库,这里选择安装在SQL服务器上。
确认选择后,点击下一步并点击配置。
4. 打开工具—ADFS管理,配置ADFS
1)配置信赖方信任,这样 ADFS就知道租户门户要通过它来得到信任关系。
右键点击信赖方信任,并选择添加。
在向导中点击启用
在联合元数据地址中,输入WAP租户门户地址,
https://
输入租户门户的显示名称
余下的都默认即可
现在准备添加规则,这样 ADFS才会知道向租户门户发送什么声明。WAP 门户可以理解两种声明,UPN和Group。所以在 ADFS中必须创建四个规则来发出这些声明。
首先选择发送LDAP
这里要注意的,因为中文版的BUG,如果从下拉菜单选择*UPN的话,之后传递申明会出错。
这里手动输入UPN。
同样传出申明组的话,也输入Group
添加筛选传入声明。因为如果ADFS已经有了一个 UPN的话,需要额外添加两个规则,将 UPN 声明按原样传递。
UPN
Group,同样需要手动输入
最后添加完成的4个规则如下:
2)然后我们添加申明提供方信任。
在联合元数据地址中,输入ADFS服务地址,
https://
设定显示名称
最后同样添加四个规则。
5. 为依赖方启用JWT 令牌,使其可以被发送到ADFS。
打开Powershell,输入以下命令:
Set-AdfsRelyingPartyTrust -TargetIdentifier 'http://azureservices/TenantSite' -EnableJWT $true
Get-AdfsRelyingPartyTrust -Identifier 'http://azureservices/TenantSite'
Set-AdfsRelyingPartyTrust -TargetName "WAP" -ClaimsProviderName @("ADFS")
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
7. 最后我们登录租户门户,发现认证服务已经为ADFS服务了。
现在我们可以直接用域用户登录了。
这里提一下,如果AD中用户和之前租户门户的用户UPN都一致的话,就会直接应用租户门户用户的配置。如果是新的AD用户的话就会直接在WAP中创建同名账户。
这点可以在管理员门户的用户账户中确认。
8. 如果管理员门户进行AD集成的话,过程和租户门户基本一样。
在以下地方相应做修改即可。
1)信赖方元数据地址
2)管理门户配置ADFS认证
Set-MgmtSvcRelyingPartySettings -Target Admin
3)赋予AD用户管理员权限
Add-MgmtSvcAdminUser –Principal