我正在尝试使用Omniauth-saml gem使SSO在Shibboleth服务器上工作,但是我的SP出现错误。
我意识到shibboleth有一种特定的omniauth策略,但是似乎需要将Shibboleth软件安装在SP Web服务器上,并且仅适用于Apache或IIS(我们使用的是nginx)。我的理解是,在不将Shibboleth软件安装在SP服务器上的情况下,更通用的Omniauth-saml应该可以与Shibboleth IDP一起使用。
我的测试应用程序适用于Samling(https://capriza.github.io/samling/),但是当我在TestShib一侧输入凭据后尝试对TestShib(testshib.org)进行身份验证时失败。我看到从TestShib返回的错误是无效票证。在TestShib日志中,我看到以下错误:
<html>
<body>
<table border=1 rules=groups>
<tr><th colspan=4>Instance Methods</th></tr>
<tr><td><table border=1 rules=groups>
<tr><td>def</td><th colspan=2>_getmatch</th><td>
(label, pattern, astring):</td></tr>
<tr><td colspan=4 align=center> find <i>pattern </i>in
<i>astring</i>, put <i>label</i> in complaint when not found </td></tr>
<tr><th width=10%>param</th><td width=10%>str</td><th> label</th><td>
<i> a name for this thing</i></td></tr>
<tr><th>param</th><td>str</td><th>pattern</th><td><i> a pattern to
use to extract this thing</i></td></tr>
<tr><th>param</th><td>str</td><th>astring</th><td><i> a string to
extract this thing from</i></td></tr>
<tr><td colspan=4>
<table>
<tr><th>rtype</th><td>str</td></tr>
<tr><th>return</th><td> the string extracted from astring
using pattern</td></tr>
</table>
</td></tr>
</table></td></tr>
</table>
</body>
</html>
这是我上传到TestShib(已编辑证书)的SP元数据:
11:28:56.694 - ERROR [edu.internet2.middleware.shibboleth.idp.profile.saml2.AbstractSAML2ProfileHandler:927] - Could not resolve a key encryption credential for peer entity: https://rc.529garage.com/garage/users/auth/saml/metadata?organization_id=1755
11:28:56.695 - ERROR [edu.internet2.middleware.shibboleth.idp.profile.saml2.AbstractSAML2ProfileHandler:289] - Unable to construct encrypter
org.opensaml.xml.security.SecurityException: Could not resolve key encryption credential
有人让Omniauth-saml与Shibboleth IDP配合使用,并且有任何提示可以帮助我前进?
谢谢!