Proxmox Backup Server #5

Proxmox



nopic

การจัดการผู้ใช้

การกำหนดค่าผู้ใช้

การจัดการผู้ใช้

Proxmox Backup Server รองรับขอบเขตการตรวจสอบสิทธิ์หลายรายการ และคุณต้องเลือกขอบเขตเมื่อคุณเพิ่มผู้ใช้ใหม่ ขอบเขตที่เป็นไปได้คือ:

แพม

การรับรองความถูกต้องมาตรฐาน Linux PAM ใช้สิ่งนี้หากคุณต้องการรับรองความถูกต้องในฐานะผู้ใช้ระบบ Linux (ผู้ใช้ต้องมีอยู่ในระบบ)

พีบีเอส

ขอบเขตเซิร์ฟเวอร์สำรอง Proxmox ประเภทนี้จัดเก็บรหัสผ่านที่แฮชใน /etc/proxmox-backup/shadow.json.

เปิด

เซิร์ฟเวอร์เชื่อมต่อ OpenID ผู้ใช้สามารถตรวจสอบกับเซิร์ฟเวอร์ OpenID Connect ภายนอกได้

ลดา

เซิร์ฟเวอร์ LDAP ผู้ใช้สามารถพิสูจน์ตัวตนกับเซิร์ฟเวอร์ LDAP ภายนอก

หลังการติดตั้ง จะมีผู้ใช้คนเดียวroot@pamซึ่งสอดคล้องกับ Unix superuser /etc/proxmox-backup/user.cfgข้อมูลการกำหนดค่า ผู้ใช้ถูกจัดเก็บไว้ในไฟล์ คุณสามารถใช้proxmox-backup-manager เครื่องมือบรรทัดคำสั่งเพื่อแสดงรายการหรือจัดการผู้ใช้:

# proxmox-backup-manager user list
ฺฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฟ
ณ userid      ณ enable ณ expire ณ firstname ณ lastname ณ email          ณ comment            ณ
?อออออออออออออ?ออออออออ?ออออออออ?อออออออออออ?ออออออออออ?ออออออออออออออออ?ออออออออออออออออออออ?
ณ root@pam    ณ      1 ณ        ณ           ณ          ณ                ณ Superuser          ณ
ภฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤู
เพิ่มผู้ใช้ใหม่

ผู้ใช้ระดับสูงมีสิทธิ์ในการดูแลระบบทุกอย่าง ดังนั้นขอแนะนำให้เพิ่มผู้ใช้รายอื่นที่มีสิทธิ์น้อยกว่า คุณสามารถเพิ่มผู้ใช้ใหม่ด้วยคำสั่งย่อยหรือผ่านทางเว็บอินเตอร์เฟส ภายใต้ แท็บ User ManagementของConfiguration -> Access Control คำสั่งย่อยให้คุณระบุตัวเลือกมากมาย เช่นหรือ คุณสามารถอัปเดตหรือเปลี่ยนคุณสมบัติผู้ใช้ใดๆ ได้โดยใช้คำสั่งย่อยในภายหลัง ( แก้ไขใน GUI):user createcreate--email--passworduser update

# proxmox-backup-manager user create john@pbs --email john@example.com
# proxmox-backup-manager user update john@pbs --firstname John --lastname Smith
# proxmox-backup-manager user update john@pbs --comment "An example user."

รายชื่อผู้ใช้ที่ได้จะมีลักษณะดังนี้:

# proxmox-backup-manager user list
ฺฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฟ
ณ userid   ณ enable ณ expire ณ firstname ณ lastname ณ email            ณ comment          ณ
?ออออออออออ?ออออออออ?ออออออออ?อออออออออออ?ออออออออออ?ออออออออออออออออออ?ออออออออออออออออออ?
ณ john@pbs ณ      1 ณ        ณ John      ณ Smith    ณ john@example.com ณ An example user. ณ
?ฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?
ณ root@pam ณ      1 ณ        ณ           ณ          ณ                  ณ Superuser        ณ
ภฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤู

ผู้ใช้ที่สร้างขึ้นใหม่ไม่มีสิทธิ์ใดๆ โปรดอ่าน ส่วน การควบคุมการเข้าถึง เพื่อเรียนรู้วิธีตั้งค่าสิทธิ์การเข้าถึง

