GAM Applications Registration process

Unofficial Content

What is GeneXus Access Manager Applications Registration for?

Applications Registration is a process of the Build (F5) of GeneXus. 

When GAM Applications are registered, GAM Permissions can be set over these applications so as to monitor who can access them. 

The code provided by GAM to the application in this process is used to identify the application in runtime.

When an Application is registered it is assigned a pair of keys to be authenticated. These keys are saved in the KB as well as in the GAM database. More specifically, for a Smart Device GAM Application, it is assigned Client Id and Client Secret information which identify the GAM SD application. The Client Id is used as an identifier of the application (it can be public) and the Client Secret is information that must no be revealed. Both are assigned to the main SD application in the GAM Applications registration process, and the infomation is updated in the GAM database.

For Web applications, the ID which identifies the application is specified in the Application Id property.

When is Application registration process executed?

Application registration is performed during Build and Rebuild when the GAM Applications information is modified. Specifically, when Auto-Register Anonymous User Property is updated, or Security Client Id property and Security Client Secret property is modified.

Application registration is also performed through the GAM - Applications Registration option of the GeneXus menu.

Depending on some factors, forcing the registration of applications may be necessary, or the Build operation could be enough.

How is Application Registration processed? What does F5 do?

First, as all the main SD objects need to have a Client Id, the F5 checks that the main SD objects have one. In case of new objects, they have no Client Id until the Applications Registration process is performed. Therefore, in this case performing a Build is enough for the Client Id to be generated, registered in GAM and stored in the KB.

The same happens if an xpz file is imported and it brings to the KB an object that doesn't exist in the KB. So, performing a Build is enough for the Client Id to be generated.

If a KB is taken from a mdf file of a KB which used another GAM, its objects already have their GUID and Client Id, so pressing F5 doesn’t generate a new Client ID or register the application in GAM. In this case performing a Build is not enough. You need to Rebuild or go through the GAM - Applications Registration option.

In general, when the GAM data store settings change (you change the settings in order to use another GAM database) or you change the Repository ID Environment property in order to use another GAM Repository of the same GAM database, performing a Build is not enough because the Client Id and Client Secret information must be generated again in the new GAM.

If you don’t want to Rebuild the entire application, you can use the Application Registration option of the GeneXus menu.

Note

If Reorganize server tables property is set to No, you will get the following warning during registration:

"Trying to register applications while Reorganize server tables property is set to NO. The process may fail if GAM database schema is not updated."