2017-05-10 83 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