คุณสามารถปิดใช้งานบัญชีผู้ใช้ได้โดยตั้งค่า--enableเป็น0:

# proxmox-backup-manager user update john@pbs --enable 0

หรือลบผู้ใช้ทั้งหมดด้วย:

# proxmox-backup-manager user remove john@pbs

โทเค็น API 

ภาพรวมโทเค็น API

ผู้ใช้ที่ผ่านการรับรองความถูกต้องสามารถสร้างโทเค็น API ซึ่งสามารถใช้กำหนดค่าไคลเอนต์ต่างๆ แทนการระบุชื่อผู้ใช้และรหัสผ่านโดยตรง

โทเค็น API มีวัตถุประสงค์สองประการ:

  1. เพิกถอนได้ง่ายในกรณีที่ไคลเอนต์ถูกบุกรุก

  2. จำกัดสิทธิ์สำหรับไคลเอ็นต์/โทเค็นแต่ละรายการภายในสิทธิ์ของผู้ใช้

โทเค็น API ประกอบด้วยสองส่วน: ตัวระบุประกอบด้วยชื่อผู้ใช้ ขอบเขตและชื่อโทเค็น ( user@realm!tokenname) และค่าลับ จำเป็นต้องจัดเตรียมทั้งสองอย่างให้กับลูกค้าแทน ID ผู้ใช้ ( user@realm) และรหัสผ่านผู้ใช้ ตามลำดับ

ค่าลับ API

โทเค็น API ถูกส่งจากไคลเอ็นต์ไปยังเซิร์ฟเวอร์โดยตั้งค่า Authorizationส่วนหัว HTTP ด้วยเมธอดเป็นPBSAPITokenค่า TOKENID:TOKENSECRET

คุณสามารถสร้างโทเค็นจาก GUI หรือโดยใช้proxmox-backup-manager:

# proxmox-backup-manager user generate-token john@pbs client1
Result: {
  "tokenid": "john@pbs!client1",
  "value": "d63e505a-e3ec-449a-9bc7-1da610d4ccde"
}

บันทึก

ต้องบันทึกค่าความลับที่แสดง เนื่องจากไม่สามารถแสดงได้อีกหลังจากสร้างโทเค็น API

คำสั่งย่อยสามารถใช้เพื่อแสดงโทเค็นและข้อมูลเมตา:user list-tokens

# proxmox-backup-manager user list-tokens john@pbs
ฺฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฟ
ณ tokenid          ณ enable ณ expire ณ comment ณ
?ออออออออออออออออออ?ออออออออ?ออออออออ?อออออออออ?
ณ john@pbs!client1 ณ      1 ณ        ณ         ณ
ภฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤู

ในทำนองเดียวกันคำสั่งย่อยสามารถใช้เพื่อลบโทเค็นอีกครั้งuser delete-token

โทเค็น API ที่สร้างขึ้นใหม่ไม่มีสิทธิ์ใดๆ โปรดอ่านส่วนถัดไปเพื่อเรียนรู้วิธีตั้งค่าสิทธิ์การเข้าถึง

การควบคุมการเข้าถึง

ตามค่าเริ่มต้น ผู้ใช้ใหม่และโทเค็น API จะไม่มีสิทธิ์ใดๆ คุณต้องระบุสิ่งที่ได้รับอนุญาตและสิ่งที่ไม่อนุญาตแทน

Proxmox Backup Server ใช้ระบบการจัดการสิทธิ์ตามบทบาทและพาธ รายการในตารางสิทธิ์อนุญาตให้ผู้ใช้ กลุ่ม หรือโทเค็นมีบทบาทเฉพาะเมื่อเข้าถึง 'วัตถุ' หรือ 'เส้นทาง' ซึ่งหมายความว่ากฎการเข้าถึงดังกล่าวสามารถแสดงเป็นสามเท่าของ '(เส้นทาง ผู้ใช้ บทบาท)' '(เส้นทาง กลุ่ม บทบาท)' หรือ '(เส้นทาง โทเค็น บทบาท)' โดยบทบาทมีชุด ของการกระทำที่อนุญาต และเส้นทางที่แสดงเป้าหมายของการกระทำเหล่านี้

สิทธิพิเศษ

สิทธิ์เป็นพื้นฐานของบทบาทการเข้าถึง มีการใช้เป็นการภายในเพื่อบังคับใช้การตรวจสอบสิทธิ์จริงใน API

ขณะนี้เรารองรับสิทธิ์ดังต่อไปนี้:

Sys.Audit

Sys.Audit ช่วยให้ผู้ใช้ทราบเกี่ยวกับระบบและสถานะของระบบ

Sys แก้ไข

Sys.Modify อนุญาตให้ผู้ใช้แก้ไขการกำหนดค่าระดับระบบและใช้การอัปเดต

Sys.PowerManagement

Sys.Modify อนุญาตให้ผู้ใช้ปิดเครื่องและรีบูตระบบ

Datastore.Audit

Datastore.Audit ช่วยให้ผู้ใช้ทราบเกี่ยวกับ datastore รวมถึงการอ่านรายการการกำหนดค่าและการแสดงรายการเนื้อหา

Datastore.Allocate

Datastore.Allocate อนุญาตให้ผู้ใช้สร้างหรือลบที่เก็บข้อมูล

Datastore.Modify

Datastore.Modify อนุญาตให้ผู้ใช้แก้ไขที่เก็บข้อมูลและเนื้อหา และสร้างหรือลบเนมสเปซภายในที่เก็บข้อมูล

Datastore อ่าน

Datastore.Read อนุญาตให้ผู้ใช้อ่านเนื้อหาข้อมูลสำรองตามอำเภอใจ โดยไม่ขึ้นกับเจ้าของกลุ่มข้อมูลสำรอง

Datastore.Verify

อนุญาตให้ตรวจสอบสแน็ปช็อตสำรองในที่เก็บข้อมูล

Datastore.Backup

Datastore.Backup อนุญาตให้ผู้ใช้สร้างสแน็ปช็อตข้อมูลสำรองใหม่และยังให้สิทธิ์ของ Datastore.Read และ Datastore.Verify แต่เฉพาะในกรณีที่กลุ่มข้อมูลสำรองเป็นของผู้ใช้หรือหนึ่งในโทเค็นของกลุ่มข้อมูลสำรอง

Datastore.พรุน

Datastore.Prune อนุญาตให้ผู้ใช้ลบสแนปชอต แต่จำเป็นต้องเป็นเจ้าของข้อมูลสำรองเพิ่มเติม

สิทธิ์แก้ไข

Permissions.Modify อนุญาตให้ผู้ใช้แก้ไข ACL

บันทึก

ผู้ใช้สามารถกำหนดค่าสิทธิ์สำหรับโทเค็น API ของตนเองได้เสมอ เนื่องจากจะถูกจำกัดโดยสิทธิ์ของผู้ใช้อยู่ดี

รีโมท.ตรวจสอบ

Remote.Audit อนุญาตให้ผู้ใช้อ่านรีโมตและรายการการกำหนดค่าการซิงค์

รีโมท.ดัดแปลง

Remote.Modify อนุญาตให้ผู้ใช้แก้ไขการกำหนดค่าระยะไกล

ระยะไกลอ่าน

Remote.Read อนุญาตให้ผู้ใช้อ่านข้อมูลจากRemote ที่กำหนดค่า ไว้

Sys.คอนโซล

Sys.Console อนุญาตให้ผู้ใช้เข้าถึงคอนโซลของระบบ โปรดทราบว่าสำหรับทั้งหมดยกเว้นroot@pamยังต้องมีการเข้าสู่ระบบที่ถูกต้อง

เทปตรวจสอบบัญชี

Tape.Audit ช่วยให้ผู้ใช้สามารถอ่านการกำหนดค่าและสถานะของเทปไดร์ฟ ตัวเปลี่ยน และการสำรองข้อมูล

เทปดัดแปลง

Tape.Modify อนุญาตให้ผู้ใช้แก้ไขการกำหนดค่าของเทปไดร์ฟ ตัวเปลี่ยน และการสำรองข้อมูล

เทปเขียน

Tape.Write อนุญาตให้ผู้ใช้เขียนลงสื่อบันทึกเทป

เทปอ่าน

Tape.Read อนุญาตให้ผู้ใช้อ่านการกำหนดค่าการสำรองข้อมูลเทปและเนื้อหาจากสื่อบันทึกเทป

Realm.Allocate

Realm.Allocate อนุญาตให้ผู้ใช้ดู สร้าง แก้ไข และลบขอบเขตการรับรองความถูกต้องสำหรับผู้ใช้

เข้าถึงบทบาท

บทบาทการเข้าถึงจะรวมสิทธิ์หนึ่งสิทธิ์ขึ้นไปเป็นสิ่งที่สามารถกำหนดให้กับผู้ใช้หรือโทเค็น API บนเส้นทางวัตถุ

ขณะนี้มีบทบาทที่มีอยู่แล้วภายในเท่านั้น หมายความว่าคุณไม่สามารถสร้างบทบาทที่กำหนดเองได้

มีบทบาทต่อไปนี้:

ไม่มีการเข้าถึง

ปิดการเข้าถึง - ไม่อนุญาตให้ทำอะไร

ผู้ดูแลระบบ

สามารถทำอะไรก็ได้บนเส้นทางวัตถุที่กำหนด

การตรวจสอบ

สามารถดูสถานะและการกำหนดค่าของสิ่งต่าง ๆ ได้ แต่ไม่อนุญาตให้เปลี่ยนการตั้งค่า

ผู้ดูแลระบบดาต้าสโตร์

สามารถทำอะไรก็ได้บนที่เก็บข้อมูลที่มีอยู่

DatastoreAudit

สามารถดูเมตริกที่เก็บข้อมูล การตั้งค่า และเนื้อหารายการ แต่ไม่ได้รับอนุญาตให้อ่านข้อมูลจริง.

DatastoreReader

สามารถตรวจสอบเนื้อหาของที่เก็บข้อมูลหรือเนมสเปซและกู้คืนได้

DatastoreBackup

สามารถสำรองและกู้คืนข้อมูลสำรองที่เป็นเจ้าของได้

DatastorePowerUser

สามารถสำรองข้อมูล กู้คืน และตัดข้อมูลสำรองที่เป็นเจ้าของได้

ผู้ดูแลระบบระยะไกล

สามารถทำอะไรก็ได้บนรีโมท

ตรวจสอบระยะไกล

สามารถดูการตั้งค่าระยะไกล

RemoteSyncOperator

ได้รับอนุญาตให้อ่านข้อมูลจากระยะไกล

แอดมินเทป

สามารถทำอะไรที่เกี่ยวข้องกับการสำรองข้อมูลเทป

เทปออดิท

สามารถดูเมตริก การกำหนดค่า และสถานะที่เกี่ยวข้องกับเทปได้

ช่างเทป

สามารถสำรองและกู้คืนเทปได้ แต่ไม่สามารถเปลี่ยนแปลงการกำหนดค่าใดๆ ได้

เครื่องอ่านเทป

สามารถอ่านและตรวจสอบการกำหนดค่าเทปและเนื้อหาสื่อ

วัตถุและเส้นทาง

สิทธิ์การเข้าถึงถูกกำหนดให้กับวัตถุ เช่น ที่เก็บข้อมูล เนมสเปซ หรือทรัพยากรระบบบางอย่าง

เราใช้เส้นทางเหมือนระบบไฟล์เพื่อระบุวัตถุเหล่านี้ เส้นทางเหล่านี้ก่อตัวเป็นแผนผังธรรมชาติ และสิทธิ์ในระดับที่สูงกว่า (เส้นทางที่สั้นกว่า) สามารถเลือกเผยแพร่ลงมาภายในลำดับชั้นนี้ได้

เส้นทางสามารถเป็น templated ได้ ซึ่งหมายความว่าสามารถอ้างอิงถึง id จริงของรายการกำหนดค่าได้ เมื่อการเรียก API ต้องการสิทธิ์บนพาธ templated พาธอาจมีการอ้างอิงถึงพารามิเตอร์ของการเรียก API การอ้างอิงเหล่านี้ระบุไว้ในวงเล็บปีกกา

ตัวอย่างบางส่วนคือ:

  • /datastore : เข้าถึงที่ เก็บข้อมูล ทั้งหมดบนเซิร์ฟเวอร์ Proxmox Backup

  • /datastore/{store} : เข้าถึงที่เก็บข้อมูลเฉพาะบนเซิร์ฟเวอร์ Proxmox Backup

  • /datastore/{store}/{ns} : เข้าถึงเนมสเปซเฉพาะบนที่เก็บข้อมูลเฉพาะ

  • /remote : เข้าถึงรายการระยะไกลทั้งหมด

  • /system/network : เข้าถึงเพื่อกำหนดค่าเครือข่ายโฮสต์

  • /tape/ : เข้าถึงอุปกรณ์เทป พูล และงาน

  • /การเข้าถึง/ผู้ใช้ : การดูแลระบบผู้ใช้

  • /access/openid/{id} : การเข้าถึงระดับผู้ดูแลระบบไปยังขอบเขต OpenID Connect เฉพาะ

