docs/main/administration-guide/onboard/sso-saml-adfs.mdx
import Inc0_sso_saml_before_you_begin from './sso-saml-before-you-begin.mdx'; import Inc1_sso_saml_ldapsync from './sso-saml-ldapsync.mdx'; import Inc2_sso_saml_faq from './sso-saml-faq.mdx';
<PlanAvailability slug="all-commercial" />The following process provides steps to configure SAML 2.0 with Microsoft ADFS for Mattermost.
<Inc0_sso_saml_before_you_begin />
The following are basic requirements to use ADFS for Mattermost:
On your ADFS installation, note down the value of the SAML 2.0/W-Federation URL in ADFS Endpoints section, also known as the SAML SSO URL Endpoint in this guide. If you chose the defaults for the installation, this will be /adfs/ls/.
In the ADFS management sidebar, go to AD FS > Trust Relationships > Relying Party Trusts, then select Add Relying Party Trust. A configuration wizard opens for adding a new relying party trust.
On the Welcome screen, select Start.
On the Select Data Source screen, select Enter data about the relying party manually.
On the Specify Display Name screen, enter a Display Name to recognize the trust, such as Mattermost, then add any notes you want to make.
On the Choose Profile screen, select AD FS profile.
On the Configure Certificate screen, leave the certificate settings at their default values.
However, if you would like to set up encryption for your SAML connection, select Browse, then upload your Service Provider Public Certificate.
On the Configure URL screen, select Enable Support for the SAML 2.0 WebSSO protocol, then enter the SAML 2.0 SSO service URL, similar to https://<your-mattermost-url>/login/sso/saml where <your-mattermost-url> should typically match the Mattermost Site URL.
On the Configure Identifiers screen, enter the Relying party trust identifier (also known as the Identity Provider Issuer URL) of the form https://<your-idp-url>/adfs/services/trust, then click Add.
On the Configure Multi-factor Authentication Now screen, you may enable multi-factor authentication. This is beyond the scope of this documentation.
On the Choose Issuance Authorization Rules screen, select Permit all users to access this relying party.
On the Ready to Add Trust screen, review your settings.
On the Finish screen, select Open the Edit Claim Rules dialog for this relying party trust when the wizard closes, then select Close. You exit the configuration wizard, and a Claim Rules editor opens.
In the Issuance Transform Rules section of the Claim Rules editor, select Add Rule… to open an Add Transform Claim Rule Wizard.
On the Choose Rule Type screen, select Send LDAP Attributes as Claims from the drop-down menu, then select Next.
In the Configure Claim Rule screen, enter a Claim Rule Name of your choice, select Active Directory as the Attribute Store, then complete the following:
- From the LDAP Attribute column, select
E-Mail-Addresses. From the Outgoing Claim Type, type- From the LDAP Attribute column, select
E-Mail-Addresses. From the Outgoing Claim Type, typeName ID.- From the LDAP Attribute column, select
Given-Name. From the Outgoing Claim Type, typeFirstName.- From the LDAP Attribute column, select
Surname. From the Outgoing Claim Type, typeLastName.- From the LDAP Attribute column, select
SAM-Account-Name. From the Outgoing Claim Type, typeUsername.
The FirstName and LastName attributes are optional.
Select Finish to add the rule.
Note that the entries in the Outgoing Claim Type column can be chosen to be something else. They can contain dashes but no spaces. They will be used to map the corresponding fields in Mattermost later.
Create another new rule by selecting Add Rule.
On the Choose Rule Type screen, select Transform an Incoming Claim from the drop-down menu, then select Next.
On the Configure Claim Rule screen, enter a Claim Rule Name of your choice, then:
- Select Name ID for the Incoming claim type.
- Select Unspecified for the Incoming name ID format.
- Select E-Mail Address for the Outgoing claim type.
Select Pass through all claim values, then select Finish.
Set-ADFSRelyingPartyTrust -TargetName <display-name> -SamlResponseSignature "MessageAndAssertion"
where <display-name> is the name you specified in step 4 when adding a relying party trust. In this example, <display-name> would be mattermost.
This action adds the signature to SAML messages, making verification successful.
Next, export the identity provider certificate, which will be later uploaded to Mattermost to finish SAML configuration.
In the ADFS management sidebar, go to AD FS > Service > Certificates, then double click on the certificate under Token-signing. Alternatively, you can right-click on the field, then select View Certificate.
On the Certificate screen, go to the Details tab, then select Copy to File, followed by OK. This opens a Certificate Export Wizard.
On the Certificate Export Wizard screen, select Next, then, select the option Base-64 encoded X.509 (.CER), and select Next again.
On the Certificate Export Wizard screen, select Browse to specify the location where you want the Identity Provider Certificate to be exported, then specify the file name.
Select Save. In the Certificate Export Wizard screen, verify the file path is correct, then select Next.
In the Completing the Certificate Export Wizard, select Finish, then select OK to confirm the export was successful.
Create a metadata URL by appending "FederationMetadata/2007-06/FederationMetadata.xml" to the root URL of the ADFS server, for example: https://<adfs.domain.com>/federationmetadata/2007-06/FederationMetadata.xml>.
Next, start the Mattermost server and log in to Mattermost as a system admin. Go to System Console > Authentication > SAML, paste the metadata URL in the Identity Provider Metadata URL field, then select Get SAML Metadata from IdP.
This populates the SAML SSO URL and the Identity Provider Issuer URL fields automatically. The Identity Provider Public Certificate is also downloaded from the server and set locally.
Alternatively you can enter the following fields manually:
SAML SSO URL: SAML 2.0/W-Federation URL ADFS Endpoint you copied earlier.
Identity Provider Issuer URL: Relying party trust identifier from ADFS you specified earlier.
Identity Provider Public Certificate: X.509 Public Certificate you downloaded earlier.
Configure Mattermost to verify the signature. The Service Provider Login URL is the SAML 2.0 SSO service URL you specified in ADFS earlier.
Enable encryption by uploading the Service Provider Private Key and Service Provider Public Certificate you generated earlier.
Configure Mattermost to sign SAML requests using the Service Provider Private Key.
Set attributes for the SAML Assertions, which will be used to update user information in Mattermost. Attributes for email and username are required and should match the values you entered in ADFS earlier. See documentation on SAML configuration settings for more detail.
For Mattermost servers running 3.3 and earlier, the FirstName and LastName attributes are also required fields.
FirstName and LastName Attribute, go to System Console > Site Configuration > Users and Teams, then set Teammate Name Display to Show first and last name. This is recommended for a better user experience.If you’d like to confirm SAML SSO is successfully enabled, switch your system admin account from email to SAML-based authentication from your profile picture via Profile > Security > Sign-in Method > Switch to SAML SSO, then log in with your SAML credentials to complete the switch.
We recommend that you post an announcement about how the migration will work for your users.
You may also configure SAML for ADFS by editing the config.json file to enable SAML based on SAML configuration settings. You must restart the Mattermost server for the changes to take effect.
<Inc1_sso_saml_ldapsync />
<Inc2_sso_saml_faq />