[英]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.