มรดก

ดังที่ได้กล่าวไว้ก่อนหน้านี้ เส้นทางของอ็อบเจกต์สร้างระบบไฟล์แบบทรี และสิทธิ์สามารถสืบทอดโดยอ็อบเจ็กต์ในทรีนั้นผ่านแฟล็กการเผยแพร่ ซึ่งตั้งค่าไว้ตามค่าดีฟอลต์ เราใช้กฎการสืบทอดต่อไปนี้:

  • สิทธิ์สำหรับโทเค็น API จะจำกัดเฉพาะผู้ใช้เท่านั้น

  • สิทธิ์ในระดับลึกและเฉพาะเจาะจงมากขึ้นจะแทนที่สิทธิ์ที่ได้รับมาจากระดับบน

การกำหนดค่าและการจัดการ

เพิ่มสิทธิ์สำหรับผู้ใช้

ข้อมูลสิทธิ์การเข้าถึงถูกจัดเก็บไว้/etc/proxmox-backup/acl.cfgใน ไฟล์ประกอบด้วย 5 ฟิลด์ คั่นด้วยเครื่องหมายทวิภาค (':') เป็นตัวคั่น รายการทั่วไปจะอยู่ในรูปแบบ:

acl:1:/datastore:john@pbs:DatastoreBackup

ข้อมูลที่แสดงในแต่ละฟิลด์มีดังนี้:

  1. aclตัวระบุ

  2. 1หรือ0ซึ่งแสดงว่าการแพร่กระจายถูกเปิดใช้งานหรือปิดใช้งาน ตามลำดับ

  3. วัตถุที่ตั้งค่าการอนุญาต นี่อาจเป็นอ็อบเจ็กต์เฉพาะ (ที่เก็บข้อมูลเดี่ยว รีโมต ฯลฯ) หรืออ็อบเจ็กต์ระดับบนสุด ซึ่งเมื่อเปิดใช้งานการเผยแพร่ จะแสดงถึงชายด์ทั้งหมดของอ็อบเจ็กต์ด้วย

  4. ผู้ใช้/โทเค็นที่ตั้งค่าการอนุญาต

  5. กำลังตั้งค่าบทบาท

คุณสามารถจัดการสิทธิ์ผ่านการกำหนดค่า -> การควบคุมการเข้าถึง -> สิทธิ์ในเว็บอินเตอร์เฟส ในทำนองเดียวกัน คุณสามารถใช้acl คำสั่งย่อยเพื่อจัดการและตรวจสอบสิทธิ์ของผู้ใช้จากบรรทัดคำสั่ง ตัวอย่างเช่น คำสั่งด้านล่างจะเพิ่มผู้ใช้john@pbsเป็น DatastoreAdminสำหรับ datastore store1ซึ่งอยู่ที่ /backup/disk1/store1:

# proxmox-backup-manager acl update /datastore/store1 DatastoreAdmin --auth-id john@pbs

คุณสามารถแสดงรายการ ACL ของผู้ใช้/โทเค็นแต่ละรายโดยใช้คำสั่งต่อไปนี้:

# proxmox-backup-manager acl list
ฺฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฟ
ณ ugid     ณ path              ณ propagate ณ roleid         ณ
?ออออออออออ?อออออออออออออออออออ?อออออออออออ?ออออออออออออออออ?
ณ john@pbs ณ /datastore/store1 ณ         1 ณ DatastoreAdmin ณ
ภฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤ?ฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤู

ผู้ใช้/โทเค็นเดียวสามารถกำหนดสิทธิ์ได้หลายชุดสำหรับที่เก็บข้อมูลที่แตกต่างกัน

บันทึก

การตั้งชื่อเป็นสิ่งสำคัญที่นี่ สำหรับที่เก็บข้อมูลบนโฮสต์ คุณต้องใช้ข้อ/datastore/{storename}ตกลง ตัวอย่างเช่น หากต้องการตั้งค่าสิทธิ์สำหรับ datastore mount ที่/mnt/backup/disk4/store2คุณจะใช้ /datastore/store2สำหรับเส้นทาง สำหรับร้านค้าระยะไกล ให้ใช้แบบแผน /remote/{remote}/{storename}โดยที่{remote}หมายถึงชื่อของรีโมต (ดูรีโมตด้านล่าง) และ{storename}เป็นชื่อของที่เก็บข้อมูลบนรีโมต

