跳轉至內容

GNU Health/中央認證

來自華夏公益教科書,為開放世界提供開放書籍



對於大型的、分散式的 GNU Health 安裝,例如公共醫院網路,您可能需要考慮採用中央使用者認證模型。

在這種方法下,使用者及其登入憑據在中央進行管理,因此可以方便地在需要時建立、修改和/或撤銷它們。

GNU Health 中的中央認證模型非常靈活,允許每個醫療機構擁有不同的角色。例如,一名醫護人員可以在兩個不同的醫療中心工作。Cameron Cordara 醫生上午在GNU SOLIDARIO 醫院擔任家庭醫生,下午與社會工作者合作,在當地基層醫療機構會見社群。兩個中心兩個不同的角色,但只有一人,一個登入。

注意:本文件基於FreeBSDOpenLDAP下的安裝,但它也應該在其他 Free/Libre 作業系統上執行良好,例如GNU/Linux。還有許多配置和部署選項,例如公鑰基礎設施 (PKI)、LDAP 複製等,在本入門性概念文件中未涵蓋。

  • OpenLDAP 伺服器 (slapd)
  • Tryton 伺服器模組:trytond_ldap_authentication

中央認證工作流程

[編輯 | 編輯原始碼]
  1. 醫護人員在登入提示符處輸入使用者名稱/密碼。
  2. 憑據在 OpenLDAP 伺服器上進行檢查。
場景 1:使用者存在於 OpenLDAP 資料庫中。如果提供的密碼正確,則使用者將使用其本地授權配置檔案登入。如果使用者輸入了錯誤的密碼,則會再次出現登入提示符。
場景 2:使用者不存在於 OpenLDAP 資料庫中。憑據在醫療機構的本地 GNU Health 資料庫中進行檢查。
場景 3:OpenLDAP 伺服器無法訪問(網路故障、伺服器宕機等)。與場景 2 相同的規則適用。

在 LDAP 伺服器上建立組織和使用者

[編輯 | 編輯原始碼]

安裝 OpenLDAP 後,您需要建立組織、角色和使用者,以便 LDAP 客戶端和 GNU Health 可以與伺服器互動。

以下LDIF 檔案用於建立基本組織和使用者,僅用於演示目的。

示例 LDIF 檔案

# The GNU Health Organization
dn: dc=gnuhealth,dc=org
objectclass: dcObject
objectclass: organization
o: GNU Health Nation
dc: gnuhealth

dn: cn=Manager,dc=gnuhealth,dc=org
objectclass: organizationalRole
cn: Manager

# PEOPLE Organizational UNIT (first level hierchy)
dn: ou=people, dc=gnuhealth,dc=org
ou: people
description: All people in organisation
objectclass: organizationalunit

# Actual users
dn: cn=Cameron Cordara,ou=People,dc=gnuhealth,dc=org
objectClass: inetorgperson
cn: Cameron Cordara
sn: Cordara 
uid: cameroncordara 
userPassword: SecretPass


您現在可以上傳您新建立的 LDIF 檔案,以填充初始 OpenLDAP 資料庫,例如

$ slapadd -l <your_ldif_file>

在 GNU Health 中配置 LDAP

[編輯 | 編輯原始碼]
使用 OpenLDAP 進行使用者集中認證的 GNU Health 配置

配置完 OpenLDAP 伺服器並建立使用者後,您需要配置 GNU Health Tryton 例項以與其通訊。

  • 安裝以下 Tryton 模組
    • trytond_ldap-authentication
  • 建立新的 LDAP 連線(管理 → LDAP → 連線)
    • 填寫資訊以滿足您的 LDAP 伺服器規範。
    • 儲存連線
  • 在 GNU Health 中建立使用者(管理 → 使用者 → 使用者)

您現在可以建立一個與 LDIF 檔案中的 uid 匹配的使用者,併為其分配本地角色。在這種情況下,我們將螢幕上的“登入”名稱與組織中使用者的 uid 匹配。對於 Cameron Cordara 醫生,登入名稱將是cameroncordara。同樣,這只是為了演示目的。在現實場景中,您將使用唯一的識別符號作為登入名稱。

注意:您會注意到密碼欄位已被“填充”。這是因為實際的使用者密碼現在儲存在 LDAP 伺服器中,而不是您的本地例項資料庫中。

如果一切順利,您現在已經為中央認證啟用了 GNU Health。嘗試以“cameroncordara”身份登入。她的憑據將在 LDAP 伺服器上進行檢查。

模組 · 補丁和補丁集

華夏公益教科書