公共网站上的SSO:如何检测用户是否是本地用户

时间:2018-05-22 09:43:27

标签: asp.net single-sign-on saml

我目前正在公共网站中集成SSO(SAML),该网站允许来自特定网络的本地用户自动登录,并且公共用户使用表单身份验证登录。当用户登录时,他将网站看作每个人,但有一个管理菜单,允许他导航到后端。

为了知道要遵循哪个身份验证过程,如果用户确实是来自该网络的本地用户,或者只是公共用户,我需要知道服务器端。

这里有什么合适的技术可以帮我确定吗?当您使用本地SSO托管公共网站时,通常如何进行?通过获取其网络的公共IP地址列表?通过使用客户端浏览器进行资源检测?

1 个答案:

答案 0 :(得分:0)

最典型的解决方案是基本比较IP地址,然后决定应该使用哪种身份验证方法。无论您是否或其他一些SSO解决方案或IdP,执行或处理身份验证的人员都无关紧要。在一天结束时,本地与外部会为您建立一个规则和条件来进行区分,而该规则通常基于IP模式,这需要由您或SSO / IdP解决方案实施。

此解决方案并非没有警告,因为IP地址可能会被欺骗。所以YMMV。

另请注意,有一个名为SPNEGO的东西,主要用于工作站内的基于Windows的身份验证方案(思想库或实验室)与Active Directory相结合。任何"本地"能够通过紧密接入Windows / AD环境来利用SPNEGO的用户应该能够无形地"登录,而SPNEGO外部的外部用户可以使用基于表单的authn和SAML。鉴于上述假设,这可能是一个解决方案,并且大多数SSO / IdP解决方案都为SPNEGO提供支持。

请注意,在任何一种情况下,SPNEGO都不适合胆怯的开发和/或配置。