...
Numberedheadings | ||||||
---|---|---|---|---|---|---|
| ||||||
IntroductionIt often is the case that a user may have multiple identities he/she would like to associate with their local account. For example, a scientist may wish to use their institutional identity (as issued by their home institution), as well as perhaps a Google or Facebook account, where allowed. It is also the case that not all associations are trusted equally. In some cases, the institutional identity may have a higher level of assurance than a social platform like Google or Facebook, and the organisation may wish to restrict logging into more sensitive systems to identities with higher levels of assurance. For example, the scientist is allowed to use their Google or Facebook account to sign into reference libraries, user accounts, project and grant submission systems, but may only use their institutional identity to log into data libraries containing sensitive research data. Based on these two requirements, i.e. multiple identities and different levels of assurance, a database table with three columns is sufficient. Configure the DatabaseThe first thing that is needed is a database to store these mappings. In your favourite database server software, create a table with three columns:
In MySQL, you can achieve this with the following command: The first column is the primary key and the values stored here will be the incoming targeted identifier. The incoming value will generally be qualified, i.e. it will be a value with the incoming realm appended to it (i.e. value@REALM). The width is limited to the maximum length of the SAML The second column is the local account name. The width is limited to the maximum length of useradd(8) on Unix. On Windows, underlying usernames are limited to 20 characters for compatibility purposes (see Microsoft TechNet: Active Directory Maximum Limits - Scalability for more information on this). The final column is for information (and possibly integration) purposes and contains an identifier that identifies the service used. Suggested values are zero, indicating a local-to-local mapping, one indicating a Moonshot mapping, and any other value thereafter for clearly defined values as per your organisation's choice. This field could also indicate the level of assurance.
Configure the RP ProxyThe second thing needed is to configure your Moonshot RP Proxy (or Moonshot IdP if you are using that as both an IdP and an RP Proxy) to make use of the database of mappings. Enable the FreeRADIUS SQL moduleTo access the database from your Moonshot RP proxy (FreeRADIUS), you must configure FreeRADIUS to enable database support. FreeRADIUS by default supports SQLite, MySQL/MariaDB, PostgreSQL, and any database that supports Unix ODBC connections. However, depending on your database dialect, you may have to install the FreeRADIUS module for it to enable this support. To add support for MySQL in FreeRADIUS on RHEL, issue the following command:
After installation, configure the SQL module:
Using the Moonshot-Host-TargetedId attribute in a database lookupA typical Moonshot deployment uses three pseudonymous targeted identifiers as issued by a Moonshot IdP - the To use these identifiers as the incoming attribute to be used as the remote identifier for the user, do the following.: Create a mapping policy configuration
Enabling the mapping policyTo use the policy, it has to be enabled by using it.
Using an incoming SAML assertion in a database lookupThis section is still being written. Check back soon... |