I have looked into the PowerSchool's documentation on OpenID implementation. However, I believe it misses out on vital information i.e., how do we pass the required attributes. I have looked into sample implementations in other platforms. But, they seem to be different from what the documentation is talking about.
How do I go about implementing PowerSchool's Open ID in PHP in this case. After much struggle, I have got the 3rd party site to successfully perform the handshake, however, no attribute values are being retrieved and there are no errors, not even in the logs.
PowerSchool's Open ID SSO (Single Sign On) currently only works if the request is initiated from PowerSchool's site. Therefore, start off with creating the Open ID link plugin.
SSO Link Plugin
xyzps.com/admin/home.htmlLightOpenID
Head over to LightOpenID and add it to your project.
Authentication with PowerSchool and Attributes Requests
On the path mentioned in the plugin for openid host i.e.,
/openidloginadd the required attributes and redirect to the authentication url:Customize LightOpenID
Before proceeding we will need to modify the LightOpenID because it prefixes the attributes with
http://axschema.org/due to which no attribute value will be returned. To do this:Navigate to
LightOpenID.php->axParams()and changeTo
Navigate to
LightOpenID.php->getAxAttributes()and changeTo
Verify and Retrieve User's Attributes
On the path specified in Open ID's return URL i.e.,
authenticateopenid, verify the user and retrieve their attributes: