How to implement Single sign-on (SSO) / OpenID SSO |
Specify OpenID provider constraints and mappings in the configuration file.
The Genero OpenID Single sign-on (SSO) implementation provides a configuration file named configuration.xml in $FGLDIR/web_utilities/services/openid/res.
Some OpenID providers do not support all encryption and signature methods recommended in the specification. To bypass this issue, you can specify the supported method for each individual OpenID provider. By default, Genero OpenID implementation supports the strongest one.
Each server has a secured attribute that ensures that if a combination of encryption and signature method is not fully secured, the authentication process fails with a specific message in the log file.
If you set this attribute to false, the authentication process would not be fully secured as keys are exchanged between the OpenID provider and the Genero implementation on unsecured channels and thus vulnerable to malicious attacks.
If an OpenID provider uses the OpenID Attribute Exchange protocol, the configuration file must define an URL for each kind of attributes the OpenID provider supports.
<Server secured="true" provider="google.com"> <URL>www.google.com/accounts/o8/ud</URL> <Encryption>no-encryption</Encryption> <Signature>HMAC-SHA1</Signature> <AttributeProfile>http://openid.net/srv/ax/1.0</AttributeProfile> <Attribute name="email">http://axschema.org/contact/email</Attribute> <Attribute name="country">http://axschema.org/contact/country/home</Attribute> <Attribute name="firstname">http://axschema.org/namePerson/first</Attribute> <Attribute name="lastname">http://axschema.org/namePerson/last</Attribute> <Attribute name="language">http://axschema.org/pref/language</Attribute> </Server>
The identity provider given in the application configuration file must match an identify provider configured in $FGLDIR/services/openid/res/configuration.xml.
The response from the ID provider should contain the provider identity ("google.com" in the above example).
The AttributeProfile element indicates the method to retrieve the attributes.