【问题标题】:Is it valid to have more than 1 <saml:assertions> in a SAML Token response在 SAML 令牌响应中包含超过 1 个 <saml:assertions> 是否有效
【发布时间】:2015-04-19 23:40:51
【问题描述】:

我正在尝试提供现有 SAML 令牌系统与 JWT 令牌架构之间的兼容性。当前系统生成的 SAML 令牌结构如下:

在一个 SAML 令牌中包含多个是否有效,如果是,下面的 JWT 表示形式是什么

<?xml version="1.0" encoding="UTF-8"?>
<samlp:Response ID="aed9fa15c020fde" InResponseTo="acd3a67cb14a1d94" IssueInstant="2015-02-18T18:58:14.262Z" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">......</saml:Issuer>
  <samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
  </samlp:Status>
  <saml:Assertion ID="5d41027a4e2c2855" IssueInstant="2015-02-18T18:58:14.262Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
    <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">......</saml:Issuer>
    <saml:Subject>
      <saml:NameID NameQualifier="USER" SPProvidedID="1047259662">ab_idl1</saml:NameID>
    </saml:Subject>
    <saml:Conditions NotBefore="2015-02-18T18:48:14.262Z" NotOnOrAfter="2015-06-20T18:58:14.262Z"/>
  </saml:Assertion>
  <saml:Assertion ID="5ea9fbba7ab940c0" IssueInstant="2015-02-18T18:58:14.262Z" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
    <saml:Issuer>APPID-b1713f46d4e1</saml:Issuer>
    <saml:Subject>
      <saml:NameID NameQualifier="USER" SPProvidedID="1047259662">user_name_app_name</saml:NameID>
    </saml:Subject>
    <saml:Conditions NotBefore="2015-02-18T18:48:14.262Z" NotOnOrAfter="2015-06-20T18:58:14.262Z"/>
    <saml:AttributeStatement>
      <saml:Attribute FriendlyName="user_id1" Name="user_id">
        <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">user_name_app_name</saml:AttributeValue>
      </saml:Attribute>
    </saml:AttributeStatement>
  </saml:Assertion>
</samlp:Response>

【问题讨论】:

    标签: compatibility saml-2.0 jwt


    【解决方案1】:

    SAML 规范允许在单个响应中包含多个断言,但目前没有很多 SAML 实现能够生成或使用此类 SAML 消息。

    可比较的 JWT 表示可能包含两个声明(“5d41027a4e2c2855”和“5ea9fbba7ab940c0”,其值设置为包含属性名称/值对的嵌套 JWT 对象。SAML 断言和 JWT 之间没有正式映射.

    【讨论】:

    • 您能否提供上述可比表示的 JSON 表示。我的问题是 JWT 规范只有一个 Issuer,而上面的 SAML 有两个。
    • iss 是可选的,因此您可以将其留在顶层。
    猜你喜欢
    • 1970-01-01
    • 2013-05-24
    • 2011-01-11
    • 1970-01-01
    • 2019-03-19
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    相关资源
    最近更新 更多