AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 790521
Accepted
bishop
bishop
Asked: 2016-07-19 10:45:37 +0800 CST2016-07-19 10:45:37 +0800 CST 2016-07-19 10:45:37 +0800 CST

跳过未映射的 SAML 2.0 属性,即使 name 和 nameFormat 匹配

  • 772

SP 运行 Shibboleth 2.5.6。对于一个特定的 IdP,我有以下属性映射:

<Attribute name="role"
    nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
    id="role" />
<Attribute name="urn:mace:dir:attribute-def:givenName"
    nameFormat="urn:mace:shibboleth:1.0:attributeNamespace:uri"
    id="givenName" />

我收到一封电报,其中包含:

<AttributeStatement>
    <Attribute Name="role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
        <AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Educator</AttributeValue>
    </Attribute>
    <Attribute Name="urn:mace:dir:attribute-def:givenName" NameFormat="urn:mace:shibboleth:1.0:attributeNamespace:uri">
        <AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">intraguest</AttributeValue>
    </Attribute>
</AttributeStatement>

哪些日志:

Shibboleth.AttributeExtractor.XML : creating mapping for Attribute role, Format/Namespace:urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
Shibboleth.AttributeExtractor.XML : creating mapping for Attribute urn:mace:dir:attribute-def:givenName
...
DEBUG Shibboleth.AttributeDecoder.String [1]: decoding SimpleAttribute (role) from SAML 2 Attribute (role) with 1 value(s)
INFO Shibboleth.AttributeExtractor.XML [1]: skipping unmapped SAML 2.0 Attribute with Name: urn:mace:dir:attribute-def:givenName, Format:urn:mace:shibboleth:1.0:attributeNamespace:uri

为什么被givenName跳过,当它name和nameFormat匹配?

我注意到Format/Namespace“创建映射”日志行中缺少注释givenName,但我认为这是因为给定的nameFormat匹配默认值。


更新:

IdP 是 PingFederate 源,其元数据声明为 SAML 2。以下是元数据的相关摘录:

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" ID="..." entityID="...">
    <md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
        <saml:Attribute xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Name="urn:mace:dir:attribute-def:givenName" NameFormat="urn:mace:shibboleth:1.0:attributeNamespace:uri"/>
        <saml:Attribute xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Name="role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"/>
    </md:IDPSSODescriptor>
</md:EntityDescriptor>
saml shibboleth
  • 1 1 个回答
  • 4403 Views

1 个回答

  • Voted
  1. Best Answer
    Tom Desair
    2016-12-22T04:55:44+08:002016-12-22T04:55:44+08:00

    我们遇到了同样的问题。显然 Shibboleth 不能混合 SAML 1 和 SAML 2 的格式。您必须按如下方式使用它们(https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAddAttribute):

    • SAML 1:
      • 瓮:狼牙棒:shibboleth:1.0:attributeNamespace:uri (默认)
      • 如果您想用另一种格式(但不是 SAML 2 格式)映射属性,则必须使用 nameFormat 属性在属性映射中指定它。
    • SAML 2:
      • urn:oasis:names:tc:SAML:2.0:attrname-format:uri (默认)
      • urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified (默认)
      • 如果您想用另一种格式(但不是 SAML 1 格式)映射属性,则必须使用 nameFormat 属性在属性映射中指定它。

    因此,您遇到的问题是您收到一条 SAML 2 消息,其属性使用 SAML 1 格式,并且 Shibboleth 不支持,即使您明确告诉 Shibboleth 使用 nameFormat 属性使用 SAML1 格式。

    我们通过要求 PingFederate IdP 团队使用 SAML 2“urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified”格式向我们发送属性来解决了这个问题(因为这显然是一种易于PingFederate 中的支持)。在我们的属性映射中,我们不使用 nameFormat 属性,因为这种格式是 Shibboleth 的默认格式。

    我希望这可以帮助您解决问题。

    • 3

相关问题

  • SAML 服务提供商登录时出现 ADFS 错误

  • 斯堪的纳维亚字符在 Shibboleth SP 标题属性中变得混乱

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve