ADFS服务证书更新介绍
说到ADFS(Active Directory Federation Services)服务,相信大家都已经了解了,ADFS服务我们可以理解为SSO(单点登录),在windows服务下, 主要应用到了windows azure或者office365的用户权限登录。
ADFS将活动目录拓展到Internet。要理解这一点,可以考虑一般活动目录设施的工作原理。当用户通过活动目录认证时,域控制器检查用户的证书。证明是合法用户后,用户就可以随意访问Windows网络的任何授权资源,而无需在每次访问不同服务器时重新认证。
ADFS将同样的概念应用到Internet. 我们都知道Web应用访问位于SQL Server或其他类型后端资源上的后端数据。对后端资源的安全认证问题往往比较复杂。可以有很多不同的认证方法提供这样的认证。例如,用户可能通过RADIUS(远程拨入用户服务认证)服务器或者通过应用程序代码的一部分实现所有权认证机制。
这些认证机制都可实现认证功能,但是也有一些不足之处。不足之一是账户管理。当应用仅被我们自己的员工访问时,账户管理并不是个大问题。但是,如果您的供应商、客户都使用该应用时,您会突然发现您需要为其他企业的员工建立新的用户账户。不足之二是维护问题。当其他企业的员工离职,雇佣新员工时,您需要删除旧的账户和创建新的账户。密码也是一个问题。另一ADFS的主要组件是ADFS Web代理。Web应用必须有对外部用户认证的机制。这些机制就是ADFS Web代理。 ADFS Web代理管理安全令牌和向Web 服务器发放的认证cookies
今天主要介绍的环境为windows azure及office365环境下部署服务,因为部署ADFS的服务的时候,需要一张带私钥的证书才可以完成整个配置,配置长期使用后,证书如果过期了,我们需要更新证书才可以正常使用。今天就介绍当ADFS服务过期了如何更新证书。具体见下:
https://support.microsoft.com/zh-cn/kb/2921805
注:如果环境内部署了ADFS服务的话, online skype for client登录(本地AD用户同步到online的用户)的时候,需要通过adfs服务进行验证,所以ADFS证书需要受公网的信任才可以
注:ADFS服务器不建议安装IIS服务,如果安装了会有遗留问题。
https://technet.microsoft.com/zh-cn/library/dn194098.aspx
最后发现,我环境中的ADFS服务器的证书不受信任,所以也无法登陆,所以我们也需要为当前ADFS服务器更换证书
由于需要受互联网的信任,所以我们需要申请公网证书
我们首选需要为ADFS提交一个证书申请,然后生成对应的csr文件
我们在ADFS服务器的iis管理控制台下;服务器证书----创建证书申请
免费公网证书申请
在此我们使用沃通
https://www.wosign.com/
https://buy.wosign.com/ProductList.html
我们定义需要申请的SSL证书域名名称
提交后,我们需要提交CSR文件来生成证书
我们单击提交CSR选项,然后选择---方式二,自己提交CSR文件
提交后,我们单击下载证书
下载后,我们使用IIS这个证书就可以了
然后我们需要将该证书完成创建及,导入带有私钥的证书
完成证书申请
我们导出该证书
证书导出完成
https://support.microsoft.com/zh-cn/kb/2921805
证书准备好后,我们解析来就是在ADFS服务器本地计算机存储中安装新的证书
注:由于我们在ADFS服务器上的IIS上申请证书的,所以我们无需要下面操作的步骤,我们第一步跳过即可
在本地计算机证书存储中安装新的证书
步骤 1: 在本地计算机证书存储中安装新的证书
按照以下步骤为新安装的本地计算机证书存储中的证书。
然后单击 [启动]、 [运行]。
「MMC"并输入。
[文件]从 [添加 / 删除管理单元中单击。
[管理单元]从列表 [证书],然后选择 [添加单击。启动证书管理单元向导。
选择计算机帐户,然后单击下一步。
选择本地计算机: (运行此控制台的计算机),然后单击完成。
[请单击确定。
控制台根 \Certificates (本地计算机) \Personal\Certificates展开。
[证书[所有任务]、 [导入] 右键单击,然后单击。
步骤 2: 添加新证书的专用密钥访问 AD FS 服务帐户
添加新证书的专用密钥的权限 AD FS 服务帐户,请执行以下步骤。
只是继续打开本地计算机的证书存储区选择导入证书。
用鼠标右键单击证书,然后 [所有任务]、 [管理专用密钥] (私有密钥管理) 单击。
注意:您需要运行以下命令,如果不能管理私钥。
certutil -repairstore my *
ADFS 服务授予读取权限或更高版本上的帐户并添加正在运行的帐户。
以下步骤,我们需要我们只需要在ADFS2.0下运行,如果是ADFS3.0的话就无需要以下步骤了
运行在windows2008r2上的ADFS服务器(联合身份验证服务)是需要做以下第三步骤的配置的
运行在windows2012以上的ADFS服务器(联合身份验证服务)是不需要做以下第三步骤的配置的,直接跳过即可
S 管理器中,一个新的证书绑定到的 AD FS 的 Web 站点
使用 IIS 管理器,请按照以下步骤中,您的新证书链接到 AD FS Web 站点将。
打开 Internet Information Services (IIS) 管理器管理单元。
浏览到Web 站点的默认值。
右键单击默认的 Web 站点,然后选择编辑绑定。
[HTTPS]然后 [编辑单击。
从 SSL 证书中选择相应的证书。
然后单击 [确定]、 [关闭]。
步骤 4: 配置 AD FS 服务器服务要使用的新证书
注意:ADFS2.0版本为windows2008R2系统自带的windows活动目录联合身份验证服务;
windows2012以上版本为ADFS 3.0
可以使用 AD FS 服务器服务新证书,请按照以下步骤来配置。
打开 AD FS 2.0 管理。
AD FS 2.0 \Service\Certificates打开。
[证书右键单击 [设置服务通信证书] (服务通信的证书设置) 选择。
从证书选择列表中选择新的证书。
[请单击确定。
注意: 您可能会看到一个对话框,其中包含以下消息:
证书密钥长度是少于 2048 位。证书密钥大小小于 2048 位可能存在安全风险,并不建议。您还要继续吗?
后此消息 [是将显示以下对话框。
确保选定证书的专用密钥对此联合身份验证服务的服务器场中每台服务器上的服务帐户可以访问。
由于此过程完成后在第 2 步 [确定,然后退出。
我们已经可以看见证书的颁发者为:CN=CA 沃通免费SSL证书
注:如果有adfs代理服务器的话,我们需要直接重新运行ADFS的配置向导
最后我们发现替换证书后,没有生效,还是原来的旧的证书信息,所以我们需要手动强制更新;
首先查看当前本地计算机下的个人证书下的信息;我们查看到是有两张证书的,一张是原来的,一张是新申请的;
dir cert:\localmachine\my | fl
netsh http show sslcert | fl
我们删除默认证书即可;
netsh http delete sslcert hostnameprot=adfs.ixmsoft.com:443
最后总结,作为一个ADFS服务器不建议安装IIS服务
我们添加新的证书需要更具以上信息来新建添加
dir cert:\localmachine\my | fl
netsh http show sslcert | fl
certhsh= 指纹 appid=应用程序ID 添加新的证书信 netsh http add sslcert hostnameport=adfs.ixmsoft.com:443 certhash=F628589821160514BDFDBDC51BD2F9C4DCB9EA99 appid={5d89a20c-beab-4389-9447-324788eb944a} certstorename=MY