为学校项目设置SSO防护罩



我和一个团队正在建立一个网站,该网站本应用于我们学院的考勤目的。最初,我们使用Lamp创建了自己的数据库,并处理了所有自己的登录。但现在我们的任务是转移到AWS,但增加了一项要求。他们希望我的登录页面通过我们学校的画布使用sso。现在我对它是什么以及它是如何工作的有了大致的了解,但我找不到任何东西来帮助我设置它。最初,我的登录页面使用php和数据库通信。但我不知道如何设置我的登录页面以使用sso对用户进行身份验证。这所学校在画布上使用了shibboleth sso系统。

我建议您使用emerSSL作为SSO登录系统。我认为,这将是你们学校项目的绝佳解决方案。此页面包含Apache和Nginx web服务器的文档和PHP代码示例:https://emerssl.emercoin.com/

由于您的学校使用Shibboleth作为SAML身份提供商,您可以使用mod_auth_mellon作为Apache http服务器或SimpleSAMLPHP作为SAML服务提供商。SAML将被用作基于网络浏览器的单一登录技术

如果您熟悉OAuth技术,SSO身份验证过程在概念上与OAuth类似。

您的登录页面将用户发送到第三方(在本例中为Shibboleth实例(,而不是直接与数据库通信。

第三方将对用户进行身份验证,并将其发送回您的应用程序。URL中会有一个签名的SAML响应——您需要将此字符串解码为包含用户帐户信息的XML文档。

然后,您将获取这些信息,即用户的电子邮件地址,并使用它通过创建会话将他们登录到您的应用程序中。

由于您正在构建一个单租户应用程序(只有来自这所学校的Shibboleth IDP的用户才能登录(,因此与需要支持多个租户相比,您的时间会更轻松。

有了这些概述,我建议查看OneLogin的开发人员网站和PHP工具包-https://developers.onelogin.com/saml/php

该教程主要针对作为身份提供商的OneLogin,您需要了解如何在学校的Shibboleth实例中实现等效功能,以便在Shibboletth和您的应用程序之间创建安全的握手。

我还是一个开源项目的维护者,该项目在这方面可能会有所帮助,但主要面向多租户。如果这似乎对你有用,我很乐意提供帮助-https://github.com/enterprise-oss/osso

最新更新