【问题标题】:How to authenthicate from my application to a SSO of my client如何从我的应用程序向我的客户的 SSO 进行身份验证
【发布时间】:2018-10-18 00:45:21
【问题描述】:

我正在 AWS 上使用 EC2 开发一个 Web 应用程序。

在此应用程序中,我的客户请求使用他的 SSO(单点登录),以便我可以根据他的 Active Directory 验证用户。我的问题是我不知道从哪里开始,这些是我的一些问题:

1) 这个 SSO 是发生在我的代码上还是发生在我的服务器上?

2) 我是否必须针对不同的部署环境(例如 aws、azure、digitalocean 等)进行不同的配置?

3) 我在哪里定义、发送和解析 SAML 2.0 格式?

4) 我是否向安装了 SSO 的服务器发送 POST 请求?或者如何管理?

到目前为止,我已经找到了这个tutorial,但我仍然不知道先做什么,所以任何一步一步的信息都会有很大帮助。

【问题讨论】:

    标签: amazon-web-services single-sign-on saml-2.0 adfs adfs3.0


    【解决方案1】:

    首先,您需要客户端(身份提供者 IdP)SAML2 元数据。这将有他们的 SSO 端点 URL 和他们的 X509 签名证书。

    然后您将您的 SAML2 元数据连同您的属性消费者服务 (ACS) URL 和 X509 签名证书一起发送给他们。

    样本元数据here。或者你可以构建它here

    证书通常是长寿命的自签名证书。它们可以自签名,因为每一方都有对方证书的副本,他们将使用该副本来验证签名的请求和响应。

    您构造一个SAMLRequest 并将其发布到他们的 SSO URL。有一个示例请求here

    他们向用户显示他们的登录页面,并且用户在他们结束时进行身份验证。

    他们从 Active Directory 中为用户收集属性并将其转换为 SAML 属性并将它们放入 SAMLResponse

    他们将SAMLResponse 发布到您的 ACS URL。有一个示例响应 here

    您使用他们的 SAML2 元数据中的 X509 证书验证他们的 SAMLResponse 上的签名。

    您从经过验证的SAMLResponse 中提取 SAML 属性,并在您的应用程序中采取适当的措施,例如为用户创建一个帐户,也许他们的电子邮件地址是他们的属性之一。

    以上称为 SAML2 Web 浏览器 SSO 配置文件,解释为 here

    【讨论】:

      【解决方案2】:

      根据您的堆栈,您可以使用以下内容:

      • Shibboleth(中间件,安装在您的服务器上,它会中断对需要针对身份提供者 [ADFS] 进行身份验证的特定路径的请求,并在成功验证设置一些属性后返回用户,告诉您有关用户的信息,例如用户名, ETC。)。 如果您可以将受保护的内容划分到网站上的特定路径(如 /secure)中,效果最佳。

      • SimpleSAMLphp(直接保护PHP资源)

      • 商业 SAML(ComponentSpace 等 - 适用于 .Net 应用程序)

      基本上,为您的堆栈找到一些东西。 不要尝试滚动您自己的 SAML 实现!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-30
        • 2021-01-18
        • 1970-01-01
        • 2018-03-05
        • 2011-09-18
        • 1970-01-01
        相关资源
        最近更新 更多