Amazon web services 如何从我的应用程序向我的客户的SSO进行身份验证

Amazon web services 如何从我的应用程序向我的客户的SSO进行身份验证,amazon-web-services,single-sign-on,saml-2.0,adfs,adfs3.0,Amazon Web Services,Single Sign On,Saml 2.0,Adfs,Adfs3.0,我正在AWS上使用EC2开发一个web应用程序 在此应用程序中,我的客户机请求使用他的SSO(单点登录),以便我可以根据他的Active Directory验证用户。我的问题是我不知道从哪里开始,以下是我的一些问题: 1) 此SSO是在我的代码上还是在我的服务器上发生的 2) 我是否必须为不同的部署环境(例如aws、azure、digitalocean等)进行不同的配置 3) 我在哪里定义、发送和解析SAML2.0格式 4) 我是否具有向安装SSO的服务器发送POST请求的权限?或者它是如何管理

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

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

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

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

3) 我在哪里定义、发送和解析SAML2.0格式

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


到目前为止,我已经发现了这一点,但我仍然不知道首先要做什么,因此任何一步一步的信息都会有很大帮助。

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

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

  • SimpleSAMLphp(直接保护PHP资源)

  • 商业SAML(ComponentSpace等-如果.Net应用程序运行良好)

基本上,为你的堆栈找到一些东西不要尝试推出自己的SAML实现

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

然后向他们发送SAML2元数据以及属性使用者服务(ACS)URL和X509签名证书

示例元数据。或者你可以建造它

这些证书通常是长寿命的自签名证书。它们可以自签名,因为每一方都有另一方证书的副本,用于验证已签名的请求和响应

构建一个
SAMLRequest
,并将其发布到他们的SSO URL。这里有一个示例请求

它们向用户显示其登录页面,用户在其端进行身份验证

它们从用户的Active Directory中收集属性,并将它们转换为SAML属性,然后将它们放入
SAMLResponse

他们将
SAMLResponse
发布到您的ACS URL。这里有一个例子

您可以使用SAML2元数据中的X509证书验证其
SAMLResponse
上的签名

您可以从其已验证的
SAMLResponse
中提取SAML属性,并在应用程序中采取适当的操作,例如,为用户创建一个帐户,也许他们的电子邮件地址是他们的属性之一

如上所述,称为SAML2 Web浏览器SSO配置文件