Skip to content

Loadable NameID builder

Paul Lemmers edited this page Jun 1, 2020 · 2 revisions

Loadable NameID assembly

Some institutions require more/different algorithms to build a NameID for the AuthnRequest to the SFO gateway.

Requirements

  1. Assembly loading in the OnAuthenticationPipeLineLoad() method. To avoid assembly loading problems during registration (registration does not call this method).
  2. Initialization with the full adapter set of attributes. Per adapter instance an instantiation of the NameID builder class (to allow for per instance member variables, although probably not required for most builders).
  3. Real call with the the original identity claim.
  4. Logging through log4net with constructor dependency insertion.
  5. Low level interface to allow for anything.
  6. Base class which already does the AD query and has an abstract method for attribute combination logic.

Distribution/sample

Interface and base class in the Adapter. Separate project in the solution with a console application to test assemblies. After cloning the repository, changing the namespace and the attribute combining method is enough. With the console application they can test if it works. If it does then adding it to the real Adapter/plugin should work.

Challenges

  • The setup/configuration program. It does not know about the attributes that the loadable NameID assembly requires. Reading and writing a dictionary from/to attributes is simple. However, the current Setting class is a single string. And the current adapter part has multiple strings (not a single dictionary).
Clone this wiki locally