Dacă cineva se confruntă cu această problemă. Ai nevoie de două reguli.
Regula nr. 1: sAMAccountName la temp
Aceasta îi spune ADFS să caute în ActiveDirectory și să returneze toate conturile în care se potrivește UPN sau adresa de e-mail. Apoi regula stochează valoarea într-o variabilă temporară pe care o vom folosi în următoarea regulă.
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Proprietăți["http://schemas.xmlsoap.org/ws/2005/05/identity /claimproperties/format"] == "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"]
=> problema(magazin = „Active Directory”, tipuri = („claims:temp/attribute1”), interogare = „(&(objectCategory=persoană)(objectClass=user)(|(userPrincipalName={0})(mail= {0})));sAMAccountName;contoso\adfs_service_account", param = c.Value);
NB. The contoso\adfs_service_account
este important. ADFS are nevoie de acest lucru pentru a descoperi automat un controler de domeniu. Utilizați ORICE cont AD, atâta timp cât este un cont real.
Regula #2: temp la WindowsAccountName
Regula de mai sus returnează numai sAMAccountName, nu domeniul. In cazul meu am avut un singur domeniu. Ca atare, l-am codificat mai jos.
c:[Type == "claims:temp/attribute1"] => problem(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer = "AD AUTHORITY" , OriginalIssuer = "https://contoso.verify.ibm.com/saml/sps/saml20ip/saml20", Value = "contoso\" + c.Value);