作为IDP的OpenAM不会重定向回SP

时间:2015-01-07 15:45:30

标签: authentication saml openam

我遇到了OpenAM的问题。需要你的帮助。

我安装了OpenAM并将其配置为IDP - 设置名称和信任圈。然后我通过上传 SP元数据添加了远程SP,见下文

<?xml version="1.0" encoding="UTF-8"?>
<EntitiesDescriptor Name="urn:mace:shibboleth:testshib:two" xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" mlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EntityDescriptor entityID="http://192.168.0.6:8080/employee/">
    <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol http://schemas.xmlsoap.org/ws/2003/07/secext">
        <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
        </NameIDFormat>
        <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
        </NameIDFormat>
        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://192.168.0.6:8080/employee/" index="1" isDefault="true" />
    </SPSSODescriptor>
</EntityDescriptor> 
</EntitiesDescriptor>

SP和IDP属于同一个信任圈。

当我从SP到IDP进行身份验证的SAML请求时,我使用 SAMLRequest = ... 作为URL参数进入OpenAM的登录页面。已解码的 SAMLRequest 位于

之下
<samlp:AuthnRequest AssertionConsumerServiceURL="http://192.168.0.6:8080/employee/"
Destination="http://192.168.0.7:8181/openam/" ForceAuthn="false"
ID="ID_479ff8a2-8dc5-44b5-997f-0438a2d87417" IsPassive="false"
IssueInstant="2015-01-07T13:31:01.067Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0">
    <saml:Issuer>http://192.168.0.6:8080/employee/</saml:Issuer>
    <samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" />
</samlp:AuthnRequest>

然后我登录并进入OpenAM中的用户个人资料页面,而不是重定向到SP。为什么会这样?我应该配置什么来启用重定向回SP?

1 个答案:

答案 0 :(得分:0)

你可以做几件事:

  • 安装OpenAM时不要使用IP地址,因为cookie不会保存在这些地址上,因此您很容易遇到类似这样的奇怪问题。
  • 如果您启用了goto URL验证(默认情况下已禁用),那么就会出现一些无法正确处理重定向网址的旧错误。不确定您使用的是哪个版本,因此这可能不适用于您。
  • 您应该使用LiveHTTPHeaders Firefox插件等类似的工具捕获网络流量,这样您就可以看到HTTP请求是如何发生的。这应该可以帮助您确定出错的地方。