1

我对所有这些安全功能都是新手,最近我被要求研究 ADFS 2.0。我发现 ADFS 使用以下类型的 X.509 证书与依赖方 (RP) 进行通信:

  • 所有 RP 通用:1) 服务通信 2) 令牌签名 3) 令牌解密
  • RP专用:4)加密证书

请帮助我找出在涉及所有 3 个部分的实际生产场景中哪个是真正重要和需要的:用户、服务提供商(我们公司)、IdP(ADFS)(在客户的服务器上)。

1) 我在 MS 帮助中发现的第一个证书:“这是联邦服务器用作 Internet 信息服务 (IIS) 中的 SSL 证书的相同证书”我不确定这是真的,因为我能够单独替换它们不会相互影响,因此它们肯定可以并行运行。所以不知道这个证书是干什么用的。

2) 第二个是用于签署已发行的令牌,以便 RP 能够确保令牌确实由受信任的 ADFS 发行,而不是被拦截,对吧?

3) 第三个可能是出于相反的目的:ADFS 确保消息确实来自受信任的 RP。

4)特定RP的加密证书有助于加密整个消息(令牌),因此即使您获得https公钥并拦截来自ADFS的消息,您也无法读取它没有其他应该只有RP知道的公钥,正确的?

如果我错了,请纠正我。

所有这些证书都是可选的,Micorosoft 没有说明其中的重要性,我在 WIF SDK 中唯一提到的就是说在现实生活中最好使用令牌加密证书。问题是我们为 ADFS-RP 通信建立了 HTTPS 协议(IIS 设置为在双方都使用 https)。安全通信还不够吗?我想知道:我们真的需要 2)、3) 甚至 4) 吗?

4

2 回答 2

4

在现实生活中,您至少有两个:

1.) SSL 证书 - 现在只是常识,由SAML 2.0 SSO 配置文件推荐。这可能是与前端 ADFS 的 IIS 相同的证书。

2.) 令牌签名/验证(不是“解密”)证书 - 需要符合使用“前端通道绑定”(HTTP 重定向/POST)的 SAML 2.0 配置文件。如果您是身份提供者 (IdP),那么您将拥有私有签名密钥 - 如果没有,则只有证书(带有公共验证密钥)。实际上,这是为了验证断言已由受信任方发布,并且未被篡改。对于联邦来说,这绝对是至关重要的,否则任何人都可以进入您的环境(作为 SP (RP))。

An encryption certificate would indeed be used to encrypt portions of your SAML messages - which is common if you're trying to hide information that may be passed via a user's browser (like sensitive attributes within a SAML Assertion's Attribute Statement).

于 2011-12-23T04:53:50.503 回答
0

1 and 2 are mandatory.

ADFS will not let you add a RP binding via importing metadata if it's not a https connection.

The definition of a claim is "A statement about a subject; for example, a name, identity, key, group, permission, or capability, made by one subject about itself or another subject. Claims are given one or more values and then packaged in security tokens that are issued by a security token service (STS)". To ensure the validity of the token it needs to be signed.

Whether the token itself is encrypted depend on the security requirements.

于 2011-12-24T07:06:25.317 回答