我正在尝试配置 shibboleth。当我转到 时https://mysite/secure/index.php
,它正常工作,我可以进行身份验证等。但是当我转到https://mysite/Shibboleth.sso/Status
(或任何其他https://mysite/Shibboleth.sso/*
) 时,我收到以下消息:
shibsp::配置异常
系统于 2017 年 7 月 10 日星期一 12:06:32 遇到错误
要报告此问题,请联系网站管理员 root@localhost。
请在任何电子邮件中包含以下信息:
shibsp::ConfigurationException 在(
https://mysite/Shibboleth.sso/Session/
)在未配置的位置调用 Shibboleth 处理程序。
我的 shibboleth2.xml 如下(为简洁起见删除了注释):
<SPConfig xmlns="urn:mace:shibboleth:2.0:native:sp:config" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" clockSkew="1800">
<ApplicationDefaults entityID="https://mysite/shibboleth" REMOTE_USER="eppn">
<Sessions lifetime="28800" timeout="3600" checkAddress="false" relayState="ss:mem" handlerSSL="true" cookieProps="https">
<SSO entityID="https://idp.testshib.org/idp/shibboleth">
SAML2 SAML1
</SSO>
<Logout>SAML2 Local</Logout>
<Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>
<Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/>
<Handler type="Session" Location="/Session" showAttributeValues="true"/>
<Handler type="DiscoveryFeed" Location="/DiscoFeed"/>
</Sessions>
<Errors supportContact="root@localhost" logoLocation="/shibboleth-sp/logo.jpg" styleSheet="/shibboleth-sp/main.css"/>
<MetadataProvider type="XML" uri="http://www.testshib.org/metadata/testshib-providers.xml" backingFilePath="testshib-two-idp-metadata.xml" reloadInterval="180000" />
<AttributeExtractor type="XML" validate="true" path="attribute-map.xml"/>
<AttributeResolver type="Query" subjectMatch="true"/>
<AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>
<CredentialResolver type="File" key="my_key" certificate="my_cert" extractNames="false"/>
</ApplicationDefaults>
<SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>
<ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>
</SPConfig>
我检查了能找到的每个配置文件,能想到的每个设置。我打开了 native.logger 和 shibd.logger 的调试模式,但什么也没发现。
哪里出了问题?或者我应该看哪里?
答案1
找到答案了:
问题实际上出在 Apache 的配置方式上。它重写 URL 以在每个 URL 末尾添加一个 /。所以https://mysite/Shibboleth.sso/Session
变成了https://mysite/Shibboleth.sso/Session/
。这总是小事!
由于 Apache 配置对于项目的另一部分是必需的,因此我更改了 Location 属性以在末尾添加斜线,效果非常好!HT- Scott Cantor[电子邮件保护]邮件列表!