Applications that use GeneXus Access Manager (GAM) can be Identity Providers. In a scenario with an Identity Provider and one or more client applications, the applications will use GAMRemote Authentication Type to authenticate using the Identity Provider (from now on, the server).
Each client application may be connected to a different GAM database and have Integrated Security enabled. Otherwise, depending on your solution, you can use the same GAM database for all. See SAC 43517 for more details on this topic.
When the client authenticates, its behavior is the same as when an application authenticates to Facebook or Twitter, because a session is generated in the Identity Provider and used by the application while it continues to be valid.
That's why this functionality is very useful for implementing Single Sign On in applications.
The necessary configuration for this authentication type includes the following steps:
1. Identity Provider (Server) Configuration
The Identity Provider must be configured using the Client Application URL. This information must be provided to the server administrator.
2. Defining a New GAM Application
Given the Client Application URL information of the first step, a new GAM Application has to be defined in the Identity Provider. The administrator will configure the Application using some Client Id and Client Secret values. Afterward, these values have to be given to the Client's administrator to configure his GAM.
3. Client Configuration
In the GAM client, the GAMRemote Authentication Type is going to be configured, using the Application credentials (Client Id and Client Secret) given by the Identity Provider's administrator (obtained in the previous step). The Remote server URL will also be needed.
HTTP Error 403 - Forbidden: could appear if a default document is not configured for the requested URL, and Directory Browsing is not enabled on the server.
- Open IIS Manager
- In the Features view, double-click Directory Browsing
- On the Directory Browsing page, in the Actions pane, click Enable.
For more information, see Identity Provider Configuration and Client Configuration.
See GAMRemote Authentication type for Native mobile applications.
- When authenticating through the Identity Provider, the user is created or updated in the client GAM database using the same GAM User GUID from the GAM of the Identity Provider. The password is stored only in the GAM of the Identity Provider.
- The default data transferred from the Identity Provider database to the client is: Guid, Username, EMail, First_Name, Last_name, External_id, Birthday, Gender, Url_image, Url_profile, Phone, Address, City, State, Post_code, Language, Timezone.
- When additional data must be passed (such as dynamic attributes of GAM User), you must, then, add "gam_user_additional_data" additional scope at the GAM remote Authentication Type configuration, and check the "Can get user additional data" at the Indentity Provider's configuration. As since GeneXus 16 upgrade 7 you have the &AuthenticationTypeGAMRemote.GAMRemote.AddUserAdditionalDataScope property, which sets the "gam_user_additional_data" automatically at the client.
- The password Security Policies applicable are those of the Identity Provider GAM.
- The applicable security policies not related to the password are those of the client GAM database.
- The information required must be completed on the server and also on the client. So, if the server security policies require the email address, its entry will be requested. Likewise, when any other data is required in the client GAM, it will be asked to complete it as well.
See Logout options for Single Sign On using GAM.
- The Identity provider may use all authentication types (Local, Custom, OAuth 2.0, Google, etc.).
- The solution of GAMRemote Authentication is based on OAuth 2.0.
Single Sign On in applications using GAM
Managing Roles in applications using SSO