单点登录链接
将 OpenID 单点登录链接添加到 PowerSchool 用户界面,需要在设计 PowerSchool 插件定义中提供 元素。
所谓 PowerSchool 插件,其实就是一个 plugin.xml 标记文件,当中规定了一些标签,用来定义一些客制化参数,这些参数决定了这个插件具备哪些功能和权限,并在安装后,告知 PowerSchool 如何做出响应。
以下 XML 代码示例为 MyApp 定义了一个插件,其中包含一个单点登录链接定义。
该链接将出现在 PowerSchool 中,并允许用户单点登录到 MyApp 应用程序,我们假设 MyApp 是你的一个应用程序,或是一个网站,它要依赖 PowerSchool OpenID 服务,用户输入自己的 PowerSchool 账号,来登录 MyApp 站点或应用。
链接查询参数(Link Query Parameters)
PowerSchool 官方文档原文如下:(需要授权账号方可查看)
PowerSchool 中显示的 OpenID 链接指向 PowerSchool 中的重定向地址。该链接包括预定义的以及客户端查询参数。
单纯从字面意思有点难以理解,经过实际测试之后,重新理解即:
成功安装到 PowerSchool 之后,就会开启 OpenID 登录功能,我们自己的 App 或网站登录界面,或者其他第三方网站,只需添加一个链接,例如 “通过 PowerSchool 登录“,链接地址为:
https://yourpowerschool.com/public/openid/oidredirectaction.action?pluginName=MyAppSSO&linkId=33
认证数据上下文
官方文档原文如下:
一旦 PowerSchool 对用户完成身份验证,PowerSchool 页面将被重定向到你在 plugin.xml 文件中指定的 元素的 path 属性中定义的单点登录路径。
神马意思?简单说就是用户一旦登录成功后,PowerSchool 页面就回跳回到你自己的网站页面,而这个网站页面的地址,是你在 plugin.xml 中指定好的。
重定向将包括到依赖方的一个或多个数据上下文。依赖方可以使用这些数据上下文在其应用程序中提供无缝的用户体验。
例如:PowerSchool 管理员通过 OpenID 登录后,被重定向后地址示例:
https://yoursite.com/openid/callback?openid_identifier=https://yourpowerschool.com/oid/admin/IamApsAdmin
又例如:教师通过 OpenID 登录后,被重定向后地址示例:
https://yoursite.com/openid/callback?openid_identifier=https://yourpowerschool.com/oid/teacher/IamApsTeacher
又例如:家长通过 OpenID 登录后,被重定向后地址示例:
https://yoursite.com/openid/callback?openid_identifier=https://yourpowerschool.com/oid/guardian/IamAparent&studentid=2303&studentidentifier=62542
又例如:学生通过 OpenID 登录后,被重定向后地址示例:
https://yoursite.com/openid/callback?openid_identifier=https://yourpowerschool.com/oid/student/IamAstudent14
结合上面四个重定向地址,综上所述,一旦用户通过 OpenID 成功登录 PowerSchool 后,页面重定向时传递的 openid_identifier 参数遵循如下规则:
https://[powerschoolserveraddress]/oid/[usertype]/[username]
页面重定向到你自己的站点之后,就可以根据传递过来的参数进行后续的操作,也就是说,你自己的系统无需再考虑用户登录部分的程序设计,你要做的只有记录重定向后的用户信息,知道这个用户究竟是谁,是什么用户类型就可以了。
部分 OpenID 应用场景需要获取令牌(Token),上述内容并未提到关于通过 Client ID/Secret 获取令牌(Token)的内容,请关注后续更新。