2017-05-10 78 views
0

我正在尝试在adfs中创建自定义声明规则,以将电子邮件地址重写为NameId但小写。ADFS自定义声明规则电子邮件至LowerCase SAML响应

原因是Responsys读取索赔,并且在比较SAML响应中的NameId失败时区分大小写。我们的活动目录的电子邮件地址为一些用户的混合大小写,其他用户则为小写。例如LJeary @ or ljeary @

我已经添加了一个自定义属性存储来完成小写字母部分,但我没有看到SAMLResponse中的声明。

http://macintheoffice.com/?q=node/5

我需要帮助创建一个自定义声明规则,这将成功发送的电子邮件地址作为小写在传出要求填充NameID

应该看到这

<Subject> 
     <NameID>[email protected]</NameID> 
     <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> 
      <SubjectConfirmationData NotOnOrAfter="2017-05-10T03:24:20.358Z" Recipient="https://interact2.responsys.net/authentication/login/loginSSO" /> 
     </SubjectConfirmation> 
    </Subject> 

但见这

<Subject> 
     <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> 
      <SubjectConfirmationData NotOnOrAfter="2017-05-10T03:24:20.358Z" Recipient="https://interact2.responsys.net/authentication/login/loginSSO" /> 
     </SubjectConfirmation> 
    </Subject> 

错过了NameID属性。使用

自定义声明规则是

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] 
=> issue(store = "StringProcessing", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"), query = "toLower", param = c.Value); 

答案: 感谢@nzpcmad。通过返回电子邮件地址并将其存储在传入的索赔中,获得了类似的流程。然后创建另一个规则,将电子邮件传入声明转换降低并分配给传出声明NameID。

ADFS Claim Rules

回答

1

确定的东西正在从自定义属性商店退换吗?

该错误可能是由于缺少NameID格式。

尝试返回虚拟声明,例如http://company/temp其中包含小写电子邮件,然后使用转换规则将虚拟声明转换为NameID。

你也可以code this yourself

如果你喜欢typing :-)

+0

感谢@nzpcmad ..通过返回的电子邮件地址和传入的要求在存储与一个类似的过程走了过来。然后创建另一个规则,将电子邮件传入声明转换降低并分配给传出声明NameID。 – FPVjeary