สิทธิ์โทเค็น API 

สิทธิ์โทเค็น API คำนวณตาม ACL ที่มี ID โดยไม่ขึ้นกับผู้ใช้ที่เกี่ยวข้อง สิทธิ์ที่เป็นผลลัพธ์ที่ตั้งค่าบนเส้นทางที่กำหนดจะถูกตัดกับสิทธิ์ของผู้ใช้ที่เกี่ยวข้อง

ในทางปฏิบัติหมายถึง:

  1. โทเค็น API ต้องการรายการ ACL ของตนเอง

  2. โทเค็น API ไม่สามารถทำอะไรได้มากกว่าผู้ใช้ที่เกี่ยวข้อง

สิทธิ์ที่มีประสิทธิภาพ

ในการคำนวณและแสดงชุดสิทธิ์ที่มีผลของผู้ใช้หรือโทเค็น API คุณสามารถใช้คำสั่ง:proxmox-backup-manager user permission

# proxmox-backup-manager user permissions john@pbs --path /datastore/store1
Privileges with (*) have the propagate flag set

Path: /datastore/store1
- Datastore.Audit (*)
- Datastore.Backup (*)
- Datastore.Modify (*)
- Datastore.Prune (*)
- Datastore.Read (*)
- Datastore.Verify (*)

# proxmox-backup-manager acl update /datastore/store1 DatastoreBackup --auth-id 'john@pbs!client1'
# proxmox-backup-manager user permissions 'john@pbs!client1' --path /datastore/store1
Privileges with (*) have the propagate flag set

Path: /datastore/store1
- Datastore.Backup (*)

การรับรองความถูกต้องด้วยสองปัจจัย

บทนำ

ด้วยการตรวจสอบสิทธิ์อย่างง่าย ต้องใช้รหัสผ่าน (ปัจจัยเดียว) เท่านั้นจึงจะอ้างสิทธิ์ข้อมูลประจำตัว (ตรวจสอบสิทธิ์) ได้สำเร็จ เช่น เพื่อให้สามารถเข้าสู่ระบบในฐานะroot@pamบนอินสแตนซ์เฉพาะของ Proxmox Backup Server ในกรณีนี้ หากรหัสผ่านรั่วไหลหรือถูกขโมย ทุกคนสามารถใช้รหัสผ่านนี้เพื่อเข้าสู่ระบบได้ แม้ว่าจะไม่ได้รับอนุญาตให้ทำเช่นนั้นก็ตาม

เมื่อใช้การรับรองความถูกต้องด้วยสองปัจจัย (TFA) ผู้ใช้จะถูกขอให้ใช้ปัจจัยเพิ่มเติมเพื่อตรวจสอบความถูกต้อง แทนที่จะอาศัยสิ่งที่ผู้ใช้เท่านั้นรู้ (รหัสผ่าน) ปัจจัยพิเศษนี้ต้องการสิ่งที่ผู้ใช้มีเท่านั้น เช่น ชิ้นส่วนของฮาร์ดแวร์ (คีย์ความปลอดภัย) หรือความลับที่บันทึกไว้ในสมาร์ทโฟนของผู้ใช้ วิธีนี้จะป้องกันไม่ให้ผู้ใช้ระยะไกลเข้าถึงบัญชีโดยไม่ได้รับอนุญาต เนื่องจากแม้ว่าผู้ใช้จะมีรหัสผ่าน ก็จะไม่สามารถเข้าถึงวัตถุทางกายภาพได้ (ปัจจัยที่สอง)

เพิ่มผู้ใช้ใหม่

ปัจจัยที่สองที่มีอยู่

คุณตั้งค่าปัจจัยที่สองได้หลายรายการ เพื่อหลีกเลี่ยงสถานการณ์ที่สมาร์ทโฟนหรือคีย์ความปลอดภัยหายจะทำให้คุณออกจากบัญชีอย่างถาวร

Proxmox Backup Server รองรับวิธีการตรวจสอบสิทธิ์แบบสองปัจจัยที่แตกต่างกันสามวิธี:

  • TOTP ( รหัสผ่านครั้งเดียวตามเวลา ) รหัสย่อที่ได้มาจากความลับที่ใช้ร่วมกันและเวลาปัจจุบัน จะเปลี่ยนทุกๆ 30 วินาที

  • WebAuthn ( การรับรองความถูกต้องของเว็บ ) มาตรฐานทั่วไปสำหรับการรับรองความถูกต้อง มันถูกนำไปใช้โดยอุปกรณ์รักษาความปลอดภัยต่างๆ เช่น คีย์ฮาร์ดแวร์หรือโมดูลแพลตฟอร์มที่เชื่อถือได้ (TPM) จากคอมพิวเตอร์หรือสมาร์ทโฟน

  • คีย์การกู้คืนแบบใช้ครั้งเดียว รายการกุญแจที่ควรพิมพ์ออกมาและล็อคไว้ในที่ปลอดภัย หรือบันทึกแบบดิจิทัลในห้องนิรภัยอิเล็กทรอนิกส์ แต่ละคีย์สามารถใช้ได้เพียงครั้งเดียว สิ่งเหล่านี้เหมาะอย่างยิ่งสำหรับการทำให้แน่ใจว่าคุณจะไม่ถูกล็อก แม้ว่าปัจจัยรองอื่น ๆ ทั้งหมดของคุณจะสูญหายหรือเสียหายก็ตาม

ตั้งค่า

ทีโอที

เพิ่มผู้ใช้ใหม่

ไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์ เพียงติดตั้งแอป TOTP บนสมาร์ทโฟนของคุณ (เช่นFreeOTP ) และใช้เว็บอินเทอร์เฟซ Proxmox Backup Server เพื่อเพิ่มปัจจัย TOTP

WebAuthn 

