我正在使用 Kentor.AuthService.Idp 项目作为起点。
我尝试单点登录的SAML启用服务提供商要求以下属性成为元数据文件的一部分:
login-id,partner-id,platform,user-email
如何将这些添加到现有元数据或创建包含这些元数据的新元数据?
服务提供商文档明确指出:
属性列表必须包含在元数据文件和您生成的断言中
在元数据中包含这些属性是否满足服务提供者要求,或者在断言中包含这些属性与在元数据中包含它们完全不同的任务?
答案 0 :(得分:0)
这是两件不同的事情。
看起来他们希望您指定元数据支持的属性列表。 AuthServices使用的System.IdentityModel元数据类支持这一点,但您必须自己添加它们。
在生成的断言上添加属性是一项不同的任务。您可以通过将它们添加为用于创建断言的标识的声明来实现。
答案 1 :(得分:0)
根据Anders的回答,我想出了以下代码。
元数据支持的属性
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", "donotreply@domain.com"));
生成的断言的属性
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", "noreply@domain.com"));
var identity = new ClaimsIdentity(claims);
我不确定如何将声明添加到断言中。