Need to be able to configure multiple IdP options. The initial version of this may only require a restructure of the General tab's settings.
Global plugin settings:
Attribute Access (no change needed, the Shibboleth mappings should populate the same variables)
Default Login Method (this might switch from a checkbox to a select of {wp-login/User Choice, IdP 1, IdP2})
Automatic Login (no change needed, same logic as Attribute Access)
Disable Local Authentication (no change needed)
Login URL (local URL, typically /Shibboleth.sso/Login)
Logout URL (local URL, typically /Shibboleth.sso/Logout?redirect=<website home>)
Per-IdP settings:
New field: entityId (so we know which IdP they want to use)
New field: IdP short code (a couple letters so that we can provide direct links)
Password Change URL (for us to use this, we need to know which IdP the user is from)
Password Reset URL (for us to use this, we need to know which IdP the user is from)
Button Text (this will allow the user to differentiate between IdPs)
Other changes needed:
The user meta key shibboleth_account currently has a value of true. This may be an excellent place for us to store a short identifier like campus or c that has been configured as the short identifier for the configured IdPs.
The upgrade step would probably need to automatically assign a default identifier, such as default and update all of the existing meta keys so that it matches.
The identifier field should not be easy to accidentally edit. If we do allow updating that identifier value, we should also update the associated users to the new identifier.
When this identifier exists, if we receive a login request that provides the desired IdP identifier, we can automatically direct the user to the specified Login URL.
[x] On startup or install, convert old values to the new format (idp array values). This would take old values and insert them as the first idp in the array.
[x] Update shibboleth account "true" values to "default"
Need to be able to configure multiple IdP options. The initial version of this may only require a restructure of the General tab's settings.
Global plugin settings:
Per-IdP settings:
Other changes needed:
shibboleth_account
currently has a value oftrue
. This may be an excellent place for us to store a short identifier likecampus
orc
that has been configured as the short identifier for the configured IdPs.default
and update all of the existing meta keys so that it matches.