2017-11-30 44 views
2

IIS 서버에서 ColdFusion 응용 프로그램을 호스팅하고 있습니다. 내 웹 IIS에 Shibboleth 서비스를 추가했으며 CGI/필터가이를 사용하도록 설정되었습니다. 신청서를 testshib 연맹에 추가 했으므로 성공적으로 로그인 할 수있었습니다. 이제 세션 변수를 ColdFusion 코드로 가져 오려고합니다.ColdFusion/Shibboleth - REMOTE_USER

CGI 스코프를 덤프 할 때 shibboleth 세션이 HTTP_COOKIE 아래에 저장되지만 REMOTE_USER은 빈 문자열입니다. REMOTE_USERdocs에 따라 사용할 수 없기 때문입니다. 대신 요청 헤더 변수는 HTTP_REMOTE_USER으로 지정해야하지만 CGI 덤프에는 표시되지 않습니다. 왜이 사람입니까? 이 속성을 map 또는 ColdFusion에서 설정해야합니까?

index.cfm

CGI dUMP 
<cfdump var = "#cgi#" > 
<br>HTTP_REMOTE_USER 
<cfdump var="#CGI.HTTP_REMOTE_USER#"> 
<br>Get Request 
<cfset x = GetHttpRequestData()> 
<cfdump var="x"> 

덤프 결과

HTTP_COOKIE:_shibsession_64656487474733a2f2f6465736f6d2f73686962626f6c657468=_ecb60f7e4bf7616ab3522; 

세션 내가 ColdFusion에서의 <cfdump>에서 가능한 모든 CGI 변수를 노출하지 않습니다 믿고

Miscellaneous 
Session Expiration (barring inactivity): 479 minute(s) 
Client Address: 224.61.30.228 
SSO Protocol: urn:oasis:names:tc:SAML:2.0:protocol 
Identity Provider: https://idp.testshib.org/idp/shibboleth 
Authentication Time: 2017-11-30T14:48:48.255Z 
Authentication Context Class: urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport 
Authentication Context Decl: (none) 

Attributes 
affiliation: 2 value(s) 
entitlement: 1 value(s) 
eppn: 1 value(s) 
persistent-id: 1 value(s) 
unscoped-affiliation: 2 value(s) 

답변

4

은 가장 일반적인 것들. 그렇다고해서 CGI 변수가 누락 된 것으로 보이는 항목에 액세스 할 수 없다는 의미는 아닙니다. 처럼, 특별히 당신이 필요로하는 일을 대상으로 덤프를 변경해보십시오 : 그것은 여전히 ​​CGI 범위에 기록되지 않는 경우

<cfdump var="#CGI.HTTP_REMOTE_USER#">

, 당신은을 통해 특정 요청 헤더 변수에 액세스 할 수 있습니다하여 페이지 요청은 getHTTPRequestData()을 사용합니다.

+0

는 을 반환합니다. HTTP_REMOTE_USER : [빈 문자열]. getHTTPRequstData와 함께. ASP 페이지를 통해 덤프하면 HTTP_REMOTEUSER : [email protected]가 표시됩니다. – John

+0

GetHttpRequestData를 헤더로 설정하면 어떻게 든 작동합니다. 고마워, 아, 2 일 안에 자격이 될 때 현상금을 준다. – John

+0

ColdFusion/IIS 커넥터에서 무언가가 떨어지고 있습니다. 이 블로그 게시물을 보면 다른 사람들이 과거에 비슷한 행동을 한 것처럼 보입니다. http://grokbase.com/t/tomcat/users/128v2r7gf4/custom-header-fields-are-missing-after-siteminder-redirect-unclassified –