我是SAML的新手,对预期的签名和信任流程感到困惑。
我正在为SP编程,并从IDP收到包含samlp:Response
的签名KeyInfo
:
<KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIC4DCCAcigAwIBAgIQRzFzcQiEKpFD2C+gNZ8cFDANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDEyFBREZTIFNpZ25pbmcgLSB0ZXN0Lmx1Y2lkYXV0aC5jb20wHhcNMTYwNTA2MDcyODM5WhcNMTcwNTA2MDcyODM5WjAsMSowKAYDVQQDEyFBREZTIFNpZ25pbmcgLSB0ZXN0Lmx1Y2lkYXV0aC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDqng7wxIkT7VpVJhQYgwWMngST4EhxWha+vI9/5V+D0nWZXp6MIMiFO7rv0n4+og7fdVXHjK9wL4cG9MVUMFpV8cxl7lmwKC/EomPbdsHZfCQ4QE/M+jHUDRoyeqSZgUO1oMigz65FzSdtRoM6A3TKasU5+ISttvGx66gkP5wuQUllBfDJxuVA+5qPVLas5/0s/CCyVbKPDqYwn/GMKsTc1ECy8oEeBOrfRzEsQrqlkLcoriMXYIRW92j4MWUTnz3Ce4zTGPldPl2ix/dVk02MoJEgK7NTDru+2yvo0QDIvzWWs0rltF26UdABqsiq+uuwYiKkGQpBldyjfqVvmwChAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKeywqRnNuBGaNB6k6wuDAK6Aknx28RXbJAMe9SkSAo6L16qbdRdL8JCGZCDRF7OI8GLMEZj+yStRPikEstBQYeOi+1OSDf6iqOr7LM/OURG3pNq/LUOdNJJcYUSuK3FPP4HSMOo6dOX5IHS+7OOh70CMg5dfdtjvHqb8ZsRUk30JX9nVcXXRO8Vqzgb7WjuVjGvz/zSR6Dy+f+N6UDerIauQxHPu81SasxEUE4R6pr/Tm80E6uoicp7VBtE8YGHBhag9c+rp/xLANJ+Oc0poKDvLr8odnlUvEgy5RQhqbPefQ9n8E5Pba2IA0w/tfsk0w/z2jNwgLzNCfJGyrGHiH4=
</ds:X509Certificate>
</ds:X509Data>
</KeyInfo>
我认为证书已包含在内,因此我无需猜测证书签署了哪些证书。
但现在这似乎没什么用处。似乎没有包含证书链。所以我真的不相信这种反应。
我认为证书可以通过第二个受信任的带外协议给我,但这似乎不是正确的解决方案,因为每次证书过期都必须重复。
如果给出X509链(例如SSL),这是一个很容易解决的问题。
考虑到证书可能会过期,有什么建议的方法来验证X509证书的信任?
答案 0 :(得分:2)
我认为证书可以通过第二个受信任的带外协议给我。
这是SAML实现通常做的事情。 SAML使用证书基础结构作为一种高度通用且可扩展的密钥材料通信方式。该规范对该元素的允许或建议内容,以及对依赖方的含义没有立场。作为一个具体的例子,假定不包括按值或引用包括X.509证书的含义。它的有效期,延期,撤销状态和其他相关内容可能会或可能不会被执行,由依赖方自行决定。&#34;
因为每次证书过期都必须重复。
由于到期通常不会强制执行并不重要。重要的是密钥更改(密钥翻转)。要处理证书通常从Idp发布的元数据加载。这意味着最终它是Idp上元数据端点的TLS证书,它是信任的基础。
在某些情况下,TLS不够信任(我在医疗保健方面经历过这种情况),并且证书只通过安全的带外通信渠道(例如在人会议中)进行交换。< / p>