เพื่อให้ WebAuthn ทำงานได้ คุณต้องมีสองสิ่ง:

  • ใบรับรอง HTTPS ที่เชื่อถือได้ (เช่น โดยใช้Let's Encrypt ) แม้ว่าอาจใช้ได้กับใบรับรองที่ไม่น่าเชื่อถือ เบราว์เซอร์บางตัวอาจเตือนหรือปฏิเสธการดำเนินการ WebAuthn หากไม่น่าเชื่อถือ

  • ตั้งค่าการกำหนดค่า WebAuthn (ดูการกำหนดค่า -> การรับรองความถูกต้องในอินเทอร์เฟซเว็บเซิร์ฟเวอร์สำรอง Proxmox) สามารถป้อนอัตโนมัติได้ในการตั้งค่าส่วนใหญ่

เมื่อคุณปฏิบัติตามข้อกำหนดทั้งสองนี้แล้ว คุณสามารถเพิ่มการกำหนดค่า WebAuthn ใน แท็บ การตรวจสอบสิทธิ์แบบสองปัจจัยของ แผงควบคุมการเข้าถึง

คีย์การกู้คืน

เพิ่มผู้ใช้ใหม่

รหัสคีย์การกู้คืนไม่จำเป็นต้องมีการเตรียมการใดๆ คุณสามารถสร้างชุดคีย์การกู้คืนใน แท็บ การรับรองความถูกต้องด้วยสองปัจจัยของ แผงควบคุมการเข้าถึง

บันทึก

คีย์การกู้คืนแบบใช้ครั้งเดียวสามารถมีได้เพียงหนึ่งชุดต่อผู้ใช้ทุกเมื่อ

TFA และการเข้าถึงอัตโนมัติ

การรับรองความถูกต้องด้วยสองปัจจัยถูกนำมาใช้กับเว็บอินเตอร์เฟสเท่านั้น คุณควรใช้โทเค็น APIสำหรับกรณีการใช้งานอื่นๆ ทั้งหมด โดยเฉพาะแบบไม่โต้ตอบ (เช่น การเพิ่ม Proxmox Backup Server ลงใน Proxmox VE เป็นที่เก็บข้อมูล)

ขอบเขตการรับรองความถูกต้อง

แอลดีเอพี

Proxmox Backup Server สามารถใช้เซิร์ฟเวอร์ LDAP ภายนอกสำหรับการพิสูจน์ตัวตนผู้ใช้ ldapเพื่อให้บรรลุเป้าหมายนี้ ต้องกำหนดค่าขอบเขตของประเภท

ใน LDAP ผู้ใช้จะถูกระบุโดยไม่ซ้ำกันโดยโดเมน ( dnตัวอย่างเช่น ในชุดข้อมูล LDIF ต่อไปนี้ ผู้ใช้user1มีโดเมนเฉพาะ uid=user1,ou=People,dc=ldap-test,dc=com:

# user1 of People at ldap-test.com
dn: uid=user1,ou=People,dc=ldap-test,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: user1
cn: Test User 1
sn: Testers
description: This is the first test user.

ในทำนองเดียวกัน Proxmox Backup Server ใช้ตัวระบุผู้ใช้ ( userid) เพื่อระบุผู้ใช้โดยเฉพาะ ดังนั้นจึงจำเป็นต้องสร้างการแมประหว่าง Proxmox Backup Server และuseridLDAP dnการแม็พนี้สร้างขึ้นโดยuser-attrพารามิเตอร์คอนฟิกูเรชัน - ประกอบด้วยชื่อของแอ็ตทริบิวต์ LDAP ที่มีตัวระบุผู้ใช้ Proxmox Backup Server ที่ถูกต้อง

สำหรับตัวอย่างข้างต้น การตั้งค่าจะuser-attrมีuidผลให้ผู้ใช้user1@ถูกแมปกับเอนทิตี LDAP uid=user1,ou=People,dc=ldap-test,dc=comเมื่อเข้าสู่ระบบของผู้ใช้ Proxmox Backup Server จะทำการค้นหาทรีย่อยภายใต้โดเมนฐานที่กำหนดค่าไว้ ( base-dn) เพื่อค้นหาไฟล์dnเมื่อdnทราบแล้ว การดำเนินการผูก LDAP จะดำเนินการเพื่อตรวจสอบสิทธิ์ผู้ใช้กับเซิร์ฟเวอร์ LDAP

เนื่องจากเซิร์ฟเวอร์ LDAP บางตัวไม่อนุญาต การดำเนินการค้นหา แบบไม่ระบุชื่อจึงเป็นไปได้ที่จะกำหนดค่าโดเมนการโยง ( bind-dn) และรหัสผ่านการผูก ( passwordหากตั้งค่าไว้ Proxmox Backup Server จะผูกกับเซิร์ฟเวอร์ LDAP โดยใช้ข้อมูลรับรองเหล่านี้ก่อนดำเนินการค้นหาใดๆ

สามารถดูรายการพารามิเตอร์การกำหนดค่าทั้งหมดได้ที่domains.cfg

บันทึก

ในการอนุญาตให้ผู้ใช้เฉพาะพิสูจน์ตัวตนโดยใช้เซิร์ฟเวอร์ LDAP คุณต้องเพิ่มผู้ใช้เหล่านั้นเป็นผู้ใช้ของขอบเขตนั้นใน Proxmox Backup Server สามารถดำเนินการได้โดยอัตโนมัติด้วยการซิงค์

การซิงโครไนซ์ผู้ใช้ในขอบเขต LDAP 

เป็นไปได้ที่จะซิงค์ผู้ใช้โดยอัตโนมัติสำหรับอาณาจักรที่ใช้ LDAP แทนที่จะต้องเพิ่มผู้ใช้ไปยัง Proxmox VE ด้วยตนเอง ตัวเลือกการซิงโครไนซ์สามารถตั้งค่าได้ในหน้าต่างไดอะล็อกการกำหนดค่า realm ของ LDAP ใน GUI และผ่าน คำสั่ง การซิงโครไนซ์ผู้ใช้สามารถเริ่มต้นใน GUI ที่ Configuration > Access Control > Realms โดยเลือก realm และกด ปุ่มSync ในกล่องโต้ตอบการซิงค์ ตัวเลือกดีฟอลต์บางตัวที่ตั้งค่าในการกำหนดค่าขอบเขตสามารถถูกแทนที่ได้ อีกวิธีหนึ่งคือ การซิงโครไนซ์ผู้ใช้สามารถเริ่มต้นได้โดยใช้คำสั่งproxmox-backup-manager ldap create/updateproxmox-backup-manager ldap sync

By : ธราดล กิจบรรณ

โปรไฟล์ Blog โปรไฟล์ E-portfolio

หมวดหมู่ : เทคโนโลยี

ผู้เข้าชม 1388 ครั้ง 2023-04-18 11:51:08

Comment แสดงความคิดเห็น