是否有针对The Go语言的SAML库?

时间:2012-09-07 02:11:35

标签: go saml-2.0

我发现goauthgo-oauth OAuth库是为Go Programming Language编写的,但在线搜索几个小时却没有为SAML提供任何内容。< / p>

我想使用Go来实现使用SAML进行Web服务的SSO支持,但是如果没有用于Go的SAML库,我将不得不将SAML逻辑“包装”在一个单独的服务中,用另一种语言实现。

有没有人知道Go-friendly SAML库,或者是否有一些使用Go程序中的Java,C或PHP库的技巧?

3 个答案:

答案 0 :(得分:6)

我使用了gosaml,效果还不错,但机器人和铅笔也有go-saml

我想一年之后,回答这个问题会很好,因为对于那些为Go寻找SAML库的人来说,这里仍然有一些答案。

答案 1 :(得分:4)

我还没有看到Go的SAML实现,但您可以使用已经在应用程序前面实现它的服务器。

最受支持的SAML实施之一是Shibboleth。 apache模块是最成熟的,并且可能是最简单的方法,因为您只需将您的应用程序放在apache中的反向代理之后。还有一个fastcgi身份验证器,它使用相同的后端,但我不能说它易于实现。

如果您只需要服务提供者,最简单的SAML绑定是HTTP-POST-SimpleSign。我在python中创建了一个proof-of-concept implementation,试图演示我能做到的最简单的SP。我没有声明这个模块的健壮性,但你可以看到可以完成没有太多的代码。假设您正在使用的身份提供商支持此绑定。和往常一样,在部署任何自定义安全相关代码时要小心。

答案 2 :(得分:1)

如果要在断言使用者终端节点中验证来自AWS IdP的SAML答复,则最好使用https://github.com/crewjam/saml,因为它不依赖libxmlsec1系统库。

由于某种原因,libxmlsec1无法成功验证来自某些IdP(AWS)的SAML答复(可能是由于某些未定义的名称空间)。