Discuss this help topic in SecureBlackbox Forum

SAML IdP server initial setup

TElSAMLIdentityProvider is a low-level component, which acts like an incoming data parser. All socket-related operations should be implemented by the developer. One TElSAMLIdentityProvider instance is used for each incoming connection.

The identity provider interacts with one or more service providers (SPs), represented by TElSAMLServiceProvider class. The following event handlers must be implemented and assigned to the listed events to make TElSAMLServiceProvider work:

  • OnOpenConnection - is fired when the incoming connection is established.
  • OnSend - is used to send outgoing data to a client.
  • OnReceive - is used to receive incoming data from a client.
  • OnCloseConnection - is fired when the connection is closed.

The identity provider interacts with SPs that may have a lot of different options and requirements for IdPs. Usually all these options, together with the X.509 certificates required for data exchange, are stored in XML metadata files. Such file can be loaded using TElSAMLServiceProviderInfo.LoadMetadata() method. Each TElSAMLServiceProviderInfo object should be added to the IdP's list of known SPs by calling TElSAMLIdentityProvider.AddServiceProvider().

Assign an instance of TElMemorySessionManager class to your IdP's TElSAMLIdentityProvider.SessionManager property. TElMemorySessionManager class is responsible for storing session information. One TElMemorySessionManager object can be shared between multiple TElSAMLIdentityProvider objects.

Finally, another property that should be assigned is TElSAMLIdentityProvider.AuthSource. This property refers to a descendant of TElSAMLIDPCustomAuthSource class, which is used to create, store and verify users' credentials, and can be shared between several TElSAMLIdentityProvider objects. To keep user credentials in computer memory, initialize it with an instance of TElSAMLIDPPasswordMemoryAuthSource.

Examples:

C#:


TElSAMLIDPPasswordMemoryAuthSource src = new TElSAMLIDPPasswordMemoryAuthSource();
src.Add("username", "password1");
src.Add("anothername", "password2");

How To articles about SAML Identity Provider (IdP)

Discuss this help topic in SecureBlackbox Forum