首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过SAML验证Perl中的login+password

通过SAML验证Perl中的login+password
EN

Stack Overflow用户
提问于 2019-06-25 20:59:12
回答 1查看 568关注 0票数 0

有没有可能在身份提供者(IdP)处通过SAML语言验证Perl语言中的login+password?如果是:如何?

我知道这不是SAML通常的工作方式。

其背景是,我们的web应用程序有4个不同的客户端,它应该通过SAML启用中央密码,这是用完全不同的技术实现的。

我们的产品经理认为SAML连接对于4个客户端来说太复杂了,因此身份验证应该集中在web应用程序中进行。

客户端将登录和密码传输到web应用程序,就像没有SSO一样,web应用程序应该集中验证访问数据。

EN

回答 1

Stack Overflow用户

发布于 2019-06-25 21:43:17

问题1:是否有可能在身份提供者(IdP)处通过login+password验证Perl语言中的IdP?如果是:如何?

应答

从网络安全的角度来看,肯定是No

问题2:我知道这不是通常的工作方式。

应答

是。你是对的。

(I) SAML规范定义了三个角色:用户、身份提供者(IdP)和服务提供者(SP)。在SAML处理的主要用例中,用户请求访问服务或从服务提供商登录到web应用程序。服务提供商请求并获得来自身份提供商的认证断言。基于此断言,服务提供商可以为用户做出访问控制决策,即,它可以决定是否允许用户访问服务或登录到web应用程序。

(II)在将基于主题的断言递送到SP之前,IdP可以向用户请求某些信息(诸如用户名和密码),以便对用户进行认证。SAML指定从IdP传递到SP的断言的内容。

( In )在SAML中,一个身份提供者可以向多个SP提供SAML断言。

( SP )同样,一个SP可以依赖和信任来自许多国内流离失所者的断言。如果您的产品经理决定请求web应用程序的所有4个不同客户端开发自己的SAML IdP,那么这将是您的web应用程序的SAML场景。例如,一些社交网站允许用户通过第三方身份提供商提供的身份验证登录到自己的网络帐户,例如谷歌、脸书、LinkedIn通过OAuth 2协议或OpenID连接协议/OAUTH2(代替SAML2)。

问题3:这个问题的背景是,我们的web应用程序有4个不同的客户端,它应该通过启用一个中央密码,这是用完全不同的技术实现的。

应答

如果您的web应用程序的4个不同的客户端应该通过SAML启用中央密码,那么它们可以使用完全不同的技术或编程语言实现自己的SAML IdP。

(I)例如,我们在Java中开发了以前版本的Zero-Password Authentication and Authorization System,并利用基于Java的Shibboleth IdP为企业应用程序提供SAML SSO。

我们在Scala中开发了具有可扩展性和高可用性的当前版本的Zero-Password Authentication and Authorization System,以便在没有Shibboleth IdP的情况下为企业应用程序提供原生的SAML。

(II)无论您的web应用程序的4个不同客户端使用哪种技术或编程语言来实现自己的SAML IdP,它们的SAML IdP只需要在本地使用中央密码数据存储/存储库(如OpenLDAP或MySQL)对其用户进行身份验证,然后使用SAML断言/SAML响应将用户信息传递给您的web应用程序/SAML服务提供商。您的web应用程序/ SAML服务提供商只需要将SAML断言携带的用户信息映射到您的web应用程序的本地用户信息。

问题4:我们的产品经理认为连接对于4个客户端来说太复杂了,因此身份验证应该集中在web应用程序中进行。

应答

如果用户身份认证需要在您的web应用程序中集中进行,而不是在SAML IdP中,那么从网络安全的角度来看,4个不同的客户端不需要实现它们自己的SAML IdP。

相反,您只需创建不同的子域并将其分配给所有4个不同的客户端,即web应用程序的所有4个不同的客户端访问不同的子域,例如client-org1.your-web-app.com、client-org2.your-web-app.com、client-org3.your-web-app.com、client-org4.your-web-app.com。

请注意,您的web应用程序的不同子域显示相同的登录网页。示例#1: client-org1.box.com,client-org2.box.com,如果您的客户端也订阅Box帐户,或者示例#2: client-org1.my.salesforce.com,client-org2.my.salesforce.com,如果您的客户端也订阅Salesforce帐户。

问题5:客户端将登录和密码传输到web应用程序,就像没有单点登录一样,web应用程序应该集中验证访问数据。

应答

您的web应用程序的不同子域显示相同的登录网页。您的web应用程序的4个不同的客户端访问您的web应用程序的不同子域,4个不同客户端的用户向您的web应用程序提交他们的登录和密码(通过不同的子域URL),就像没有SSO一样,您的web应用程序的数据存储/存储库应该集中验证访问数据(即登录用户名/密码)。然后,您的web应用程序的4个不同的客户端不需要任何SAML IdP。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56754676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档