我对这所有SSO还是陌生的,并且我正在使用grails-plugin将多个IDP集成到我的应用程序中。对于单个IDP,它可以正常工作,但是当我尝试添加多个IDP时,它会给我类似
的错误 Servlet.service() for servlet [default] in context with path [] threw exception [org.opensaml.saml2.metadata.provider.MetadataProviderException: Metadata for entity <entityID> and role {urn:oasis:names:tc:SAML:2.0:metadata}IDPSSODescriptor wasn't found] with root cause
Message: Metadata for entity <entityID> and role {urn:oasis:names:tc:SAML:2.0:metadata}IDPSSODescriptor wasn't found
我使用哪个IDP都没有关系,只有最后一个条目有效,而对于其他条目,它会给我同样的错误。
似乎它使用sp别名并为其保存最后一个条目并为此服务。
此外,如果有帮助,我会在日志中得到Index for AssertionConsumerService not specified, returning default
。
我知道它采用了日志context.SAMLContextProviderImpl - Using user specified IDP <entityID> from request
请帮助我坚持很长时间
答案 0 :(得分:1)
解决了这个问题,我使用了多个idp文件,但是所有idp文件都应该在一个文件中,并且应该在EntitiesDescriptor根标记下。错过了那部分。