我在试着配置shibboleth。当我转到https://mysite/secure/index.php时,它正常工作,我可以进行身份验证等等,但是当我转到https://mysite/Shibboleth.sso/Status (或任何其他https://mysite/Shibboleth.sso/*)时,我会得到以下消息:
shibsp::ConfigurationException系统在Mon Jul 10 12:06:32 2017中遇到错误,请与root@localhost网站管理员联系。请在任何电子邮件中包含以下消息: shibsp::ConfigurationException at (
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的调试模式,但没有找到任何东西。
怎么啦?或者我该去哪看看?
发布于 2017-07-12 16:46:25
找到了答案:
问题实际上在于Apache的配置方式。它正在重写url,以便在每个url的末尾添加一个/。于是https://mysite/Shibboleth.sso/Session变成了https://mysite/Shibboleth.sso/Session/。永远都是小事!
由于Apache配置对于项目的另一部分是必需的,所以我更改了Location属性以在末尾添加一个斜杠,并且它工作得很好!Users@shibboleth.net邮件列表上的Scott!
https://serverfault.com/questions/861426
复制相似问题