ADFS和依赖方令牌签名证书

我还没有完全掌握ADFS 2.0 / 3.0的依赖方令牌签名证书的function。 一旦发生自动自签名证书转换(默认情况下),有些情况下您必须手动将新的令牌签名证书(通常是)外部SSO应用程序提供者交付给他们,以便将新证书他们的结局,所以SSO将继续运作。

但是,这可能会自动发生。 我发现最好的解释是http://blog.kloud.com.au/2013/07/17/ad-fs-and-self-signed-token-signing-certificates-3/ :

[ADFS] …可以在到期前自动更新自签名证书,并且如果为自动联合元数据更新configuration了依赖方信任 ,则自动向依赖方提供新的公钥。 这种自动化使弹性的,低维护的联合服务成为可能,因为服务使用的密钥证书不需要定期关注。

问题是; 我如何知道是否为自动联合元数据更新configuration了信任方信任? 这是简单的,只是在信任这个设置(感谢谷歌图片search):

https://syfuhs.blob.core.windows.net/images/WindowsLiveWriter/5faa9c1bc727_ECC4/image_58.png

如果是这样,我怎样才能确保更新成功(除了可能的最后检查date),依赖方已经自动获得新的证书或公钥?

SAML2和WS-federation信任中有多个证书。 我将在这里忽略服务器的https url的TLS证书(ADFS称之为通信证书)。

每方都可以有签字证书。 该方发送的消息用该证书的私钥签名。 SAML2各方经常签署请求和答复。 WS-Federation被动不签名请求(所以被动RP没有)。 签名证书发布在元数据中。 在翻车期间,可以有两个(旧的和新的)。

每一方都可以有一个encryption证书。 当一个请求或响应被发送给一个带有encryption证书的一方时,那么这个证书的公钥可以用来encryption这个encryption密钥。 除了目标之外,使所有人都无法读取消息。 encryption证书发布在元数据中。 大多数情况下,只有一个encryption证书在元数据中发布。 但是,旧的证书被接受一段时间,使无缝翻车。

ADFS的自动翻转很酷。 我build议你这样离开,或者用一个有效期为10年的自签名证书来代替它。 如果ADFS具有其元数据的URL,则ADFS将遵循其合作伙伴发布的元数据。

在WS-Fed领域依赖各方,阅读Microsoft .NET(也称为WIF)应用程序。 这取决于应用程序。 应用程序可以发布他们的元数据,这对于ADFSpipe理员来说是很好的,因为他们不必input很多,带外的错误通信等等。 所以每个应用程序都应该发布其元数 对每个人都好。 但是对于被动的WS-Fed依赖方来说,将不会有签署证书。 可能有一个encryption证书。 .NET有类来读取和生成System.IdentityModel.Metadata中的元数据“per-request”。 在互联网上有几个样本。 他们的一个例子是Thinktecture IdentityServer。

依赖方可以读取ADFS元数据。 总是有一个计划任务可用。 它确实读取了ADFS元数据,然后更新了应用程序的web.config文件。 我从来没有使用过它,因为它有一个池回收的副作用(即使没有变化),它用老版本的web.config打开目录。 如果您在编码阅读器或书写器时遇到困难,请联系我离线。 它可以为任何应用程序(也适用于SharePoint)完成。 这是一个成本问题,手动(每年一次)或编写代码自动执行。

当回复方使用您的AD FS服务时,您无法控制回复方应用程序的工作方式。 您需要与他们合作以减less停机时间。

http://www.maplelanetechnologies.com/Blog/Post/6/ADFS-3-0–Token-Signing-Certificate-Renewal-and-Service-Downtime

可以自动发生。

不止于此,它会自动发生! 您的证书每隔X天自动更新一次,X是属性“CertificateRolloverInterval”的值(或者可能是“CertificateDuration”,我有疑问;运行Get-ADFSProperties来检索它们)。

我如何知道是否为自动联合元数据更新configuration了信任方信任?

你不知道…这不是由你的ADFS服务器控制的。 另一方决定是否定期检查元数据。 那么,显然,如果您更改证书,并且您的SSO中断,那么您知道另一方不validation您的ADFS …

您的打印屏幕会显示相反的内容,即显示您正在检查对方的元数据。 如果您将此打印屏幕发送给您的合作伙伴,他们知道他们可以“安全地”更改他们的证书。

最后一点:根据我的经验,内置此“自动更新”function的唯一应用程序是ADFS本身。 即使Sharepoint和Dynamics CRM也没有。 所以我觉得它很无用。

因此,最后,我的build议是禁用ADF的“AutoCertificateRollover”属性,并自己pipe理您的证书。 优点是,您使用所需的证书,并select了过期date(对于TEST环境,将过期date设置为50年后,非常有用)。 并在您的日历中写一个很大的提醒,当您的证书即将到期时更新您的信任!