Extending the built-in systems where OpenEdge performs user authentication
- Last Updated: January 17, 2024
- 2 minute read
- OpenEdge
- Version 12.8
- Documentation
Extending the built-in systems where OpenEdge performs user authentication
You can extend built-in authentication systems
where OpenEdge perform authentication (_oeusertable and _oslocal for
example) by using either the Data Administration Console or the
Data Administration tool to configure a built-in authentication
system with a callback. (See the online help for each tool for more
information.)
The following figure shows the Authentication
Systems dialog in the Data Administration tool. It lists the available
authentication systems in the Domain Type column.
Note that, in this case, the built-in _oeusertable authentication
system is extended by the callback, ABLcallback1 (where ABLcallback1 is
a procedure in a folder included in the PROPATH).

When _oeusertable or _oslocal are
configured with an authentication callback, user authentication
proceeds as follows:
- The application launches an OpenEdge-performed
user authentication operation.
For example, it executes the
CONNECTstatement with specified User ID (-U) and Password (-P) connection parameters. Or it executes theSECURITY-POLICY:SET-CLIENT( )method with an unsealed client-principal object initialized with the required user credentials. - After user credentials are validated, the AVM executes the
AuthenticateUserprocedure in ABLcallback1. (see Creating an ABL authentication callback procedure for more information aboutAuthenticateUser.)If user credentials are not valid, authentication immediately fails and the AVM does not execute the
AuthenticateUserprocedure. The AVM raises a general authentication failure error and control returns to the application.Note that Enable Authentication in the above figure is selected by default because
_oeusertable(as well as_oslocal) is predefined as enabled for user authentication. This enables theAuthenticateUserprocedure to execute and extend the built-in authentication system. This selection cannot be disabled. (Clear the Callback field if you do not want callbacks to run.) -
AuthenticateUserperforms whatever further authentication, or other checking that you might require. For example, you could check whether a user has exceeded a set number of logins in a given time period, and generate a customized error message if that condition exists. - Since the client-principal object is unsealed at this point, an authentication callback procedure can add additional information (user roles, for example) to the object.
- If the
AuthenticateUserprocedure returns success, the AVM seals the client-principal object in the LOGIN state. The AVM uses SSO to assign the authenticated identity to a database connection or an ABL session. - After using SSO to assign user identity, the AVM executes any optional
actions specified in the
AfterSetIdentityprocedure in ABLcallback1.The actions specified in
AfterSetIdentityextend the default SSO authentication process. However, since the client-principal object is sealed, you cannot change identity settings. You can initiate other actions, such as changing context information stored in an OpenEdge database. (See Creating an ABL authentication callback procedure for more information aboutAfterSetIndentity.)
If
the application later uses the sealed client-principal from step
5in another successful SSO operation, AfterSetIdentity also executes
as in step 6.