Configurer une application SaaS non supportée
UserLock SSO permet de configurer des applications SaaS non supportées utilisant le protocol Saml grâce à un fichier de configuration dédié. Ce fichier, nommé "CustomSamlManagers.json" est situé dans %ProgramData%\ISDecisions\UserLock\SSO\CustomSamlManagers.json
Note: il n’est pour l’instant pas possible de configurer des applications non supportées utilisant le protocole OpenID Connect.
Ce fichier contient plusieurs configurations personnalisées, une pour chaque application SaaS non supportée.
Il est composé de trois parties détaillées ci-dessous :
- L'Unique Identifier ("ProfileTypeId") : UserLock SSO l’utilise pour identifier l’application SaaS de manière unique. Il ne peut pas y avoir deux ProfileTypeIds identiques dans tous les profils UserLock SSO, supportés ou non.
- L'Assertion ("Assertion") : elle est utilisée lors d’une connexion afin de retourner une assertion SAML correcte à l’application SaaS cliente.
- La Configuration("Configuration") : ces paramètres sont utilisés pour définir l’affichage approprié lors de la configuration d’une application SaaS dans UserLock -> Single Sign-On -> Configuration. Lorsqu’un plugin personnalisé est défini correctement, une brique dédiée à l’application SaaS apparaitra dans l’onglet Configuration et les réglages nécessaires à la configuration de l’application SaaS dépendent des paramètres configurés ici.
Exemple de fichier de configuration
[
{
"ProfileTypeId": "Contoso",
"Assertion": {
"NameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"NameIdType": "Email",
"Attributes": {
"MyAttribute": [
"FirstName",
"LastName"
]
}
},
"Configuration": {
"MultiConfigAllowed": true,
"EditableInputs": {
"EmailDomain": "",
"CustomAppDomain": "https://{0}.contoso.com"
},
"LogoFilePath": "C:\\Images\logo.png",
"IssuerFormat": "https://{0}.contoso.com",
"AssertionConsumerServicesUriFormat": "https://{0}.contoso.com/sso"
}
}
]
L’identifiant unique
Dans notre exemple, l’identifiant unique est Contoso
"ProfileTypeId": "Contoso",
L’identifiant unique est utilisé afin de différencier cette configuration des autres applications SaaS configurées.
L’assertion
Cette partie contient les paramètres utilisés pour retourner une assertion SAML valide lors d’une connexion. Chaque application SaaS requiert des paramètres spécifiques définis ici.
Cette partie doit être écrite avec la documentation SSO de l’application SaaS utilisant le protocole SAML.
"Assertion": {
"NameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
"NameIdType": "Email",
"Attributes": {
"MyAttribute": [
"FirstName",
"LastName"
]
{
}
Definir le NameIdFormat
Le NameIdFormat est spécifié par l’application SaaS (ou le service fournisseur). Il définit le format attendu du NameId (ou Subject) dans la réponse SAML.
"NameIdFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
Les formats disponibles sont les suivants:
- Email Address (default) : "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
- Encrypted : "urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted"
- Persistent : "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
- Entity : "urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
- Kerberos : "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos"
- Windows Domain Qualified Name : "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName"
- X509SubjectName : "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"
- Unspecified : "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
- Transient : "urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
Définir le NameIdType
Le NameIdType définit quel type de données sera utilisé par UserLock SSO pour la valeur NameId.
"NameIdType": "Email"
Les valeurs supportées sont :
- Email, l’email de l’utilisateur connecté (ce qui signifie que vous devez ajouter un EmailDomain Editable dans la partie configuration)
- ImmutableId
- UserPrincipleName : L'UPN de l'utilisateur connecté
Définir les attributs (Attributes)
Les attributs sont des données complémentaires qui seront envoyées dans la réponse SAML. Référez-vous à la documentation de l’application SaaS pour savoir lesquels sont optionnels et lesquels sont obligatoires.
"Attributes": {
"MyAttribute": [
"FirstName",
"LastName"
]
}
La clé "MyAttribute" doit être remplacée par le nom de votre attribut.
"FirstName" et "LastName" signifie que cet attribut a des valeurs dans FirstName et LastName dans les paramètres de votre utilisateur AD.
Les valeurs supportées pour les attributs sont les suivantes:
- ImmutableId
- FirstName
- LastName
- DisplayName
- UserPrincipleName : L'UPN de l'utilisateur connecté
Si vous avez besoin de plusieurs attributs, vous pouvez les définir comme ceci:
"Attributes": {
"MyAttribute": [
"FirstName",
"LastName"
],
"MySecondAttribute": [
"DisplayName"
]
}
Si une valeur d’attribut n’est pas disponible pour configurer votre application SaaS, vous pouvez contacter le support d’IS Decisions.
La Configuration
Chaque application SaaS fonctionne différemment et est configurée de sa propre manière. Une fois que vous avez créé la configuration personnalisée, vous pourrez créer le profil SSO dans la console d’administration de UserLock SSO.
Cette partie va définir les étapes nécessaires pour créer le profil de l’application SaaS dans la console, et comment il est créé.
"Configuration": {
"MultiConfigAllowed": true,
"EditableInputs": {
"EmailDomain": "",
"CustomAppDomain": "https://{0}.contoso.com"
},
"LogoFilePath": "C:\\Images\logo.png",
"IssuerFormat": "https://{0}.contoso.com",
"AssertionConsumerServicesUri": "https://{0}.contoso.com/sso"
}
MultiConfigAllowed
"MultiConfigAllowed": true
Cette propriété est initialisée à true par défaut, ce qui signifie que vous pouvez créer de multiples profils de cette application SaaS dans la console UserLock SSO. Cela est possible lorsque le ProfileTypeId permet d’identifier un abonnement de l’application SaaS de manière unique.
Vous devez la configurer à false si le ProfileTypeId ne permet pas de différencier 2 abonnements différents de l’application SaaS.
Editable Inputs
Cette partie définit les champs qui doivent apparaître dans la console UserLock SSO lors de la configuration de l’application SaaS.
"EditableInputs": {
"EmailDomain": "",
"CustomAppDomain": "https://{0}.contoso.com"
}
Chaque entrée est composée de deux valeurs.
Par exemple, dans "CustomAppDomain": "https://{0}.contoso.com", la clé "CustomAppDomain" est ici pour définir quel type d’entrée sera demandé.
"https://{0}.contoso.com" est un exemple. Toutes les valeurs seront affichées mais seulement le {0} sera éditable sur l’interface de l’utilisateur.
Voici toutes les entrées supportées :
- CustomAppDomain domaine attribué par le fournisseur de l’application SaaS (ex: "https://{0}.contoso.com")
- Issuer
- AcsUrl
- EmailDomain: domaine des addresses email utilisées par les utilisateurs pour la connexion à l’application SaaS (obligatoire lorsque l’email est utilisé dans les Attributs ou le NameId)
- MandatoryCertificate: le certificate Saml à utiliser si l’application SaaS exige que les assertions Saml entrantes soient signées
- OptionalCertificate: le certificate Saml à utiliser si l’application SaaS permet de signer optionnellement les assertions Saml entrantes. Ce champ sera également optionnel.
Logo file path
Cette propriété permet de renseigner le chemin local d’un fichier contenant le logo de l’application SaaS (utilisé seulement pour l’affichage de l’onglet Configuration dans la console UserLock). Elle n’est pas obligatoire mais facilite l’administration de la console. Vous devez vous-même récupérer cette image et créer ce fichier.
"LogoFilePath": "C:\\Images\logo.png"
Issuer Format
La valeur de l’IssuerFormat doit être définie lorsque vous n’utilisez pas le champ éditable Issuer. Elle montre à UserLock SSO comment définir l’émetteur de cette application.
Si l’émetteur est dépendant d’une variable de sous-domaine et que vous avez de multiples configurations pour cette application SaaS, vous pouvez activer CustomAppDomain en entrée éditable et définir l’IssuerFormat comme ceci (où {0} est la partie qui sera remplacée par la valeur de CustomAppDomain) :
"IssuerFormat": "https://contoso.com"
AssertionConsumerServicesUri
La valeur de l’AssertionConsumerServicesUri doit être définie lorsque vous n’utilisez pas le champ éditable AcsUrl. Elle permet à UserLock SSO de définir l’Assertion Consumer Services Uri de votre application.
Si l’Assertion Consumer Services Uri de votre application est toujours la même, vous pouvez la définir directement et il sera utilisé tel quel.
"AssertionConsumerServicesUri": "https://contoso.com/sso"
Si l’Assertion Consumer Services Uri est dépendante d’une variable de sous-domaine et que vous avez de multiples configurations pour cette application SaaS, vous pouvez activer CustomAppDomain en entrée éditable et définir l’AssertionConsumerServicesUri comme ceci (où {0} est la partie qui sera remplacée par la valeur de CustomAppDomain) :
"AssertionConsumerServicesUri": "https://{0}.contoso.com/sso"