HTTP 重定向绑定 SAML 请求

2023-11-24

假设执行 SP-init SSO,使用 HTTP-Redirect Binding 而不是 HTTP-POST Binding,并且需要签名的 AuthnRequest。这意味着在 URL 中包含 SAMLRequest。

Q1.我需要在 URL 中包含签名还是仅嵌入 SAMLRequest 中?

重定向网址是

http://idp.example.com/SSOService.php?SAMLRequest={val1}&Signature={val2}&SigAlg={val3}

与我的 SAMLRequest(无签名)

<samlp:AuthnRequest ID="" Version="2.0" IssueInstant="2015-05-22T02:47:38Z" Destination="" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="" 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:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" AllowCreate="true" />
    <samlp:RequestedAuthnContext Comparison="exact" />
    <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</samlp:AuthnRequest>

or

http://idp.example.com/SSOService.php?SAMLRequest={val1}

与我的 SAMLRequest(嵌入签名)

<samlp:AuthnRequest ID="" Version="2.0" IssueInstant="2015-05-22T02:47:38Z" Destination="" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="" 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:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" AllowCreate="true" />
    <samlp:RequestedAuthnContext Comparison="exact" />
    <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        <SignedInfo>
            <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
            <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
            <Reference URI="">
                <Transforms>
                    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                </Transforms>
                <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                <DigestValue>v5h...</DigestValue>
            </Reference>
        </SignedInfo>
        <SignatureValue>M4...</SignatureValue>
    </Signature>
</samlp:AuthnRequest>

Q2。将 base64 和 url 编码为 url 参数的值是否正确?

Q3。 X509 证书包含在我的 SP 元数据中,它是 base64 编码的吗?

我有一个证书的 cert.pem 文件,我是否需要对其进行 base64 编码,或者直接包含证书。

-----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----

SP元数据.xml

<KeyDescriptor use="signing">
            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                <ds:X509Data>
                    <ds:X509Certificate>MIIFnzCCA4egAwI...</ds:X509Certificate>
                </ds:X509Data>
            </ds:KeyInfo>
        </KeyDescriptor>

A1:使用重定向绑定时,您将签名放在 URL 查询参数中

A2:所有 URL 查询参数都应进行 url 编码,除此之外,仅 SAML 请求应进行压缩和 Base64 编码。

A3:使用 PEM 格式,因为它已经进行了 Base64 编码,但省略了开始和结束分隔符(----BEGIN-- 和 ----END CERT...)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 重定向绑定 SAML 请求 的相关文章

