โมดูลนี้ช่วยให้ Nginx ทำงานร่วมกับ Shibboleth โดยวิธีการของ FastCGI ของ Shibboleth โมดูลนี้ต้องการการกำหนดค่าเฉพาะเพื่อให้ทำงานได้อย่างถูกต้องรวมถึงแอปพลิเคชั่น Adjualizer FastCGI ของ Shibboleth ที่มีอยู่ในระบบ มันมีจุดมุ่งหมายที่จะคล้ายกับบางส่วนของ mod_shib ของ Apache แม้ว่าการอนุญาต Shibboleth และการตั้งค่าการตรวจสอบความถูกต้องจะถูกกำหนดค่าผ่าน shibboleth2.xml มากกว่าในการกำหนดค่าเว็บเซิร์ฟเวอร์
ด้วยโมดูลนี้ที่กำหนดค่ากับบล็อก location คำขอที่เข้ามาจะได้รับอนุญาตภายใน Nginx ตามผลลัพธ์ของ subrequest ไปยังผู้ให้อำนาจ FastCGI ของ Shibboleth ในกระบวนการนี้โมดูลนี้สามารถใช้ในการคัดลอกแอตทริบิวต์ผู้ใช้จากการตอบสนองของตัวอนุญาตที่ประสบความสำเร็จในคำขอดั้งเดิมของ Nginx เป็นส่วนหัวหรือพารามิเตอร์สภาพแวดล้อมสำหรับใช้งานโดยแอปพลิเคชันแบ็กเอนด์ใด ๆ หากการอนุญาตไม่ประสบความสำเร็จสถานะการตอบสนองของผู้อนุญาตและส่วนหัวจะถูกส่งกลับไปยังลูกค้าปฏิเสธการเข้าถึงหรือเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้ตามนั้น (เช่นหน้า WAYF หากกำหนดค่า)
โมดูลนี้ทำงานในขั้นตอนการเข้าถึงดังนั้นอาจรวมกับโมดูลการเข้าถึงอื่น ๆ (เช่น access auth_basic ) ผ่านคำสั่ง satisfy โมดูลนี้ยังสามารถรวบรวมร่วมกับ ngx_http_auth_request_module แม้ว่าการใช้โมดูลทั้งสองนี้ในบล็อก location เดียวกันนั้นยังไม่ได้ทดสอบและไม่แนะนำ
อ่านเพิ่มเติมเกี่ยวกับพฤติกรรมด้านล่างและปรึกษาการกำหนดค่าสำหรับบันทึกสำคัญเกี่ยวกับการหลีกเลี่ยงการปลอมแปลงหากใช้ส่วนหัวสำหรับคุณลักษณะ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่เป็นโมดูลเฉพาะให้ดูที่ https://forum.nginx.org/read.php?2,238523,238523#msg-238523
คำสั่งต่อไปนี้จะถูกเพิ่มลงในไฟล์การกำหนดค่า NGINX ของคุณ บริบทที่กล่าวถึงด้านล่างแสดงตำแหน่งที่พวกเขาอาจเพิ่ม
http , server , locationoffสลับโมดูลคำขอ Auth Shibboleth และตั้งค่า URI ซึ่งจะถูกขอให้ได้รับอนุญาต URI ที่กำหนดค่าควรอ้างถึงบล็อกตำแหน่ง Nginx ที่ชี้ไปที่ตัวกำหนดตัวผู้ Shibboleth FastCGI ของคุณ
สถานะ HTTP และส่วนหัวของการตอบสนองที่เกิดจากการขอร้องย่อยไปยัง URI ที่กำหนดค่าจะถูกส่งกลับไปยังผู้ใช้ตามข้อกำหนดของ Authorizer FastCGI ข้อแม้หนึ่ง (อาจมีนัยสำคัญ) คือเนื่องจากวิธีการทำงานของ Nginx ในปัจจุบันเกี่ยวกับ subrequests (สิ่งที่ผู้มีอำนาจต้องการอย่างมีประสิทธิภาพ) ร่างกายคำขอจะ ไม่ ถูกส่งต่อไป ยัง ผู้มีอำนาจ
URI ที่กำหนดค่าไม่ได้ จำกัด อยู่ที่การใช้แบ็กเอนด์ FastCGI เพื่อสร้างการตอบสนองอย่างไรก็ตาม สิ่งนี้อาจมีประโยชน์ในระหว่างการทดสอบหรืออย่างอื่นเนื่องจากคุณสามารถใช้คำสั่งของ Nginx ใน return และเขียนคำสั่ง rewrite เพื่อสร้างการตอบสนองที่เหมาะสม นอกจากนี้โมดูลนี้อาจใช้กับตัวสั่ง FastCGI ใด ๆ แม้ว่าการทำงานอาจได้รับผลกระทบจากข้อแม้ข้างต้น
คำเตือน
คำสั่ง shib_request ไม่ต้องการธง shib_authorizer อีกต่อไป สิ่งนี้จะต้องถูกลบออกเพื่อให้ Nginx เริ่มต้น ไม่จำเป็นต้องมีการเปลี่ยนแปลงอื่น ๆ
http , server , locationnone ตั้ง variable เป็น value ที่ระบุหลังจากคำขอ AUTH เสร็จสมบูรณ์ value อาจมีตัวแปรจากการตอบสนองของคำขอรับรองความถูกต้อง ตัวอย่างเช่น $upstream_http_* , $upstream_status และตัวแปรอื่น ๆ ที่กล่าวถึงในเอกสาร nginx_http_upstream_module
คำสั่งนี้สามารถใช้เพื่อแนะนำแอตทริบิวต์ shibboleth ในสภาพแวดล้อมของแอปพลิเคชันแบ็กเอนด์เช่น $ _server สำหรับแอปพลิเคชัน FastCGI PHP และเป็นวิธีการแนะนำในการทำเช่นนั้น ดูเอกสารการกำหนดค่าสำหรับตัวอย่าง
http , server , locationoffบันทึก
เพิ่มใน v2.0.0
คัดลอกแอตทริบิวต์จากการตอบสนองของ Shibboleth Authorizer ลงในคำขอหลักเป็นส่วนหัวทำให้สามารถใช้งานได้สำหรับเซิร์ฟเวอร์และแอปพลิเคชันต้นน้ำ ใช้ตัวเลือกนี้เฉพาะในกรณีที่ต้นน้ำ/แอปพลิเคชันของคุณไม่รองรับพารามิเตอร์เซิร์ฟเวอร์ผ่าน shib_request_set
ด้วยการเปิดใช้งานการตั้งค่านี้ส่วนหัวการตอบกลับของตัวสั่งเริ่มต้นด้วย Variable-* ถูกสกัด, ลอก Variable- ย่อยจากชื่อส่วนหัวและคัดลอกไปยังคำขอหลักก่อนที่จะส่งไปยังแบ็กเอนด์ ตัวอย่างเช่นส่วนหัวการตอบสนองของผู้มีอำนาจเช่น Variable-Commonname: John Smith จะส่งผลให้เกิด Commonname: John Smith ถูกเพิ่มเข้าไปในคำขอหลักและส่งไปยังแบ็กเอนด์
ระวังการปลอมแปลง - คุณต้องตรวจสอบให้แน่ใจว่าแอปพลิเคชันแบ็กเอนด์ของคุณได้รับการปกป้องจากการฉีดส่วนหัว ปรึกษาตัวอย่างการกำหนดค่าเกี่ยวกับวิธีการบรรลุเป้าหมายนี้
โมดูลนี้สามารถรวบรวมได้แบบคงที่หรือแบบไดนามิกเนื่องจากการแนะนำโมดูลแบบไดนามิกใน Nginx 1.9.11 ผลที่สุดของโมดูลแบบไดนามิกที่ใช้งานได้คือสามารถโหลดได้เมื่อเทียบกับโมดูลคงที่ซึ่งมีอยู่อย่างถาวรและเปิดใช้งาน
วิธีที่ง่ายที่สุดในการรับโมดูลรุ่นนี้คือการใช้เครื่องมือ PKG-OSS จาก Nginx ซึ่งจัดทำบรรจุภัณฑ์ของโมดูลไดนามิกสำหรับการติดตั้งควบคู่ไปกับการปล่อย Nginx อย่างเป็นทางการจากที่เก็บหลักและช่วยหลีกเลี่ยงความจำเป็นในการรวบรวม Nginx ด้วยมือ
มิฉะนั้นในการรวบรวม nginx ด้วยโมดูลนี้แบบไดนามิกส่งตัวเลือกต่อไปนี้ไปที่ ./configure กำหนดค่าเมื่อสร้าง nginx:
-ADD-DYNAMIC-MODULE = <Path>
คุณจะต้องโหลดโมดูลอย่างชัดเจนใน nginx.conf ของคุณโดยรวม:
load_module/path/to/modules/ngx_http_shibboleth_module.so;
และโหลดใหม่หรือรีสตาร์ท nginx
ในการรวบรวม nginx ด้วยโมดูลนี้คงที่ให้ส่งตัวเลือกต่อไปนี้ไปที่ ./configure เมื่อสร้าง nginx:
-ADD-MODULE = <ATHT>
ด้วยการสร้างแบบคงที่ไม่จำเป็นต้องมีการโหลดเพิ่มเติมเนื่องจากโมดูลอยู่ใน Nginx
สำหรับรายละเอียดทั้งหมดเกี่ยวกับการกำหนดค่าสภาพแวดล้อม nginx/shibboleth โปรดดูเอกสารที่ https://github.com/nginx-shib/nginx-http-shibboleth/blob/master/config.rst
ตัวอย่างบล็อก server ประกอบด้วยสิ่งต่อไปนี้:
#FastCGI authorizer for Auth Request module
location = /shibauthorizer {
internal ;
include fastcgi_params;
fastcgi_pass unix:/opt/shibboleth/shibauthorizer.sock;
}
#FastCGI responder
location /Shibboleth.sso {
include fastcgi_params;
fastcgi_pass unix:/opt/shibboleth/shibresponder.sock;
}
# Using the ``shib_request_set`` directive, we can introduce attributes as
# environment variables for the backend application. In this example, we
# set ``fastcgi_param`` but this could be any type of Nginx backend that
# supports parameters (by using the appropriate *_param option)
#
# The ``shib_fastcgi_params`` is an optional set of default parameters,
# available in the ``includes/`` directory in this repository.
#
# Choose this type of configuration unless your backend application
# doesn't support server parameters or specifically requires headers.
location /secure-environment-vars {
shib_request /shibauthorizer;
include shib_fastcgi_params;
shib_request_set $shib_commonname $upstream_http_variable_commonname ;
shib_request_set $shib_email $upstream_http_variable_email ;
fastcgi_param COMMONNAME $shib_commonname ;
fastcgi_param EMAIL $shib_email ;
fastcgi_pass unix:/path/to/backend.socket;
}
# A secured location. All incoming requests query the Shibboleth FastCGI authorizer.
# Watch out for performance issues and spoofing!
#
# Choose this type of configuration for ``proxy_pass`` applications
# or backends that don't support server parameters.
location /secure {
shib_request /shibauthorizer;
shib_request_use_headers on;
# Attributes from Shibboleth are introduced as headers by the FastCGI
# authorizer so we must prevent spoofing. The
# ``shib_clear_headers`` is a set of default header directives,
# available in the `includes/` directory in this repository.
include shib_clear_headers;
# Add *all* attributes that your application uses, including all
#variations.
more_clear_input_headers 'displayName' 'mail' 'persistent-id' ;
# This backend application will receive Shibboleth variables as request
# headers (from Shibboleth's FastCGI authorizer)
proxy_pass http://localhost:8080;
}โปรดทราบว่าเราใช้ส่วนหัวที่ต่ำกว่า Nginx-module เพื่อล้างส่วนหัวอินพุตที่อาจเป็นอันตรายและหลีกเลี่ยงศักยภาพในการปลอมแปลง ตัวอย่างหลังที่มีตัวแปรสภาพแวดล้อมไม่ไวต่อการปลอมแปลงส่วนหัวตราบใดที่แบ็กเอนด์อ่านข้อมูลจากพารามิเตอร์สภาพแวดล้อม เท่านั้น
การกำหนดค่าเริ่มต้นพร้อมใช้งานเพื่อล้างส่วนหัวพื้นฐานจากตัวนำสินค้า Shibboleth แต่คุณต้องตรวจสอบให้แน่ใจว่าคุณเขียนคำสั่งที่ชัดเจนของคุณเองสำหรับแอตทริบิวต์ทั้งหมดที่แอปพลิเคชันของคุณใช้ โปรดจำไว้ว่าแอปพลิเคชันบางตัวจะพยายามอ่านแอตทริบิวต์ shibboleth จากสภาพแวดล้อมแล้วถอยกลับไปที่ส่วนหัวดังนั้นตรวจสอบรหัสของแอปพลิเคชันของคุณแม้ว่าคุณจะไม่ได้ใช้ shib_request_use_headers
ด้วยการใช้งาน shib_request_set ไฟล์พารามิเตอร์เริ่มต้นพร้อมใช้งานซึ่งคุณสามารถใช้เป็น nginx include เพื่อให้แน่ใจว่าตัวแปร shibboleth core ทั้งหมดจะถูกส่งผ่านจากตัวขับเคลื่อน FastCGI ไปยังแอปพลิเคชัน แอตทริบิวต์เริ่มต้นจำนวนมากรวมอยู่ด้วยดังนั้นลบแอปพลิเคชันที่ไม่ต้องการโดยแอปพลิเคชันของคุณและเพิ่มแอตทริบิวต์สหพันธรัฐหรือ IDP ที่คุณต้องการ ไฟล์พารามิเตอร์เริ่มต้นนี้สามารถนำกลับมาใช้ใหม่สำหรับ upstreams ที่ไม่ได้ FastCGI โดยเพียงแค่เปลี่ยนคำสั่ง fastcgi_param เป็น uwsgi_param , scgi_param หรืออื่น ๆ
Subrequests เช่นคำขอ Auth Shibboleth ไม่ได้ดำเนินการผ่านตัวกรองส่วนหัว ซึ่งหมายความว่าคำสั่งในตัวเช่น add_header จะ ไม่ ทำงานหากกำหนดค่าเป็นส่วนหนึ่งของบล็อก A /shibauthorizer หากคุณต้องการจัดการส่วนหัวของ Subrequest ให้ใช้ more_set_headers จาก headers-more
ดู https://forum.nginx.org/read.php?29,257271,257272#msg-257272
โมดูลนี้เป็นไปตามข้อกำหนดของ FastCGI Authorizer หากเป็นไปได้ แต่มีการเบี่ยงเบนที่น่าสังเกตบางอย่าง - ด้วยเหตุผลที่ดี พฤติกรรมคือ:
ผู้มีอำนาจ subrequest ประกอบด้วยทุกด้านของคำขอเดิมยกเว้นร่างคำขอเนื่องจาก Nginx ไม่สนับสนุนการบัฟเฟอร์ของคำขอ เนื่องจากผู้ให้อำนาจ Shibboleth FastCGI ไม่ได้พิจารณาร่างคำขอนี่ไม่ใช่ปัญหา
หากผู้ให้อำนาจ subrequest ส่งคืนสถานะ 200 สถานะการเข้าถึงจะได้รับอนุญาต
หากเปิดใช้งาน shib_request_use_headers และส่วนหัวการตอบกลับเริ่มต้นด้วย Variable-* ถูกสกัดให้ถอด Variable- ย่อยจากชื่อส่วนหัวและคัดลอกลงในคำขอหลัก ส่วนหัวการตอบสนองของผู้ให้อำนาจอื่น ๆ ที่ไม่ได้นำหน้าด้วย Variable- และการตอบสนองจะถูกละเว้น สเป็ค FastCGI เรียกร้องให้ Variable-* คู่ชื่อชื่อที่จะรวมอยู่ในสภาพแวดล้อม FastCGI แต่เราทำให้พวกเขาเป็นส่วนหัวดังนั้นพวกเขาอาจใช้กับแบ็กเอน proxy_pass ใด ๆ โดยการส่งข้อมูล Variable-* เป็นส่วนหัวแทนเราจะจบลงด้วยการติดตามพฤติกรรมของ ShibUseHeaders On ใน mod_shib สำหรับ Apache ซึ่งผ่านแอตทริบิวต์ผู้ใช้เหล่านี้เป็นส่วนหัว
เพื่อที่จะผ่านแอตทริบิวต์เป็นตัวแปรสภาพแวดล้อม (เทียบเท่ากับ ShibUseEnvironment On ใน mod_shib ) แอตทริบิวต์จะต้องสกัดด้วยตนเองโดยใช้คำสั่ง shib_request_set สำหรับแต่ละแอตทริบิวต์ สิ่งนี้ไม่สามารถ ทำได้ (ปัจจุบัน) สำหรับคุณลักษณะทั้งหมดเนื่องจากแต่ละแบ็กเอนด์อาจยอมรับพารามิเตอร์ในวิธีที่แตกต่างกัน ( fastcgi_param , uwsgi_param ฯลฯ ) คำขอดึงยินดีที่จะทำให้พฤติกรรมนี้เป็นไปโดยอัตโนมัติ
หากผู้ให้อำนาจ subrequest ส่งคืนสถานะอื่น ๆ (รวมถึงการเปลี่ยนเส้นทางหรือข้อผิดพลาด) สถานะการตอบสนองและส่วนหัวของผู้ให้อำนาจจะถูกส่งกลับไปยังลูกค้า
ซึ่งหมายความว่าใน 401 Unauthorized หรือ 403 Forbidden การเข้าถึงจะถูกปฏิเสธและส่วนหัว (เช่น WWW-Authenticate ) จากผู้อนุญาตจะถูกส่งไปยังลูกค้า การตอบสนองของผู้ให้อำนาจอื่น ๆ ทั้งหมด (เช่นการเปลี่ยนเส้นทาง 3xx ) จะถูกส่งกลับไปยังลูกค้ารวมถึงสถานะและส่วนหัวช่วยให้การเปลี่ยนเส้นทางเช่นไปยังหน้า wayf และ shibboleth responder ( Shibboleth.sso ) ทำงานได้อย่างถูกต้อง
ข้อมูลจำเพาะของผู้ให้อำนาจ FastCGI เรียกร้องให้มีการส่งคืนหน่วยตอบกลับไปยังไคลเอนต์ แต่เนื่องจาก NGINX ไม่สนับสนุนการตอบสนองของการบัฟเฟอร์ Subrequest ( NGX_HTTP_SUBREQUEST_IN_MEMORY ) วิธีแก้ปัญหาคือการให้ nginx ให้บริการ error_page ของตัวเองเช่น:
location /secure {
shib_request /shibauthorizer;
error_page 403 /shibboleth-forbidden.html;
...
} สิ่งนี้ทำหน้าที่หน้าข้อผิดพลาดที่กำหนดหากตัวนำสินค้า Shibboleth ปฏิเสธการเข้าถึงผู้ใช้ไปยังตำแหน่งนี้ หากไม่ได้ระบุ error_page nginx จะให้บริการหน้าข้อผิดพลาดทั่วไป
โปรดทราบว่าสิ่งนี้ ไม่ได้ ใช้กับผู้ตอบกลับ shibboleth (โดยทั่วไปโฮสต์ที่ Shibboleth.sso ) เนื่องจากเป็น fastcgi responder และ nginx เข้ากันได้อย่างสมบูรณ์กับสิ่งนี้เนื่องจากไม่มีการใช้ subrequests
สำหรับรายละเอียดเพิ่มเติมโปรดดู https://forum.nginx.org/read.php?2,238444,238453
ในขณะที่โมดูลนี้มุ่งเน้นไปที่ผู้ให้อำนาจ FastCGI ของ Shibboleth โดยเฉพาะ แต่ก็มีแนวโน้มที่จะทำงานร่วมกับผู้แต่งคนอื่น ๆ โดยคำนึงถึงการเบี่ยงเบนจากข้อมูลจำเพาะด้านบน
การทดสอบจะทำงานโดยอัตโนมัติในการกระทำของ GitHub (ใช้การกำหนดค่านี้) เมื่อใดก็ตามที่มีการดำเนินการใหม่กับที่เก็บหรือเมื่อมีการเปิดคำขอดึงใหม่ หากมีบางอย่างหยุดพักคุณจะได้รับการแจ้งและผลลัพธ์จะถูกรายงานใน GitHub
การทดสอบถูกเขียนขึ้นโดยใช้การรวมกันของสคริปต์ทุบตีอย่างง่ายสำหรับการรวบรวมโมดูลของเราด้วยเวอร์ชันที่แตกต่างกันและการกำหนดค่าของ Nginx และการทดสอบ :: Nginx Perl Test Scaffolding สำหรับการทดสอบการรวม ปรึกษาลิงค์ก่อนหน้าสำหรับข้อมูลเกี่ยวกับวิธีการขยายการทดสอบและอ้างถึงเอกสารประกอบการทดสอบพื้นฐาน :: เอกสารพื้นฐานในแง่มุมต่าง ๆ เช่นฟังก์ชันบล็อก ()
การทดสอบการรวมจะทำงานโดยอัตโนมัติโดย CI แต่ยังสามารถเรียกใช้ด้วยตนเอง (ต้องติดตั้ง Perl & CPAN):
cd nginx-http-shibboleth
cpanm --notest --local-lib= $HOME /perl5 Test::Nginx
# nginx must be present in PATH and built with debugging symbols
PERL5LIB= $HOME /perl5/lib/perl5 proveสนับสนุนคำขอสำหรับการกำหนดค่า shibboleth และการตั้งค่า Nginx หรือเว็บเซิร์ฟเวอร์ควรถูกนำไปยังรายการจดหมายผู้ใช้ของผู้ใช้ชุมชน Shibboleth ดู https://www.shibboleth.net/community/lists/ สำหรับรายละเอียด
เนื่องจากลักษณะที่ซับซ้อนของสแต็ก Nginx/FastCGI/Shibboleth ทำให้ปัญหาการกำหนดค่าการดีบักอาจเป็นเรื่องยาก นี่คือประเด็นสำคัญบางประการ:
ยืนยันว่า nginx-http-shibboleth นั้นสร้างและติดตั้งได้สำเร็จภายใน NGINX คุณสามารถตรวจสอบโดยเรียกใช้ nginx -V และตรวจสอบเอาต์พุตสำหรับ --add-module=[path]/nginx-http-shibboleth หรือ --add-dynamic-module=[path]/nginx-http-shibboleth
หากใช้โมดูลแบบไดนามิกสำหรับ Nginx ยืนยันว่าคุณใช้คำสั่ง load_module เพื่อโหลดโมดูลนี้ การใช้ shib_request และคำสั่งอื่น ๆ ของคุณจะล้มเหลวหากคุณลืมโหลดโมดูล
หากใช้ NGINX เวอร์ชันที่แตกต่างจากที่เราทดสอบหรือถ้าคุณใช้โมดูลบุคคลที่สามอื่น ๆ คุณควรเรียกใช้ชุดทดสอบด้านบนเพื่อยืนยันความเข้ากันได้ หากการทดสอบใด ๆ ล้มเหลวให้ตรวจสอบการกำหนดค่าของคุณหรือพิจารณาอัปเดตเวอร์ชัน Nginx ของคุณ
การกำหนดค่า Shibboleth: ตรวจสอบ shibboleth2.xml ของคุณและการกำหนดค่าที่เกี่ยวข้องเพื่อให้แน่ใจว่าโฮสต์เส้นทางและแอตทริบิวต์ของคุณจะถูกปล่อยออกมาอย่างถูกต้อง ตัวอย่างการกำหนดค่าสามารถช่วยคุณระบุคีย์ "gotchas" เพื่อกำหนดค่า shibboleth2.xml เพื่อทำงานกับตัวเปิด FastCGI
แอปพลิเคชันระดับ: ภายในรหัสของคุณจะเริ่มต้นด้วยเอาต์พุตการดีบักที่ง่ายที่สุดที่เป็นไปได้ (เช่นการพิมพ์สภาพแวดล้อมการร้องขอ) และทำงานได้จากที่นั่น หากคุณต้องการสร้างแอพพื้นฐานแบบสแตนด์อโลนลองดูการกำหนดค่าขวดบนวิกิ
การดีบัก Internals Internals: หากคุณได้ตรวจสอบทั้งหมดข้างต้นอย่างระมัดระวังคุณสามารถดีบั๊กพฤติกรรมของโมดูลนี้เอง คุณจะต้องรวบรวม Nginx ด้วยการสนับสนุนการดีบัก (ผ่าน ./auto/configure --with-debug ... ) และเมื่อเรียกใช้ Nginx มันง่ายที่สุดถ้าคุณสามารถทำงานได้ในเบื้องหน้า เพิ่มสิ่งต่อไปนี้ใน nginx.conf ของคุณ:
daemon off ;
error_log stderr debug ;และเรียกใช้ nginx เมื่อเริ่มต้น Nginx คุณควรเห็นบรรทัดที่มี [debug] และเมื่อคุณทำการร้องขอการบันทึกคอนโซลจะดำเนินต่อไป หากสิ่งนี้ไม่เกิดขึ้นให้ตรวจสอบการกำหนดค่า Nginx และกระบวนการรวบรวม
ในที่สุดเมื่อคุณทำการร้องขอที่ฮิต (หรือควรเรียกใช้) บล็อกตำแหน่ง shib_request คุณจะเห็นบรรทัดเช่นดังนั้นในผลลัพธ์:
[debug] 1234 #0: shib request handler
[debug] 1234 #0: shib request set variables
[debug] 1234 #0: shib request authorizer handler
[debug] 1234 #0: shib request authorizer allows access
[debug] 1234 #0: shib request authorizer copied header: "AUTH_TYPE: shibboleth"
[debug] 1234 #0: shib request authorizer copied header: "REMOTE_USER: [email protected]"
... หากคุณไม่เห็นบรรทัดประเภทนี้ที่มีคำขอ shib ... หรือถ้าคุณเห็น บาง บรรทัดด้านบน แต่ไม่ใช่ที่ส่วนหัว/ตัวแปรกำลังถูกคัดลอกให้ตรวจสอบการกำหนดค่า Nginx ของคุณอีกครั้ง หากคุณยังไม่ได้ไปทุกที่คุณสามารถเพิ่มบรรทัดการดีบักของคุณเองลงในแหล่งที่มา (ทำตามตัวอย่างของโมดูลนี้) เพื่อกำหนดสิ่งที่ผิดพลาดและเมื่อไหร่ หากทำเช่นนี้อย่าลืมที่จะคอมไพล์ nginx และ/หรือ nginx-http-shibboleth . เมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลง
หากคุณเชื่อว่าคุณพบข้อผิดพลาดในรหัสโมดูลหลักโปรดสร้างปัญหา
นอกจากนี้คุณยังสามารถค้นหาปัญหาที่มีอยู่เนื่องจากมีแนวโน้มว่าคนอื่นจะพบปัญหาที่คล้ายกันมาก่อน
โมดูลนี้ใช้การกำหนดเวอร์ชันความหมายและการเปิดตัวทั้งหมดจะถูกติดแท็กบน GitHub ซึ่งอนุญาตให้ดาวน์โหลดแพ็คเกจของแท็กแต่ละแท็ก
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาตเดียวกับที่ Nginx คือใบอนุญาต 2 ข้อ BSD