来自第三方id提供程序的简单活动联盟



我有一个安全的web应用程序,我希望将其公开给合作伙伴,以便他们的客户可以将信息直接捕获到我的应用程序上托管的表单中。

该表单将显示在合作伙伴web应用程序中嵌入的iframe中。iframe的URL将指向我的应用程序,并包含我在合作伙伴提供iframe之前向其颁发的某种形式的会话令牌。

我不想在我的应用程序中存储用户的凭据,我只需要一种机制来与合作伙伴验证用户是否经过了他们的身份验证,并被授权执行我主持的操作。

我已经研究过SAML和oAuth,但对于身份提供者来说,这两种方法似乎都非常复杂。我宁愿自己实现大部分复杂性,并为合作伙伴提供一种简单的集成方法。

即,关键是为身份提供商找到一个简单的解决方案

示例:

合作伙伴通过一些预定义的端点向我请求会话令牌(他们会指定用户需要执行的操作、用户的用户名或id以及验证响应的客户端令牌)。

https://myapp.com/getsession/?username=bob&action=action1&token=CLIENT_SESSION_token

我返回SERVICE_SESSION_TOKEN。

合作伙伴在其应用程序中嵌入带有以下URL的iframe:

https://myapp.com/action1/?username=bob&token=SERVICE_SESSION_token

我验证令牌,并为有权执行action1的用户创建一个经过身份验证的会话。

我返回action1的表单,它在iframe中呈现。

当用户提交表单时,我可以通过将iframe重定向到来通知合作伙伴

https://partner.com/action1_callback/?username=bob&token=CLIENT_SESSION_token&result=result

是否有支持这种协议的标准?oAuth和SAML使得身份提供非常复杂。

您看过简单Web令牌(SWT)吗?令牌有一个简单的格式,例如:

Issuer=partner.com&ExpiresOn=1262304000&Username=Bob&ClientSessionToken=B2202256-76A6-4527-8439-E6C3F017F414&HMACSHA256=AT55%2B2jLQeuigpg0xm%2Fvn7tjpSGXBUfFe0UXb0%2F9opE%3D

只有一个必需的参数HMACSHA256可以保护令牌不被篡改。CCD_ 2和CCD_。其他参数取决于您需要在令牌中传递的信息。

最新更新