10

我正在使用 SAML 令牌对一组 REST-ful 服务进行身份验证,方法是将 SAML 令牌放在Authorization标头中。

我找不到任何表明有标准方法可以做到这一点的东西。例如,我是否使用:

Authorization: Bearer <EncryptedAssertion ...

或者:

Authorization: Bearer PEVuY3J5cHRlZEFzc2VydGlvbiAuLi4=

或者:

Authorization: SAML PEVuY3J5cHRlZEFzc2VydGlvbiAuLi4=

或者是其他东西?

请注意,如果证书具有多个名称组件,则第一个不起作用(因为逗号会弄乱标头解析)。

我使用'Bearer'这一事实并没有说明令牌的格式。

Apache CXF 似乎使用了第三种变体。

哪个是标准的?有标准吗?如果没有,是否有事实上的标准?

4

2 回答 2

6

HTTP 中自定义身份验证方案的标准在 RFC 2617 和 7235 中定义。

Authorization: scheme key="value", ...

我怀疑您的具体情况是否有标准,但我会说这是可以接受的:

Authorization: SAML bearer="PEVuY3J5cHRlZEFzc2VydGlvbiAuLi4="
于 2013-11-10T20:38:57.700 回答
4

在对该主题进行了大量研究之后,我找不到任何标准来定义如何在授权标头中使用 SAML 令牌。

然而,CXF 是一个非常著名的 Web-Serviec 堆栈,它以以下方式支持 SAML Token :

Authorization: SAML eJydV1m....9fYTCPr=

OAuth2 还定义了如何使用 SAML 令牌进行身份验证以接收 OAuth2 访问令牌,然后该令牌可用于调用另一个 REST 服务 ( https://www.rfc-editor.org/rfc/rfc7522 )

POST /token.oauth2 HTTP/1.1
Host: as.example.com
Content-Type: application/x-www-form-urlencoded

grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Asaml2-bearer&
assertion=PHNhbWxwOl...[omitted for brevity]...ZT4
于 2016-10-20T10:53:15.190 回答