Shibboleth 세션 속성을 성공적으로 읽고 소비하는 Perl 스크립트를 Node.js로 이식하려고합니다. 펄 코드는 다음과 같은 예를 들어, 같습니다Node.js의 Shibboleth 속성 읽기
die "Must be protected behind shibboleth authentication" unless $ENV{'AUTH_TYPE'} eq 'shibboleth';
die "Requires eppn" unless $ENV{'eppn'} ne "";
my $user = $ENV{'eppn'};
my $shib_session_id = $ENV{'Shib-Session-ID'};
표어 속성이 환경 변수로 펄에 사용할 수있는 것처럼 나타납니다. 내가 말할 수있는 한 (나는 Perl을 모르지만)이 값을 가져 오거나 변경하는 것은 스크립트 안에 아무것도 없다.
따라서 Node.js 앱에서 process.env
을 확인했는데 이러한 값이 없습니다. Express.js에서 생성 한 요청 객체에는 검색 한 내용이 없습니다.
Perl 스크립트는 Apache 서버에 있지만, httpd.conf
의 내용은 Perl 스크립트에 특별한 사항을 전달하는 것처럼 보이지 않습니다. 내 Node.js 응용 프로그램이 동일한 Apache 서버에서 프록시 처리됩니다.
Node.js에서 Shibboleth 속성을 가져올 수 있습니까? 아니면 일부 Perl/Apache/Shibboleth 마법에 의존합니까?
RequestHeader set X-Auth-Type %{AUTH_TYPE}e
RequestHeader set X-EPPN %{eppn}e
RequestHeader set X-Shib-Session-ID %{Shib-Session-ID}e
가이 지금 내 Node.js를 응용 프로그램에서 req.headers
에 나타납니다;
perl은 아파치에서 실행되기 때문에, 아파치 (common * nix 개념)로부터 환경을 상속받습니다. 참고 사항; $ ENV { 'eppn'} eq ""' –
오른쪽 : 내 Node.js 응용 프로그램이 아파치에서 실행되지 않기 때문에 (단지 $ ENV { 'eppn'} ne ""' RP'd) 환경을 공유하지 않습니다. RP를 사용하는 환경에 환경을 전달할 수있는 방법이 있습니까? – Xophmeister