Archer Implementing SSO With ADFS
Archer Implementing SSO With ADFS
Contents
Requirement: ................................................................................................................................................ 1
Section 1: Setting up ADFS as Service Provider (SP) ..................................................................................... 1
Setup Archer as an endpoint (relying party trust) .................................................................................... 1
Setup claim rules for the Archer endpoint ............................................................................................... 6
Section 2: Setup ADFS to communicate with various IDP - Internal domain. ............................................ 12
Section 3: Setup ADFS to communicate with various IDP - External domain. ............................................ 16
Section 4: Setup ADFS to communicate with various IDP – Microsoft Azure Active Directory. ................. 23
Section 5: Setup Archer SSO with Federation ............................................................................................. 35
This document highlight the configuration on ADFS and Archer for SSO implementation. The technology
used in the implementation is based on the SAML protocol
Requirement:
Archer 6.2 or above
e. FYI, here are the definitions of the claims introduced in step 4 and their claim type
schema reference
i. First Name: http://schemas.xmlsoap.org/claims/FirstName
ii. Last Name: http://schemas.xmlsoap.org/claims/LastName
iii. Role: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
iv. UPN: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
v. Group: http://schemas.xmlsoap.org/claims/Group
vi. E-Mail Address:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Once the claim rules are setup, then ADFS is ready to act as the SP for Archer. The next step is for this SP
to communicate with various IDP
https://<FQDN of ADFS>/FederationMetadata/2007-06/FederationMetadata.xml
FederationMetadat
a.xml
Once you obtained the federation metadata, you can proceed ADFS to communicate with this IDP as
follow
1. Go to ADFS -> Claims Provider Trusts -> Add Claims Provider Trust:
2. Click “Start” to begin. Then input the federation metadata either using the URL or upload the
xml accordingly
3. Once the federation metadata is parsed by the wizard, you will have all the fundamental
components describing the IDP, and there is no need to apply any additional configuration on it.
As such, you can proceed to accept rest of the settings by clicking “Next”.
4. After this, you can proceed to create claim rules for this IDP. If you are being prompted with the
claim rules window, you can proceed to next step accordingly. Otherwise, you can select the IDP
you just created in the “Claims Provider Trusts”, then select “Edit Claim Rules”
5. The next step is to define what claims we expect to receive from the IDP. You will need to
discuss with the operation team who manages this IDP and validate the claims that will be
included. Following are the key questions and validations to be aware of:
a. What are the claims and their claims type schema? E.g:
i. First Name: http://schemas.xmlsoap.org/claims/FirstName
ii. Last Name: http://schemas.xmlsoap.org/claims/LastName
iii. Role: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
iv. UPN: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
v. Group: http://schemas.xmlsoap.org/claims/Group
vi. E-Mail Address:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
Note that the claims type schema is case sensitive. E.g: You can see the claim type for First
Name is end with …/claims/FirstName.
b. Once you obtained these claims description, you will then need to check on your ADFS
to ensure you have these equivalent claims description. Again, the claims type schema
(i.e: the “URL”) is case sensitive. You can check your existing claims description in ADFS -
> Claims Description, or as shown in Section 1 B, step 5
c. If you don’t have the claims type in your claims description, create them according to
the steps given in Section 1 B, step 5.
d. Once your claims descriptions are aligned with those provided by the IDP, you can then
ask for a sample values of these claims to check if we can just pass those values
accordingly, or require any translations. E.g:
i. First Name: Tim
ii. Last Name: Tsang
iii. Upn: [email protected]
iv. Email: [email protected]
v. Group: 11qeqe0-qw3qwerw4et-4qq3q45
vi. Role: MyRole133
e. From above example, First name, last name, UPN and email looks reasonable and can be
passed to Archer. However for Group and Role, they might not match with what the
associate group name and role name in Archer, thus you would need to apply a
translation to it.
6. Now that we understand what we are expecting from IDP, we can create claim rules accordingly.
Here is a screenshot for claims that can be pass through without translation:
Here is a screenshot for claims that require translation. You will select the claim rule type as “Transform
an Incoming Claim:
Once you have completed the claim rules, the ADFS is now ready to communicate with this IDP through
SAML and process the claims (SAML token) accordingly. These claims will then be passed to the relying
party trust, i.e: Archer. Since we have already defined in Section 1 of what claims that will be passed to
Archer, and these claims type matches with the outgoing claims type defined in the IDP claim rules, thus
all of the claims will be passed from IDP to Archer
1. In Microsoft Azure, we will first define an Enterprise Application for Archer. It needs to be
defined as an “Non-Gallery Application”
2. Define Single Sign-on options using “SAML-based Sign-On”
3. Define ADFS and Archer properties in this application as follows:
a. Identifier Upload the federation metadata of your ADFS to populate this field. By default
it will be: http:// <FQDN of ADFS>/adfs/services/trust
b. Reply URL: Upload the federation metadata of your ADFS to populate this field. By
default it will be https://<FQDN of ADFS>/adfs/ls
c. Click on “Show advanced URL settings” and populate the Sign on URL as follow:
https://<FQDN of Archer>/rsaarcher/default.aspx?realmid=<IDP>. We will define <IDP>
further in next section (Section 5: Setup Archer SSO with Federation). In the meantime,
you can use the one in the example, my.azure.ad
4. Define the list of SAML token attributes to send to Archer. Note that you must define the Name
and namespace for each of the attribute and they need to match with the claim type schema
(the “URL”) in your ADFS claim description (and again, it’s case sensitive). E.g: For defining First
Name in the SAML Token attributes
a. Name: FirstName
b. Value: user.givenname
c. Namespace: http://schemas.xmlsoap.org/claims
This will translate as the claim type schema of http://schemas.xmlsoap.org/claims/FirstName. It
will utilise the user.givenname attribute within the Azure Active Directory
5. For sending group attribute, you will need to be aware of the following:
a. You need to first enable the application to send group claim.
(Home -> Azure Active Directory -> App Registration -> <Your Archer app> -> manifest -> change
“groupMembershipClaims”: “All”
b. Also, Azure contain the group attribute of a user using the claim type schema of
http://schemas.microsoft.com/ws/2008/06/identity/claims/groups.
c. Finally, the group attribute will be send using the Object ID instead of the convention
name
(Home -> Azure Active Directory -> Groups – All groups -> <your group> -> note the Object ID)
6. For sending role attribute, you would need to be aware of the following:
a. Azure Active Directory already has a role attribute and is assigned claim type schema:
http://schemas.microsoft.com/ws/2008/06/identity/claims/role. Thus, you can’t use
this claim to pass Archer role to Archer, otherwise you will be sending Azure AD role to
Archer, and not the Archer role as you defined in Archer.
b. To define a Archer role attribute to a user, you would need to use an another attribute
within Azure Active Directory, e.g: Job Title
c. You will also need to define a specifics claim type schema in the SAML token attribute to
store value in the Job Title attribute, e.g: http://schemas.xmlsoap.org/claims
7. Once these are done, obtain the federation metadata URL or the xml of this IDP.
8. Finally, define the list of users who can utilise the Archer application
9. On ADFS, define the claim provider trust for Azure by using the federation metadata obtained in
step 6.
10. Creating the claim rules for all the SAML token attributes
a. For UPN, FirstName, Last Name and Email, we can use a pass through method
b. For Group, we will need first need to create an claim description, such as
AzureGroupsID, to describe that claim type schema of Azure Group
c. Then use a transform claim method to apply translation to convert that Object ID into
convention group name that is present in Archer
d. Similarly with role, you will first need to define a claim type, e.g: Mrole. It will have
schema of http://schemas.xmlsoap.org/claims/role
e. You will then create a claim rule using the transform method to covert the incoming
claim type of Mrole back to the original role claim. This is because the relying party trust
(the Archer end point) is expecting the role claim in the claim rules (and not Mrole)
Section 5: Setup Archer SSO with Federation
The final steps involve configuring Archer to communicate with ADFS, as well as defining the list of IDP
which users can select to authenticate with
1. Open Archer Control Panel -> Installation settings -> Federation Metadata. Locate the xml
format of the ADFS federation metadata. As a refresh, you can download the federation
metadata using the URL:
https://<FQDN of ADFS>/FederationMetadata/2007-06/FederationMetadata.xml
2. Go to your instance -> Single Sign On. Then define the common parameters for SAML
authentication:
a. Select Federation and optionally select manual bypass if you still like to use internal user
to login
b. In the relying party identifier, type in the Archer login URL, e.g: https://<FQDN of
Archer>/rsaarcher/default.aspx. This need to be the same as section 1 a, step 7
c. In the Home Realm Parameter, enter realmid. This is matching with the reply URL
defined in section 4, step 3. This is how key name for defining the different IDP we want
to connect with
4. Define an IDP that you want user to authenticate with. Click the + button to add. Then define:
a. Realm: A short form of your IDP. E.g: archer.local, mycorp.local, azure.ad. This doesn’t
need to associate with your IDP in any way, but do ensure there is no space involve.
Note that for Section 4, step 3, we have mentioned to define the reply URL as:
https://<FQDN of Archer>/rsaarcher/default.aspx?realmid=<IDP>, where <IDP> is
azure.ad. The Realm in here is the <IDP> for that URL. This URL is a shortcut for user to
authenticate with that IDP without selecting the IDP in the dropdown.
b. Identifier: The URL indicating the IDP. You can obtain this ADFS -> Trust Relationships ->
Claims Provider Trusts -> <your IDP> -> properties -> Identifiers tab -> claims provider
identifier
For your own internal domain, the identifier can be obtained by going to ADFS -> service -> edit
federation service properties -> General tab -> Federation Service identifier
c. In the Display name, provide a description of which IDP you want to authenticate with
d. Define provisioning settings such as whether you want to update user groups, roles,
details each time the user is login to Archer. This is known as the Just-In-Time
provisioning
e. Repeat a – d for each of the IDP you have configured in ADFS
5. Now that everything has been setup. You can login to Archer using the usual URL,
https://<FQDN of Archer>/rsaarcher/default.aspx. Once you can select which IDP to
authenticate, you will be prompted by the desired IDP and enter the credentials below to that
IDP.
List of IDP