随机推荐

  • IEquatable 和仅仅重写 Object.Equals() 有什么区别?

    我想要我的Food类能够在它等于另一个实例时进行测试Food 稍后我将针对列表使用它 并且我想使用它List Contains 方法 我应该实施IEquatable
  • 使用 Javascript 语法高亮代码 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 您可以推荐哪些 Javas
  • 如何在前台运行 GcmListenerService

    我的 GCM 服务有时会出现问题 当我的智能手机的 RAM 自动清除时 该服务会关闭 请阅读this如果您需要更多详细信息 据我了解 如果我将服务设置为在前台运行 它应该有助于系统用 RAM 删除它 方法为Service class onS
  • HTML5 与 HTML4 - h1 标签呈现有额外的空间 - 如何删除?

    我选取了一个 DTD 为 HTML4 Transitional 的页面 并将文档类型更改为h1 和其下方的 div 之间会出现额外的空间 我没有对标记或 CSS 进行任何其他更改 JSFiddle 示例 http jsfiddle net
  • 是否有不需要空终止字符串的 strtol 等效项?

    是否有类似于 strtol 的标准 C 函数 它将采用 char 和非空终止字符串的长度 我知道我可以将字符串复制到空终止区域 但出于效率原因 这是不可取的 标准库中没有这样的函数 您要么必须使用临时缓冲区方法 要么从头开始编写自己的函数
  • Python导入csv到列表[重复]

    这个问题在这里已经有答案了 我有一个包含大约 2000 条记录的 CSV 文件 每条记录都有一个字符串和一个类别 This is the first line Line1 This is the second line Line2 This
  • iOS 版 Google 地图,swift - 如何显示标记之间的整个折线?

    我正在尝试在谷歌地图视图中拟合一条折线 折线是通过谷歌地图方向API中的overview polyline获取的 想知道如何将编码的折线转换为可以使用的东西 我需要使折线适合地图视图 我发现要做的就是适应边界以显示所有标记 但不显示整个折线
  • 将代码与两个 subversion 存储库同步

    首先介绍一下背景 我正在使用来自远程 SVN 存储库的 基本 代码 不受我的控制 代码还没有标记 所以我总是需要跟上主干 由于多种原因 最重要的是我们对代码的本地扩展具有 利基 性质 并且旨在解决使用代码的项目的特定问题 我无法使用远程存储
  • Kafka I/O 错误 java.io.EOFException: null

    我正在使用 Kafka 0 8 2 0 Scala 2 10 在我的日志文件中 我间歇性地看到以下消息 这似乎是一个连接问题 但我正在本地主机中运行这两个问题 这是无害的警告消息还是我应该采取措施来避免它 2015 10 30 14 12
  • 从图表系列获取主题颜色信息

    我有一个使用一种颜色的图表系列 它可以是msoThemeColorAccent lt gt 或任何其他 用于标记线 另一种颜色用于标记填充 可以是msoThemeColorAccent lt gt 打火机 x 或任何其他 并且没有线条 我想
  • find 命令查找文件并将它们连接起来

    我正在尝试查找所有类型的文件 gz and cat他们到total gz我想我已经很接近这一点了 这是我用来列出所有的命令 gzfiles find home downloaded maxdepth 3 type d name exec b
  • Toast:在 Android 中集成 Google Plus 时发生内部错误

    我正在将 Google Plus 集成到我的 Android 应用程序中 我已经在 Google API 控制台中创建了该项目 我创建了 OAuth 客户端 ID 并仔细检查了包名称和密钥库 SHA1 但两者都是正确的 但我仍然得到Inte
  • Quartz 中每 50 秒执行一次 Cron 表达式

    我每 50 秒使用 Quartz 和 cron 表达式运行我的作业 Cron Expression 0 50 发生的情况是我的工作以秒为单位运行 50 60 50 60 而且不是每 50 秒一次 并且不在第二个 0 处运行 从 0 开始每
  • 获取 JSON 对象的大小

    我有一个由 AJAX 请求返回的 JSON 对象 但我遇到了一些问题 length因为它不断返回undefined 只是想知道我是否正确使用它 console log data length console log data phones
  • Apache Velocity:是否有一种标准方法可以从命令行验证模板的正确性?

    我们的网站使用阿帕奇速度模板语言 我们的内容管理系统已经检查所有生成的 XML 文档的格式是否良好 我们被要求在将文件推送到实时站点之前检查文档以捕获 Velocity 语法错误 是否有一种标准方法可以从命令行验证 Velocity 模板的
  • 损失与准确率之间的关系

    在训练 CNN 模型时 实际上有可能在每个时期减少损失并降低准确度吗 我在训练时得到以下结果 有人可以解释发生这种情况的可能原因吗 至少有 5 个原因可能导致此类行为 异常值 假设您有 10 张完全相同的图像 其中 9 张属于类别A一个属于
  • 所有 Python 类都应该扩展对象吗? [复制]

    这个问题在这里已经有答案了 我发现以下两项都有效 class Foo def a self print hello class Foo object def a self print hello 所有 Python 类都应该扩展对象吗 不扩
  • 传递给宏的变量在错误的命名空间中解析?

    The Noir macro defpage给我带来了一点麻烦 我正在尝试构建与此类似的调用 defpage post some url data some stuff 但是 不要使用关键字 post我想使用一个变量 如下所示 def my
  • 存储过程版本控制

    如何管理存储过程的修订 我们在 SQL Server 2005 上有一个 BI 解决方案 包含数百个存储过程 将这些内容导入 Subversion 的好方法是什么 您推荐使用哪些工具将存储过程编写为文件 毫无疑问 您可以购买许多现成的产品
  • HTTP 重定向绑定 SAML 请求

    假设执行 SP init SSO 使用 HTTP Redirect Binding 而不是 HTTP POST Binding 并且需要签名的 AuthnRequest 这意味着在 URL 中包含 SAMLRequest Q1 我需要在 U