【问题标题】:How to add custom metadata for Kentor idprovider?如何为 Kentor idprovider 添加自定义元数据?
【发布时间】:2016-11-11 07:28:30
【问题描述】:

我使用 Kentor.AuthService.Idp 项目作为起点。

我尝试单点登录的启用 SAML 的服务提供商要求以下属性是元数据文件的一部分:

登录 ID、合作伙伴 ID、平台、用户电子邮件

如何将这些添加到现有元数据或创建包含这些的新元数据?

服务提供者文档具体说明:

属性列表必须包含在元数据文件和您生成的断言中

在元数据中包含这些属性是否满足服务提供商的要求,或者在断言中包含这些属性与将它们包含在元数据中是完全不同的任务?

【问题讨论】:

    标签: c# client single-sign-on saml-2.0 kentor-authservices


    【解决方案1】:

    这是两个不同的东西。

    看起来他们希望您在元数据中指定支持的属性列表。 AuthServices 使用的 System.IdentityModel 元数据类支持这一点,但您必须自己添加它们。

    在生成的断言上添加属性是一项不同的任务。您可以通过将它们添加为您用于创建断言的身份的声明来做到这一点。

    【讨论】:

    • 我试图用代码示例回答我自己的问题。你能看看吗?我不确定我是否正确解释了您的答案。我也不确定如何使用描述符和声明来形成 sso auth 帖子。谢谢!
    【解决方案2】:

    根据 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);
    

    我不确定如何将声明添加到断言中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 2017-06-25
      • 2012-04-06
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多