"Pairwise-id is a long-lived, non-reassignable, unidirectional identifier suitable for use as a unique external key specific to a particular relying party. Its value for a given subject depends upon the relying party to whom it is given, thus preventing unrelated systems from using it as a basis for correlation." From: https://spaces.at.internet2.edu/display/federation/user-attr-pairwise-id#userattrpairwiseid
Currently, Cirrus supports pairwise-id with Cirrus Enterprise Bridges for Entra ID, Duo and Okta tenants.
If pairwise-id has been previously configured, Cirrus will need to configure the Enterprise Bridge to support pairwise-id based on the configuration currently in place for your IdP. Cirrus Customer Success will ask that you securely send us the current salt. If you are creating pairwise-id for the first time and do not currently have a salt, Cirrus is able to generate one and securely store it for use with pairwise-id.
Once Cirrus has either securely received or generated a salt for pairwise-id, Cirrus Customer Success can help you configure the pairwise-id in your Identity Provider. Cirrus has created rules to help configure pairwise-id. The same rules are applied when configuring the attribute in Entra, Duo, and Okta tenants.
Attribute Name in Okta/Entra/DUO: cirrus.rule.pairwiseId
Required Settings:
Optional Settings:
Source Attribute Format: alg=sha1 or hmac-sha256, scope= customer scope from federation
The example below shows screenshots of the rules configured in Cirrus’ Entra ID test environment. Athena Institute, using the hashing algorithm hmac-sha256 and the scope athena-institute.net.
Attribute Name in Okta/Entra/DUO: cirrus.attr.targetedIdSrc
Source Attribute: Unique for each institution. This needs to be a non-reassignable, unique, and persistent value.
In this example, the source used as the seed for the generation algorithm is assigned to user.userprincipalname. You will need to choose the seed that makes sense for your institution.
See below.
Responding to an authentication flow with a configured pairwise-id, Cirrus uses the salt, the user’s unique id, and the SP entityId, hashes and B32-encodes the value, and then adds a scope.
Here is an example of the generated pairwise-id attribute that would be included as an attribute in the assertion from the authentication flow of an application with pairwise-id configured:
References
SAML v2.0 Subject Identifier Profile - Pairwise Subject Identifier→
SAML General Purpose Subject Identifier (subject-id)
Enterprise Bridge for Okta/Azure/Duo for InCommon/EduGain access (formerly Conditional Access)