簡體   English   中英

在Node.js中讀取Shibboleth屬性

[英]Reading Shibboleth attributes in Node.js

我正在嘗試將Perl腳本(它可以成功讀取並使用Shibboleth會話屬性)移植到Node.js中。 Perl代碼看起來像這樣:

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'};

似乎Shibboleth屬性可作為Perl用作環境變量。 據我所知(我不了解Perl),腳本中沒有任何東西可以獲取或更改這些值。

因此,我在Node.js應用程序中檢查了process.env ,這些值都不存在。 據我搜索,它們也不存在於Express.js創建的請求對象中。

Perl腳本位於Apache服務器上,但是httpd.conf沒有任何內容看起來像在向Perl腳本傳遞任何特殊內容。 我的Node.js應用在同一Apache服務器上被反向代理。

是否可以在Node.js中獲取Shibboleth屬性,還是依賴於某些Perl / Apache / Shibboleth魔術?

感謝@mpapec的評論,我通過將Apache環境變量作為請求標頭傳遞到上游來解決了這個問題:

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中; 盡管X-Auth-Type神秘地設置為(null) ...我暫時可以解決此問題,但是有任何想法為什么會這樣嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM