6

我看到goauthgo-oauth OAuth 库是为Go Programming Language编写的,但是在网上搜索了几个小时后,SAML却一无所获。

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

有谁知道 Go 友好的 SAML 库,或者可能有一些从 Go 程序中使用 Java、C 或 PHP 库的技巧?

4

3 回答 3

12

我用过gosaml,效果很好,但也有来自机器人和铅笔的 go-saml 。

我想在一年后,回答这个问题会很好,因为在这里为寻找 Go 的 SAML 库的人提供某种答案仍然很好。

于 2015-09-07T21:22:57.820 回答
4

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

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

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

于 2013-01-10T19:59:06.130 回答
3

如果您想在您的断言消费者端点中验证来自 AWS IdP 的 SAML 回复,那么您最好使用https://github.com/crewjam/saml,因为它不依赖于 libxmlsec1 系统库。

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

于 2019-10-02T14:21:23.767 回答