是否有使用RESTful服务的SAML令牌的标准?

时间:2013-01-28 17:01:45

标签: rest saml

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

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

Authorization: Bearer <EncryptedAssertion ...

或:

Authorization: Bearer PEVuY3J5cHRlZEFzc2VydGlvbiAuLi4=

或:

Authorization: SAML PEVuY3J5cHRlZEFzc2VydGlvbiAuLi4=

或其他什么?

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

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

我怀疑你的具体案例有一个标准,但我认为这是可以接受的:

Authorization: SAML bearer="PEVuY3J5cHRlZEFzc2VydGlvbiAuLi4="

答案 1 :(得分:4)

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

然而,CXF是一个非常着名的Web-Serviec堆栈supports SAML Token,方式如下:

Authorization: SAML eJydV1m....9fYTCPr=

OAuth2还定义了如何使用SAML令牌进行身份验证以接收OAuth2访问令牌,然后可以使用该令牌来调用另一个REST服务(https://tools.ietf.org/html/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