2016-11-11 32 views
2

我正在使用Kentor.AuthService.Idp項目作爲起點。如何爲Kentor idprovider添加自定義元數據?

的SAML支持服務提供商,我試圖單點登錄上需要以下屬性是元數據文件的一部分:

登錄ID,合作伙伴ID,平臺,用戶的電子郵件

如何將這些添加到現有元數據或創建包含這些元數據的新元數據?

服務提供商文件明確規定:

屬性列表必須包含在元數據文件,並在斷言你產生

是否包括這些屬性在元數據實現服務提供者的要求,還是在斷言中包含這些屬性是一個完全不同的任務,而不是將它們包含在元數據中?

回答

0

這是兩件不同的事情。

看起來他們希望您指定元數據支持的屬性列表。 AuthServices使用的System.IdentityModel元數據類支持該類,但您必須自行添加它們。

在生成的斷言中添加屬性是一個不同的任務。您可以通過將它們添加爲用於創建斷言的身份的聲明來實現。

+0

我試圖用代碼示例回答我自己的問題。你可以看一下嗎?如果我正確解釋你的答案,我不確定。我也不確定如何使用描述符和聲明來組建一個認證機構。謝謝! –

0

基於Anders的答案,我想出了以下代碼。

元數據支持的屬性生成斷言

var claims = new List<Claim>(); 
claims.Add(new Claim("platform", "desktop")); 
claims.Add(new Claim("partnerid", "partner123")); 
claims.Add(new Claim("login-id", "user9")); 
claims.Add(new Claim("useremail", "[email protected]")); 
var identity = new ClaimsIdentity(claims); 

我不能確定如何索賠添加到斷言

var descriptor = new IdentityProviderSingleSignOnDescriptor(); 
descriptor.SupportedAttributes.Add(new Saml2Attribute("platform", "desktop")); 
descriptor.SupportedAttributes.Add(new Saml2Attribute("partnerid", "partner123")); 
descriptor.SupportedAttributes.Add(new Saml2Attribute("login-id", "user9")); 
descriptor.SupportedAttributes.Add(new Saml2Attribute("useremail", "[email protected]")); 

屬性。

相關問題