เป้าหมาย: ผู้ใช้ที่ยืนยันตัวตนกับ SSO สำเร็จ (ผ่าน REMOTE_AUTH) จะได้รับสิทธิ์ของผู้ดูแลระบบ (หรืออย่างน้อยผู้ใช้ระดับสูง) โดยไม่จำเป็นต้องสร้างผู้ใช้หรือกลุ่มใดๆ ล่วงหน้า
ฉันมีการตรวจสอบสิทธิ์ระยะไกลทำงานได้ดี (ผู้ใช้ล็อกอินบน NetBox สำเร็จ) แต่ฉันไม่สามารถตั้งค่าการอนุญาตอัตโนมัติใดๆ ได้ ผู้ใช้ทั้งหมดมีสิทธิ์ดูเท่านั้น
สิ่งเดียวที่ใช้ได้คือการตั้งชื่อผู้ใช้อย่างชัดเจน เช่น:
REMOTE_AUTH_SUPERUSERS = ['myuser1', 'myuser2']
ซึ่งไม่ใช่วิธีแก้ปัญหาที่เหมาะสมสำหรับเป้าหมายนี้ เนื่องจากชื่อผู้ใช้ไม่เป็นที่รู้จักก่อนที่ผู้ใช้จะผ่านขั้นตอน SSO
ฉันได้ตรวจสอบเอกสารที่นี่: https://netbox.readthedocs.io/en/stable/administration/permissions/
และที่นี่: https://netbox.readthedocs.io/en/stable/configuration/optional-settings/#remote_auth_default_permissions
บันทึกเอกสารสำหรับ REMOTE_AUTH_DEFAULT_PERMISSIONS
รัฐ "แต่ละคีย์ในพจนานุกรมควรตั้งค่าเป็นพจนานุกรมของแอตทริบิวต์ที่จะใช้กับการอนุญาต หรือ ไม่มี
เพื่อให้วัตถุทั้งหมด " โดยเน้นที่ "ไม่มี
เพื่อให้วัตถุทั้งหมด "
ไม่ได้ช่วยกำหนดการตั้งค่าประเภท "ให้ทุกคนเข้าถึง" ขั้นพื้นฐาน
ฉันได้ลองตั้งค่าแล้ว REMOTE_AUTH_SUPERUSERS = ['*']
และลองตั้งค่า REMOTE_AUTH_DEFAULT_PERMISSIONS = { "*": ไม่มี }
และ REMOTE_AUTH_DEFAULT_PERMISSIONS = { "สถานะ": ไม่มี }
(และรูปแบบอื่น ๆ อีกมากมาย ไม่มีอะไรทำงาน
การอ้างอิงรายการกำหนดค่าที่เกี่ยวข้องเหล่านี้ (โปรดทราบว่าไม่จำเป็นต้องมีการกำหนดค่าปัจจุบันของฉัน เนื่องจากฉันได้ลองใช้ตัวแปรต่างๆ มากมายเพื่อให้สิ่งนี้ใช้งานได้)
REMOTE_AUTH_ENABLED = จริง
REMOTE_AUTH_BACKEND = 'netbox.authentication.RemoteUserBackend'
REMOTE_AUTH_HEADER = 'HTTP_X_USER_NAME'
REMOTE_AUTH_AUTO_CREATE_USER = จริง
REMOTE_AUTH_SUPERUSERS = ['*']
# REMOTE_AUTH_DEFAULT_GROUPS = []
# REMOTE_AUTH_SUPERUSER_GROUPS= []
# REMOTE_AUTH_DEFAULT_PERMISSIONS = { }