Overview
Yellowfin's Administration Service allows for integrating Yellowfin with essentially all third-party authentication processes. Primarily an authentication bridge will be used when implementing Yellowfin as a standalone application or even a tightly integrated application. But to integrate with a third-party authentication process, a custom bridge needs to be created. This bridge will match a user's credentials from a third-party source with those in the Yellowfin system. Usually the authentication source will provide a username, but at times a password and other user attributes, to authenticate the user.
Once a match is made with an existing Yellowfin user, the bridge will perform a Single Sign-On (SSO) of that user into Yellowfin. This can be done using either the LOGINUSER web service (which requires a password for the user to log in), or the LOGINUSERNOPASSWORD service, which allows the bridge to log a user in, using only their username. This seems ideal, since very rarely will there be a password available from the third-party source.
The bridge is not necessarily used to determine whether or not the user is allowed to log in. The fact that the bridge receives the username, means that the user has already been validated. However, sometimes it will be responsible for “asking” the third-party if the user is valid.
Sometimes there will be a need to auto-create the users if they do not exist in Yellowfin. This might require using additional information to create the user, like their email address, first and last names, etc. which should be sourced from the third-party application. The bridge can use the GETUSER or VALIDATEUSER web service functions to determine if a user exists in Yellowfin or not and the ADDUSER web service call to create a user. If bulk user creation is required, the ADDUSERS web service function can be called.
Part of the bridge process may also be to modify the user's Yellowfin role or group membership as part of the login process. If Yellowfin is integrated with a product where access to different content may change, it may be required to update this group membership during the login process. This would require sourcing information from the third-party source about which groups a user should be added to/removed from. The UPDATEUSER web service call will allow a user’s role to be modified and the INCLUDEUSERINGROUP or EXCLUDEUSERFROMGROUP calls can be used to add or remove from groups that determine which Yellowfin content they can access.
The bridge can be implemented in many ways, such as being integrated as:
- a part of Yellowfin itself (as a JSP, Servlet or Filter within the Yellowfin web application);
- a standalone application (GUI, console or web application) that communicates with the third-party source and Yellowfin;
- a part of the third-party application itself.
The best place to implement the bridge will depend on the environment and components involved.
When implementing within the Yellowfin container, the various implementation methods will allow for different functionality to be included. JSPs and Servlets allow for implementing code when the user is directed to a particular URL, whereas filters allow for checking authentication on any URL requested from the Yellowfin system.
Here is a basic process of what a Yellowfin authentication bridge needs to do:
- Get details via cookie, file, or network connection.
- Check if the user already exists?
- If user doesn't exist, then create user with the details provided.
- If required, update user's details (such as, role, group, etc.)
- Perform a SSO call to log the user in.
Note: If your authentication provider supports SAML, the Yellowfin SAML bridge can be used to SSO users.
Single Sign-on Functions