整合Moodle和ASP.NET身份2.1



tl; dr :我想进行Moodle安装和基于ASP.NET身份的站点共享身份验证。如果他们有一个登录页面,那就好得多了,但是登录到一个页面应该自动登录另一个;还应共享注销。


我在 www.example.com/moodle 和另一个网站( o )上,有一个Moodle安装( m )> www.example.com 。

  • o 使用.NET 4.5.2编写,并且具有需要身份验证的区域,并使用自定义用户模型使用ASP.NET Identity 2.1进行管理。该模型不是特别复杂。它本质上是开箱即用的模型,但具有整数ID而不是GUIDS。
  • M 是2.6版,意图在不久的将来升级到最新版本(当前3.1)。
  • 两者都可以通过公共互联网访问;不需要在私人网络上访问它们。
  • 我知道没有计划将 m O 移至其他域。但是,如果一个或两个是要移动,我想他们会搬到 example.com.com
  • 的子域中

我想创建一个单符号系统,允许 m 的登录名也可以将用户记录到 o 中。就目前而言,我正在为Moodle使用外部数据库身份验证插件,并使用 m 参考 o 的数据库。在这种情况下,它确实要求用户登录两次。我想设置它,以便登录到 m o 也会将用户登录到另一个站点。ul>

  • 我能够从PHP和.NET代码中创建匹配哈希。除非与解决方案特别相关,否则请考虑从范围内创建哈希。
  • M 的一些用户正在使用Moodle的内置身份验证。但是,除非与解决方案特别相关,否则请考虑用户从范围中迁移。
  • 如果可能的话,我更喜欢 o 管理用户。 M ,从本质上讲,必须为用户拥有自己的记录,但是如果它们与外部DB插件使用的记录相似,我会喜欢用户存在并且可以在其他地方找到。
  • 我尝试,调查或考虑的事情:

    • Moodle的外部数据库插件。这就是目前的工作方式。它有效,但需要多个登录。
    • 自动化多个登录。我已经尝试将发布的凭据从服务器中提出HTTP请求时,将HTTP请求从网站登录时的各自的登录表单,将Cookie从响应中提取,然后将该Cookie发送回客户端。这也有效,但充其量是笨拙的,并且依赖于cookie没有离开同步。
    • 使用PHP的dotnet库并做...我能找到的所有文档都说dotnet与.NET 2.0、3.0或3.5以外的任何内容都无法使用。我正在使用4.5.2,所以这似乎是不做的。即使我可以将其与最新版本的.net一起使用。
    • ,我也不知道该怎么办。
    • 某种程度上让Moodle接受ASP.NET身份cookie代替自己的身份。鉴于它是一个可以管理的饼干,这似乎是最富有成果的课程。

    总结:我想制作 m o 共享身份验证。如果他们有一个登录页面,那就好得多了,但是登录到一个页面应该自动登录另一个;还应共享注销。这是可能的吗,有人知道我应该怎么做吗?

    也许看一下saml。

    我相信.NET 4.5支持SAML?

    https://msdn.microsoft.com/en-us/library/ms733083(v=vs.110).aspx

    在服务器上,安装simplesamlphp。

    https://simplesamlphp.org/docs/stable/simplesamlphp-p-p

    它既可以用作服务提供商,也可以用作身份提供商。

    然后在Moodle中安装此SAML插件:

    https://moodle.org/plugins/auth_saml

    相关内容

    • 没有找到相关文章

    最新更新