如何访问 shibboleth 属性以登录到应用程序或基于属性创建用户?
该应用程序在 Windows 2008 R2 服务器上运行 Coldfusion 10,64 位操作系统。 Shibboleth Service provider(SP) 3.4 安装并配置了 IIS 7.5.7 版本。 useHeaders 在 Shibboleth.xml 配置上启用,ISAPI 和 CGI 限制允许用于 Shibboleth Web 扩展。
SHibboleth 状态检查正常,当单击登录按钮时,它成功地从身份提供者 (IDP) 端进行身份验证,并且可以在 IDP 发布的 SP 会话中看到属性 eppn、mail、sn 和 givenName。
一些口令配置部分:
<InProcess>
<ISAPI normalizeRequest="true" safeHeaderNames="true" useHeaders="true">
<Site id="3" name="coursestest.cit.ie" scheme="https" port="443"/>
</ISAPI>
</InProcess>
...
<ApplicationDefaults entityID="https://country.com/shibboleth"
REMOTE_USER="eppn subject-id pairwise-id persistent-id"
attributePrefix="HTTP_"
homeURL="/name/index.cfm?action=checkLogin"
cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">
cfdump getHTTPRequestData() 返回空字符串,cfdump CGI 也返回空字符串。
当我尝试 getHTTPRequestData().headers['http_mail'] 时,它也返回空字符串。邮件是由 IDP 发布的属性,我在 shibboleth 配置中添加了前缀 http。
期待后续
<cfset reqHeaders = getHTTPRequestData()>
<cfif reqHeaders.headers.http_eppn NEQ "">
<cfset fedVars.lastname = CGI.sn>
<cfset fedVars.firstname = CGI.givernName>
<cfset fedVars.email = CGI.mail>
<cfelse>
<cfexit>
</cfif>