- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试用java实现WEB SSO服务提供者。我正在使用 Shibboleth 身份提供商。一切工作正常,直到身份验证步骤,我成功地为用户创建 session /设置 cookie。但是,当我尝试使用单点注销功能时,我收到来自 shibboleth IdP 的“RequestDenied”响应。我检查了日志,其中写着入站消息发行者未经过身份验证。同一发行者在登录步骤中工作正常,但在注销步骤中出现错误。任何要更新的配置文件,任何指针,建议吗?这是我的注销请求。
<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
ID="jiojjcjckjaflbedlcjcpcnecigbjhaekalmfkcg"
IssueInstant="2014-02-24T23:30:25.257Z"
NotOnOrAfter="2014-02-24T23:35:25.257Z"
Version="2.0"
>
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://localhost/sp/shibboleth</saml:Issuer>
<saml:NameID xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
NameQualifier="urn:oasis:names:tc:SAML:2.0:assertion"
>rohit</saml:NameID>
<samlp:SessionIndex/>
</samlp:LogoutRequest>
这就是我得到的回应。
<saml2p:LogoutResponse xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="https://localhost:8091/SSO/consumer"
ID="_02a145f4992cb2e11a8fc4aa43a74096"
InResponseTo="jiojjcjckjaflbedlcjcpcnecigbjhaekalmfkcg"
IssueInstant="2014-02-24T23:30:25.334Z"
Version="2.0"
>
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
>https://localhost/shibboleth</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder">
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:RequestDenied" />
</saml2p:StatusCode>
<saml2p:StatusMessage>Message did not meet security requirements</saml2p:StatusMessage>
</saml2p:Status>
</saml2p:LogoutResponse>
最佳答案
您为 SLO 配置文件启用了名为“强制消息身份验证”的设置。
您通常可以在依赖方配置文件的底部找到该设置。它应该看起来像这样。
<security:SecurityPolicy id="shibboleth.SAML2SLOSecurityPolicy" xsi:type="security:SecurityPolicyType">
<security:Rule xsi:type="samlsec:Replay"/>
<security:Rule xsi:type="samlsec:IssueInstant"/>
<security:Rule xsi:type="samlsec:ProtocolWithXMLSignature" trustEngineRef="shibboleth.SignatureTrustEngine"/>
<security:Rule xsi:type="samlsec:SAML2HTTPRedirectSimpleSign" trustEngineRef="shibboleth.SignatureTrustEngine"/>
<security:Rule xsi:type="samlsec:SAML2HTTPPostSimpleSign" trustEngineRef="shibboleth.SignatureTrustEngine"/>
<security:Rule xsi:type="security:ClientCertAuth" trustEngineRef="shibboleth.CredentialTrustEngine"/>
<security:Rule xsi:type="samlsec:MandatoryIssuer"/>
<security:Rule xsi:type="security:MandatoryMessageAuthentication"/>
</security:SecurityPolicy>
强制消息身份验证将要求您设置一种方法来验证消息是否来自受信任的对等点。通常这是通过签名请求完成的。 SP 可以对其元数据进行签名并公开证书以进行验证。 Shibboleth 可以设置为信任来自 SP 的证书。
实现此目的的一种方法是在元数据提供程序中使用类似以下内容为 SP 设置元数据过滤器:
<metadata:MetadataFilter xsi:type="metadata:SignatureValidation"
trustEngineRef="shibboleth.MetadataTrustEngine"
requireSignedMetadata="true" />
这引用了一个名为 shibboleth.MetadataTrustEngine
的信任引擎。信任引擎可用于签名验证。
信任引擎也在依赖方配置中定义,因此只需查找它即可。默认设置如下所示:
<security:TrustEngine id="shibboleth.SignatureTrustEngine" xsi:type="security:SignatureChaining">
<security:TrustEngine id="shibboleth.SignatureMetadataExplicitKeyTrustEngine" xsi:type="security:MetadataExplicitKeySignature" metadataProviderRef="ShibbolethMetadata"/>
<security:TrustEngine id="shibboleth.SignatureMetadataPKIXTrustEngine" xsi:type="security:MetadataPKIXSignature" metadataProviderRef="ShibbolethMetadata"/>
</security:TrustEngine>
如果您已将元数据提供程序定义为默认链接元数据提供程序的一部分,这应该足够了。
您也可以通过注释掉消息身份验证策略来关闭:
<security:Rule xsi:type="security:MandatoryMessageAuthentication"/>
关于java - 单一注销不适用于 Shibboleth IdP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961220/
/var/log/messages 不断重复以下内容: WARN Shibboleth.Config : DEPRECATED: legacy 2.0 configuration, support w
我在本地主机上安装了 Shibboleth 服务提供程序。我想连接到 shibboleth idp。 Error Message: No peer endpoint available to whic
我正在尝试满足在通过 Shibboleth 进行身份验证后始终将用户重定向到相同 URL 的要求。 目前,它将重定向到我们想要忽略的引荐来源网址(可以更改)并将其替换为我们自己的引荐来源网址(永远不会
我已将 Shibboleth IdP 3 配置为针对 LDAP (AD) 进行身份验证。 当我访问以下 URL 时 https://FDQN-of-the-IdP/idp/status 我看到以下页面
我正在尝试配置 Shibboleth 身份提供程序以与现有的 SAML 2.0 服务提供程序一起使用(我假设它也是 Shibboleth),但它失败并显示 InvalidNameIDPolicy 状态
我根据此链接一步一步地在 tomcat 8 上设置 shibboleth idp https://wiki.shibboleth.net/confluence/display/IDP30/Apache
我需要在 Shibbolethlogin 之后和重定向到 SP url 之前执行操作。对我来说,最好的解决方案是“Shib 页面登录”-> 登录正常-> 重定向到我的自定义页面-> 重定向到 sp u
我使用 Shibboleth 成功登录到我的服务提供商测试页面。然后我转到/Shibboleth.sso/Session 页面,我看到以下内容: Attributes affiliation: 1 v
当从命令行 (/usr/sbin/shibd -t) 测试 shibd 时,我看到了这个警告: WARN Shibboleth.Application : empty/missing cookiePr
我的 IIS 服务器上托管有一个 ColdFusion 应用程序。我添加了Shibboleth服务到我的 Web IIS,并且 CGI/过滤器已设置为使用它。我将我的申请添加到 testshib联盟并
我的 IIS 服务器上托管有一个 ColdFusion 应用程序。我添加了Shibboleth服务到我的 Web IIS,并且 CGI/过滤器已设置为使用它。我将我的申请添加到 testshib联盟并
我正在努力将 SAML 供应商 (Freshdesk) 集成到我的 Shibboleth 环境中。我的问题是 nameID 格式为空。 阅读我的供应商的文档,他们想要 example@test.fre
我一直在尝试用java实现WEB SSO服务提供者。我正在使用 Shibboleth 身份提供商。一切工作正常,直到身份验证步骤,我成功地为用户创建 session /设置 cookie。但是,当我尝
我使用 angularjs 创建了一个 Web 应用程序。我在我的登录 Controller 上集成了 Shibboleth 进行身份验证。我知道可以通过 cookie 概念清除 session 。
我到处寻找这个问题的答案,但没有成功。 我在我的 OSX 网络服务器上安装了 PHP。当我访问 myserver.com/test.php 时,一切正常。 但是,我有一个名为/shibboleth/的
我正试图从受 shibboleth 身份验证保护的页面上抓取数据。我无法让 cURL 和 webisoget 正常工作。所以,我正在尝试 wget,因为我认为我可以通过我的证书并获取我想要的页面。但是
我正在研究在 Django 部署中使用 Shibboleth 的选项。从我发现的情况来看,事情看起来有些稀疏。任何人都可以评论以下内容吗? 有人在使用 django_shibboleth 模块吗(见
我正在使用 shibboleth 服务以实现以下目标 用户试图访问 https://sp.dev.myserver.com/secure/ 中的安全资源 重定向到 WAYF 选择 idp 并重定向到
我正在为一所使用 Shibboleth 对学生进行身份验证的大学编写一个 android 应用程序。 由于我正在制作一个 android native 应用程序(不是 webview),我想以编程方式
我有一个 Drupal 站点,我正在为一个客户挺身而出。 我被要求使用 SAML2 使用单点登录(我将是服务提供商,我的客户将是身份提供商)。 到目前为止,我发现的最好的事情是 SimpleSAMLP
我是一名优秀的程序员,十分优秀!