Passer au contenu

Articles Techniques, Déploiement Cloud & Hybrid

ADFS : Comment récupérer les appartenances de groupes d'une forêt trustée dans les Claims ?

par Mati Sapeirera 10 Apr 2023 0 commentaire(s)

Par défaut, ADFS est capable de mettre dans un Claim les appartenances de groupe du domaine d’un utilisateur dans le jeton émis.

C’est relativement simple, une règle Built-in permet d’arriver à ça:

Toutefois, ADFS n'inclut pas les groupes d’une forêt Trustée dont on ferait partie.

Dans certains scénarios, cela peut avoir du sens, et c’est possible avec une règle custom,  voyons voir comment faire ceci.

Nous allons avoir besoin de ces 5 règles:

Et dans mon exemple, ma forêt Trustée s’appelle EXT.local.

  1. Règle 1 - Récupérer le ForeignPrincipal

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid", Issuer == "AD AUTHORITY"]

 => issue(store = "Active Directory", types = ("http://TrustGroups/phase1"), query = "objectSid={0};distinguishedName;EXT\username", param = c.Value);

  1. Règle 2 - Récupérer les Groupes dont le ForeignPrincipal fait partie

c:[Type == "http://TrustGroups/phase1"]

 => issue(store = "Active Directory", types = ("http://TrustGroups/phase2"), query = "(member:1.2.840.113556.1.4.1941:={0});distinguishedName;EXT\username", param = c.Value);

  1. Règle 3 - Mise en forme du Résultat #1

c:[Type == "http://TrustGroups/phase2"]

 => issue(Type = "http://TrustGroups/phase3", Value = regexreplace(c.Value, ",[^\n]*", ""));

  1. Règle 4 - Mise en forme du Résultat #2

c:[Type == "http://TrustGroups/phase3"]

 => issue(Type = "http://TrustGroups/phase4", Value = regexreplace(c.Value, "^CN=", ""));

  1. Règle 5 - Ajout des Groupes dans le Claim Group

c:[Type == "http://TrustGroups/phase4"]

 => issue(Type = "http://schemas.xmlsoap.org/claims/Group", Value = c.Value);

Et voici le résultat dans le Jeton:

NB: Il n’est pas nécessaire de faire un “=>issue” pour chaque phase (un simple “=>add” suffirait), mais dans l’exemple c’est plus simple et visuel, car on a le résultat de chaque phase dans le jeton.

Attention, c’est assez consommateur en performance, alors monitorez bien vos serveurs ADFS !

Article précedent
Article suivant

Laisser un commentaire

Veuillez noter que les commentaires doivent être approuvés avant d'être publiés.

Merci de vous être abonné !

Cet email a été enregistré !

Acheter ce look

Choisissez les options

Modifier l'option
C'est de retour en stock !
this is just a warning
Se connecter
Panier
0 Articles