- Created by Karolin Hemmingsson (Unlicensed), last modified by Josefin Klang on Jan 26, 2024
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 36 Next »
This article describes authentication profiles in Smart ID Identity Manager and how to configure the profiles. Authentication profiles are used to define how users can gain access to Identity Manager and what they gain access to.
Authentication is done in two steps:
- Authentication: login in with a certain user credential. The user will be extracted from the credential depending on the authentication type.
- Authorization: after successful authentication the assigned roles for the user are determined depending on the authentication type.
The following authentication profiles are available:
Authentication profile | Authentication / Login mechanism | User / Principal | Authorization / Roles / Permissions |
---|---|---|---|
Internal In the runtime system (Identity Manager Operator and Smart ID Self-Service), this profile type is not recommended for production. Usually, the administrator of Identity Manager Admin has an internal account. | Login with username and password based on internal user table | Username | Roles from internal roles table |
LDAP | External login mechanism based on LDAP | DN from LDAP configuration | Group membership in LDAP directory is mapped to internal roles |
LDAP Core Object | External login mechanism based on LDAP | DN from LDAP configuration | Internal roles mapped to core objects |
Client Certificate and LDAP | Client certificate login based on LDAP | Configured attribute in certificate | Group membership in LDAP directory is mapped to internal roles |
Client Certificate Internal In the runtime system (Identity Manager Operator and Smart ID Self-Service), this profile type is not recommended for production. | Client certificate login based on internal user | Configured attribute in certificate | Roles from internal roles table |
Client Certificate Core Object | Client certificate login based on Core Objects | Configured attribute in certificate | Internal roles mapped to core objects |
Smart Card and Core Object This authentication profile is deprecated, but can still be used for older versions of Identity Manager. From PRIME 3.9, use Client Certificate Core Object. | Smart card certificate | Configured attribute in certificate | Internal roles mapped to core objects |
Username and Password Core Object | Login with username and password based on core objects | Username | Internal roles mapped to core objects |
SAML SSO Core Object (*) | External login with SAML SSO | Configured attribute in SAML token | Internal roles mapped to core objects |
SAML SSO LDAP (*) | External login with SAML SSO. | Configured attribute in SAML token | Group membership in LDAP directory is mapped to internal roles |
SAML SSO Group (*) | External login with SAML SSO. | Configured attribute in SAML token | Configured attribute in SAML token |
(*) For SAML, an extra layer of security is added by limiting the role assignment based on authentication method. For more information, see the instructions for SAML SSO Core Object, SAML SSO LDAP, and SAML SSO Group profiles below.
Prerequisites
- You must have access to any required external systems, for example LDAP or SAML Identity provider (IDP).
For client certificate authentication, a working HTTPS configuration with client authentication on the Tomcat is required. See Configure https for Tomcat.
For SAML authentication, it is required to have an identity provider, such as Smart ID Digital Access component (Hybrid Access Gateway), with the correct configuration for Identity Manager authentication. For information and examples with Digital Access, see Enable two-factor authentication to Identity Manager clients via SAML federation.
Step-by-step instruction
To set up an authentication profile:
- Go to Home > Authentication Profiles.
- Click +New to add an authentication profile.
Select a Profile type:
The Internal profile is not available for selection, since it is created by default in any Identity Manager installation and only one internal profile is allowed.
- For SAML profiles, the Priority will be assigned automatically.
- Click Save + Edit.
A new tab is displayed where the authentication profile is configured. See the following sections for how to configure the authentication profile you have selected.
- For all authentication profiles there is a Processes tab. Select from the drop-down list, which process that shall run after a successful login in Identity Manager Operator. Read more in section Set up authentication profile in Identity Manager#Configure post-login process.
- To edit an existing identity template, double-click on its name.
Configure profile types
The configuration of authentication profiles differs according to the different profile types. Find your selected authentication profile type below and follow the instruction to set up the configuration.
The system will lock internal users after too many failed logins. The users can be unlocked automatically after a certain amount of time. To configure this, follow the instructions below.
Administrator
In Identity Manager Admin, do the following:
- In Identity Manager Admin, Go to Home > Authentication Profiles.
- Select the profile with an INTERNAL profile type.
- Define the Maximum failed login count.
- Optional: Enable the Automatic unlock mechanism and set the Blocked user wait time in seconds.
- Click Save.
Tenant
In Identity Manager Tenant, do the following:
- Open the tenant application and navigate to the icon next to the info button. A dialog appears.
- Define the Maximum failed login count.
- Optional: Enable the Automatic unlock mechanism and set the Blocked user wait time in seconds.
- Click Save.
In Client Certificate Configuration: select the method which extracts the information from the certificate used to identify the user:
- User Principal Name (UPN)
- SAN Email (RFC822Name)
- Subject CN
- Subject Email
- Object Security Identifier (objectSid)
- In Connection settings:
In Connection string, enter the URL of the LDAP server and base address in the directory service, for example:
Example: Connection stringConnection string: ldap://localhost:389/ou=NexusEmployees,dc=nexus,dc=local
where
ou = organizationalUnitName
dc = domainComponent
For more information on LDAP string attributes, see RFC 2253, LDAP (v3): UTF-8 String Representation of Distinguished Names.- In Username and Password, enter the Active Directory domain user name and password.
- In User search:
- Select Direct binding or With password comparison. Direct binding attempts to bind to the LDAP with the user entered. With password comparison the data of the LDAP entry is retrieved and the password is compared with the entered password.
Enter a Search pattern. Here are two examples:
Example: Search patternSearch pattern: (userPrincipalName={0})
Example: Search pattern using Distinguished Name (DN) of userSearch pattern: cn={0},ou=users
- If password comparison was selected, enter the Attribute for password used in LDAP and, if applicable, the mechanism that LDAP uses for Password encryption.
- In Group search:
In Basis for group search, enter the subpath to the group information in LDAP.
For example, if you find the group information under ou = groups, dc = myCompany, dc = de, enter the following:Example: Basis for group searchBasis for group search: ou=groups- In Filter for group search, enter a filter expression, that defines the search starting with the subpath above.
For example, if the group membership of users is stored in a multi-value attribute
member
(via the DN), enter the following:Example: Filter for group searchFilter for group search: (member={0})
- In Attribute for group, enter an attribute with unique values to define the group belonging. The groups to which the user belongs are compared in the last step with the assignment to the roles in the system and access to the system is assigned based on the assigned roles.
For example, enter the following:
Example: Attribute for groupAttribute for group: cn
- Group Permissions
- Go to the LDAP Group Permissions tab to map the LDAP groups to internal Identity Manager roles.
- Click + to add an LDAP group to the Groups list
- Select the roles that should be assigned to that LDAP group in the Roles list.
- In Connection settings:
In Connection string, enter the URL of the LDAP server and base address in the directory service, for example:
Example: Connection stringConnection string: ldap://localhost:389/ou=NexusEmployees,dc=nexus,dc=local
where
ou = organizationalUnitName
dc = domainComponent
For more information on LDAP string attributes, see RFC 2253, LDAP (v3): UTF-8 String Representation of Distinguished Names.- In Username and Password, enter the Active Directory domain user name and password.
- In User search:
- Select Direct binding or With password comparison. Direct binding attempts to bind to the LDAP with the user entered. With password comparison the data of the LDAP entry is retrieved and the password is compared with the entered password.
Enter a Search pattern. Here are two examples:
Example: Search patternSearch pattern: (userPrincipalName={0})
Example: Search pattern using Distinguished Name (DN) of userSearch pattern: cn={0},ou=users
- If password comparison was selected, enter the Attribute for password used in LDAP and, if applicable, the mechanism that LDAP uses for Password encryption.
- Error rendering macro 'excerpt-include' : No location was provided.
If you have, for example, an Apache proxy or F5 proxy in front of Identity Manager which enforces client authentication with TLS, you need to add an SSLValve to your Tomcat server.xml under <SMARTIDHOME>/docker/compose/config/idm-tomcat-server.xml
<Valve className="org.apache.catalina.valves.SSLValve" />
See: https://tomcat.apache.org/ for more information.
- In Client Certificate Configuration: select the method, which extracts the information from the certificate used to identify the user:
- User Principal Name (UPN)
- SAN Email (RFC822Name)
- Subject CN
- Subject Email
- Object Security Identifier (objectSid)
- In Connection settings:
In Connection string, enter the URL of the LDAP server and base address in the directory service, for example:
Example: Connection stringConnection string: ldap://localhost:389/ou=NexusEmployees,dc=nexus,dc=local
where
ou = organizationalUnitName
dc = domainComponent
For more information on LDAP string attributes, see RFC 2253, LDAP (v3): UTF-8 String Representation of Distinguished Names.- In Username and Password, enter the Active Directory domain user name and password.
- In User search:
Enter a Search pattern. Here are two examples:
Example: Search patternSearch pattern: (userPrincipalName={0})
Example: Search pattern using Distinguished Name (DN) of userSearch pattern: cn={0},ou=users
- If password comparison was selected, enter the Attribute for password used in LDAP and, if applicable, the mechanism that LDAP uses for Password encryption.
- In Group search:
In Basis for group search, enter the subpath to the group information in LDAP.
For example, if you find the group information under ou = groups, dc = myCompany, dc = de, enter the following:Example: Basis for group searchBasis for group search: ou=groups- In Filter for group search, enter a filter expression, that defines the search starting with the subpath above.
For example, if the group membership of users is stored in a multi-value attribute
member
(via the DN), enter the following:Example: Filter for group searchFilter for group search: (member={0})
- In Attribute for group, enter an attribute with unique values to define the group belonging. The groups to which the user belongs are compared in the last step with the assignment to the roles in the system and access to the system is assigned based on the assigned roles.
For example, enter the following:
Example: Attribute for groupAttribute for group: cn
- Group Permissions
- Go to the LDAP Group Permissions tab to map the LDAP groups to internal Identity Manager roles.
- Click + to add an LDAP group to the Groups list
- Select the roles that should be assigned to that LDAP group in the Roles list.
If you have, for example, an Apache proxy or F5 in front of Identity Manager which enforces client authentication with TLS, you need to add an SSLValve to your Tomcat server.xml under <SMARTIDHOME>/docker/compose/config/idm-tomcat-server.xml
<Valve className="org.apache.catalina.valves.SSLValve" />
See: https://tomcat.apache.org/tomcat-9.0-doc/api/org/apache/catalina/valves/SSLValve.html for more information.
- In Client Certificate Configuration: select the method, which extracts the information from the certificate used to identify the user:
- User Principal Name (UPN)
- SAN Email (RFC822Name)
- Subject CN
- Subject Email
- Object Security Identifier (objectSid)
- Error rendering macro 'excerpt-include' : No location was provided.
This authentication profile is deprecated, but can still be used for older versions of Identity Manager. From PRIME 3.9, use the Client Certificate Core Object profile.
- In Certificate settings: select the method, which extracts the information from the certificate used to identify the user:
- User Principal Name (UPN)
- SAN Email (RFC822Name)
- Subject CN
- Subject Email
- Object Security Identifier (objectSid)
- In User identification: enter details to map the
userPrincipalName
to a core object.- In Identity template, select one or more core object types, for example, Employee and Contractor, on which the core object search will be performed. The first matching template will be used.
- In User name field, select the core object field to match the user, for example UPN or Email. Identity Manager will use it to search the core object in the selected identity template.
- In User display, enter fields in a comma separated list, for example FirstName,LastName. These fields are used to display the logged in user in Identity Manager Operator or Smart ID Self-Service.
- In Identity template, select one or more core object types, for example, Employee and Contractor, on which the core object search will be performed. The first matching template will be used.
- Error rendering macro 'excerpt-include' : No location was provided.
- Prepare the required SAML configuration files. For file examples, refer to Enable two-factor authentication to Identity Manager clients via SAML federation.
- You need one metadata file for each Service Provider, that is, one file for Identity Manager Operator, one file for Smart ID Self-Service and one file for other Service Providers that you configure.
- You also need the metadata file of your Identity Provider and a keystore containing all the keys you would like to use for encryption or signing.
- Go to the SAML Configuration tab and do the following settings:
- In Identity Provider Configuration:
Upload a Configuration file
Here you can upload and delete the metadata file for an identity provider. The metadata file must contain only one identity provider configuration and no service provider configurations.Select an Attribute Type
This is the identifying element of a SAML response. Despite the name, it can contain other elements than attributes. It can have two values, Name ID and Attribute Statement. Name ID refers to the subject of a SAML response, Attribute Statement refers to attributes associated with the subject of a SAML response.Enter Attribute Name
This field is only active when Attribute Statement is selected as Attribute Type. It can be any arbitrary value.
- In Keystore Configuration:
- Upload a Configuration file
Here you can upload and delete key store file. The key store file must contain the certificates and the private key used for signing and decryption. A key store is mandatory. When a key store is uploaded, the key store's password must be entered. Objects in the key store, if protected with a password, must have the same password as the key store itself. - Available key aliases
List of the aliases that mark private keys in the key store.
- Upload a Configuration file
- In Service Provider Configurations:
- Click on the + button to add a service provider.
- This view lists the aliases of the service providers. Any arbitrary number of service providers is allowed but at least one service provider is required. An uploaded service provider must use only private keys available in the key store. If you upload a service provider metadata file that violates the SAML metadata schema, this triggers an error message.
- In Service Provider Details:
Alias
In this context, Alias refers to the location and thus the service provider to use when sending the SAML response to the application for processing. An Alias is mandatory.
This is an example of an excerpt from a typical metadata file that defines the Assertion Consumer Service responsible for processing the SAML response. The Alias in this case is "explorer".Example: Excerpt from a metadata file... <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://hostname:8080/prime_explorer/saml/SSO/alias/explorer" index="0" isDefault="true"/> ...
- Configuration File
Click on the upload symbol and select the metadata file.
This field is mandatory. The metadata file must contain only one service provider configuration and no identity provider configurations. If the file is deleted and re-uploaded, Alias must be reset according to the metadata file. - Alias for Signing Key
The alias from the key store for the private key to use for signing. This field is mandatory. - Alias for Encryption Key
The alias from the key store for the private key to use for encryption purposes. This field is mandatory.
- In Identity Provider Configuration:
Go to the Core Object Configuration tab and do the following settings:
- In Identity template, select one or more core object types, for example, Employee and Contractor, on which the core object search will be performed. The first matching template will be used.
- In User name field, select the core object field to match the user principal, for example UPN or Email. Identity Manager will use it to search the core object in the selected identity template.
- In User display, enter fields in a comma separated list, for example FirstName, LastName. These fields are used to display the logged in user in Identity Manager Operator or Smart ID Self-Service.
Optional:
- In Identity template, select one or more core object types, for example, Employee and Contractor, on which the core object search will be performed. The first matching template will be used.
Go to the Authentication Method tab and do the following settings:
In Authentication Method, click + to add the reference (AuthnContextClassRef) for the authentication method you want to add. You can find the reference in the Identity Provider, or in the SAML response. If a role has no AuthnContextClassRef assigned, the authentication method check will be skipped.
This is an example of an AuthnContextClassRef snippet in a SAML response. (The value here is:
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
):Example: SAML response<saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext>
These AuthnContextClassRef examples are based on OASIS Standard documentation. See https://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf for more information.Examples: AuthnContextClassRefurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard urn:oasis:names:tc:SAML:2.0:ac:classes:X509 urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract
Custom string can also be configured as an AuthnContextClassRef. See the Identity Provider configuration.
Map the added authentication method to a role by selecting the role you want to use and checking the check box for the authentication method.
By mapping authentication methods to roles, you will restrict a user of certain roles depending on the authentication method used to log in. This adds an extra layer of security. If no authentication method is configured, all roles are allowed to be assigned to the user regardless of how the user is authenticated with the Identity Provider.
- Go to the SAML Configuration tab.
- Do the same settings as described above under heading "Configure SAML SSO Core Object profile".
- Go to the LDAP Configuration tab.
If you have already a configured LDAP profile, copy the information to here. See heading "Configure LDAP profile" above.
The Direct binding and With password comparison selection are NOT used for the SAML SSO LDAP profile.
- Go to the LDAP Group Permissions tab.
- See under heading "Configure LDAP profile" above.
Optional:
- See under heading "Configure LDAP profile" above.
Go to the Authentication Method tab and do the following settings:
In Authentication Method, click + to add the reference (AuthnContextClassRef) for the authentication method you want to add. You can find the reference in the Identity Provider, or in the SAML response. If a role has no AuthnContextClassRef assigned, the authentication method check will be skipped.
This is an example of an AuthnContextClassRef snippet in a SAML response. (The value here is:
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
):Example: SAML response<saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext>
These AuthnContextClassRef examples are based on OASIS Standard documentation. See https://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf for more information.
Examples: AuthnContextClassRefurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard urn:oasis:names:tc:SAML:2.0:ac:classes:X509 urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract
Custom string can also be configured as an AuthnContextClassRef. See the Identity Provider configuration.
Map the added authentication method to a role by selecting the role you want to use and checking the check box for the authentication method.
By mapping authentication methods to roles, you will restrict a user of certain roles depending on the authentication method used to log in. This adds an extra layer of security. If no authentication method is configured, all roles are allowed to be assigned to the user regardless of how the user is authenticated with the Identity Provider.
This authentication profile analyzes the SAML response only to determine the user's roles after a successful login. The administrator has to configure the attribute which will be read/parsed from the SAML response.
- Go to the SAML Configuration tab.
- Do the same settings as described above under heading "Configure SAML SSO Core Object profile".
- Go to the SAML Group Mapping tab
Specify the attribute name in the SAML response which will contain the user's groups.
Example with "my-groups":Example SAML response<saml:Attribute Name="my-groups" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xsi:type="xs:string">examplerole1</saml:AttributeValue> <saml:AttributeValue xsi:type="xs:string">another-role-of-your-user</saml:AttributeValue> </saml:Attribute>
For more information see https://www.samltool.com/generic_sso_res.php.
- (copied from LDAP:)
- Map the groups from the SAML response to internal Identity Manager roles:
- Click + to add a group to the Groups list
- Select the roles that should be assigned to that group in the Roles list.
- Click Save.
Optional:
- Go to the Authentication Method tab and do the following settings:
In Authentication Method, click + to add the reference (AuthnContextClassRef) for the authentication method you want to add. You can find the reference in the Identity Provider, or in the SAML response. If a role has no AuthnContextClassRef assigned, the authentication method check will be skipped.
This is an example of an AuthnContextClassRef snippet in a SAML response. (The value here is:
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
):Example: SAML response<saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext>
These AuthnContextClassRef examples are based on OASIS Standard documentation. See https://docs.oasis-open.org/security/saml/v2.0/saml-authn-context-2.0-os.pdf for more information.
Examples: AuthnContextClassRefurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard urn:oasis:names:tc:SAML:2.0:ac:classes:X509 urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract
Custom string can also be configured as an AuthnContextClassRef. See the Identity Provider configuration.
Map the added authentication method to a role by selecting the role you want to use and checking the check box for the authentication method.
By mapping authentication methods to roles, you will restrict a user of certain roles depending on the authentication method used to log in. This adds an extra layer of security. If no authentication method is configured, all roles are allowed to be assigned to the user regardless of how the user is authenticated with the Identity Provider.
Configure post-login process
In order for a process to be started after you login in Identity Manager Operator and Self-Service (if applicable), the process must end with the service task "Login - Finalize post-login process", see Login - Standard service tasks in Identity Manager. The post-login process is available for all authentication profiles.
- A post-login process is automatically executed after successfully authenticating the user.
- The user will be forwarded to Identity Manager Operator and Self-Service (if applicable) only if the process completed successfully.
- The post-login process is executed under the internal user named loginProcessUser.
- Default is to not have a post-login process configured.
When you configure a post-login process for an authentication profile which is core object based (that is: Username with Password Core Object, Client Certificate Core Object, LDAP Core Object and SAML SSO Core Object), add the process for each core template with which it should be used, as additional command.
- In Identity Manager Admin, Go to Home > Authentication Profiles.
- Select an authentication profile.
- In the Processes tab, select from the drop-down list to the left, which process that shall run after a successful login in:
- Identity Manager Operator (if applicable)
OR - Self-Service (if applicable)
OR in both.
- Identity Manager Operator (if applicable)
- Click Save.
- Go to Home > Process Designer.
- Select the same process as in step 3.
- In the Task List tab, add the service task "Login: Finalize Post-Login Process" in the Attributes field.
- In the Permissions tab, add the user loginProcessUser to Start process and to other user tasks, if applicable. If used for SAML authentication in Self-Service, loginProcessUser should be added to the Show in Self-Service permission as well.
- Click Save.
Tenant ID settings
To validate the tenant id, use the property tenantContextFilter.shouldValidateTenant
in system properties of Identity Manager:
- If set to true, an error page is shown when the selected tenant (passed in the URL) does not exist.
- If set to false, the user will be redirected to the login page.
- Default:
tenantContextFilter.shouldValidateTenant
=false
If you use the correct URL, the desired authentication method can be called directly. You must give a valid tenant ID, the language will depend on browser language.
For more information about the authentication methods, see Identity Manager Operator.
Call authentication method "Certificate" directly
Use this URL: https://<idmhost>:<idmPort>/<idmApplicationName>/cert/login?tenantId=X
Examplehttps://localhost:8444/idm-admin/cert/login?tenantId=32768
Configure the port in system properties (default is 8444).
Call authentication method "SAML" directly
Use this URL: https://<idmhost>:<idmPort>/<idmApplicationName>/saml/login?tenantId=X
Examplehttp://localhost:8080/idm/saml/login?tenantId=1
Configure Smart ID Self-Service login page
Smart ID Self-Service has additional configuration options for the login page.
You can enable or disable the different login mechanism in config.json, see this table:
Property | Possible Values | Default | Graphical user interface |
---|---|---|---|
userPassword.enabled | true / false | true | |
saml.enabled saml.enforced | For more information, see Enable two-factor authentication to Identity Manager clients via SAML federation | true true | |
clientCert.enabled | true / false | true |
Configure Identity Manager Operator login page
- Log in to Identity Manager Admin as an admin user.
- No labels