首页 > 解决方案 > 使用自定义服务器的 Moodle 中的 SSO

问题描述

有一些学校要我为他们创建moodle网站,他们需要以下逻辑

1-学生在他们的系统中注册

2-登录应该在他们的系统中完成

3-当我打开moodle的登录屏幕时,我应该有登录按钮,当学生按下它时,我应该将他重定向到外部登录页面

4-学生将输入用户名和密码,然后按登录

5-系统应该返回代码并将学生重定向到我系统中返回代码的页面

6-然后我系统中的这个页面应该使用此代码发出另一个 API 请求,以获取访问令牌和学生数据,例如(电子邮件、姓名等)

7-获得学生数据后,我应该在我的数据库中搜索它

8-如果已经找到我应该让用户静默登录我的系统并将学生重定向到他的仪表板

9-如果没有找到,我应该在系统中创建学生,然后让学生静默登录并将他重定向到他的仪表板

10-以后每次学生打开moodle时,我都应该验证令牌是否仍然有效或已过期,如果已过期,我应该强迫学生再次去#3

谁能建议如何在moodle中实现这种逻辑?

我已经在moodle中启用了restful web服务,我找到了如何使用api方法在moodle中创建用户,但是我找不到登录或注销

请帮忙

标签: phpmoodlemoodle-api

解决方案


Moodle 中已经有很多身份验证插件

https://docs.moodle.org/38/en/Authentication

包括 OAuth2

https://docs.moodle.org/38/en/OAuth_2_authentication

但我们倾向于使用 SAML2,它是 Catalyst 提供的可靠插件,可与大多数 SSO 系统配合使用。

https://moodle.org/plugins/auth_saml2


推荐阅读