使用SAML令牌通过OAuth进行身份验证

时间:2019-04-26 05:55:28

标签: oauth saml keycloak

只需启动POCing KeyCloak即可将LDAP连接到用户联盟(真的很简单!),并使用Node.JS设置SAML服务提供程序(花了更多时间来正确配置)。参见POC

问题:

使用KeyCloak作为唯一的身份提供程序,是否可以将第三方服务(Appian)设置为SAML服务提供程序,并使用接收到的SAML用户名和/或令牌(session_index)来请求OAuth令牌?

最好是幕后的第三方(受信任)服务将发出OAuth请求(带有客户端ID?)以获取访问令牌,并使用该令牌进行API调用。

似乎可能有两个KeyCloak客户端,一个用于SAML,一个用于OAuth,但随后KeyCloak将能够在幕后协调身份验证。

1 个答案:

答案 0 :(得分:0)

您可以将SAML断言(而不是其解码的内容)交换为oAuth访问令牌。 RFC 7522(用于OAuth 2.0客户端身份验证和授权授予的SAML 2.0配置文件)中描述了此流程。实际上,这是一个奇特的用例,很难实现。假定请求者(客户端)具有从IdP获取SAML响应并将其用于获取oAuth访问令牌的方法。最重要的是,很少有支持RFC 7522交换的IdP。目前,Keycloak不支持它。

您正在考虑的用例的一个更直接的变化是,客户端无需身份提供者/授权服务即可请求任何令牌(SAML,oAuth等)的能力。重新认证。对于某些提供商,这是可能的,但是这些机制是每个提供商专有的。例如,如果您发送具有特定格式的Salesforce会话ID的请求,则Salesforce Identity服务允许获取各种令牌。