王軍輝,錢 慶,周 琴,鐘 明,石艷明,譚宗穎
(1.中國科學院文獻情報中心;2.中國科學院大學;3.中國醫學科學院醫學信息研究所)
中國互聯網絡信息中心第41次《中國互聯網絡發展狀況統計報告》顯示,截至2017年12月,中國手機網民數量達7.53億人,[1]占網民總數的97.5%。在圖書館尤其是數字圖書館領域,借助新媒體手段為讀者提供服務正逐漸成為常態。新媒體使得讀者可以利用手機及各種移動終端隨時隨地獲得圖書館的服務,在時間和空間上大大拓展了圖書館的服務范圍。然而,隨之而來的一個問題是,如何支持讀者通過移動終端訪問圖書館需要授權許可的資源,尤其是圖書館購買的各種在線商業數據庫資源。虛擬專用網絡(VirtualPrivateNetwork,VPN)和各種代理工具等傳統的突破物理IP范圍限制的遠程訪問方式,在移動互聯網環境下有諸多缺陷和不足,已不能滿足新媒體時代圖書館的服務需求。因此,圖書館需要提供移動身份認證機制,以支持讀者可以在任何時間、任何地點、任何移動終端訪問圖書館的所有資源。本文在對當前面向圖書館領域的移動身份認證產品對比分析的基礎上,以中國醫學科學院/北京協和醫學院圖書館(以下簡稱“醫科院圖書館”)“協和統一身份認證”系統為例,嘗試探討圖書館移動身份認證系統的建設實踐。
出于知識產權保護和合理使用的原因,圖書館(尤其是高校圖書館)訂購的商業數據庫資源以及部分自建數據庫資源只允許讀者在圖書館(或學校)IP范圍內訪問。為了突破IP限制,傳統的做法是利用VPN或各種代理技術,幫助合法用戶獲得圖書館各類數據庫資源的訪問權限。其中,VPN的主要原理是通過在公用網絡中建立專用網絡,利用數據包加密和目標地址轉換來實現遠程訪問;經典的代理服務器技術(Proxy Server)則主要是利用代理服務器將IP范圍外用戶的訪問請求轉換為合法的訪問請求,并將返回信息傳遞給用戶。目前,被國內外圖書館廣泛采用的各類代理軟件(EZproxy、匯文電子資源讀者遠程訪問系統、易瑞授權訪問系統等)則主要基于“URL重寫”技術,利用預先配置完成的資源目標和代理服務器之間的映射關系,將用戶請求轉向代理服務器的請求。本質上,上述方式都是將IP許可范圍以外的用戶訪問轉換為IP許可范圍以內,實現用戶對目標數據庫訪問地址的相對轉換,即“IP轉換”,從而支持用戶獲得受保護資源的訪問權限。IP轉換方式目前在圖書館領域應用廣泛,但在移動互聯網環境下存在以下缺陷。[2,3]
(1)移動訪問兼容性差。讀者利用VPN或代理技術遠程訪問圖書館資源時通常需要在本地安裝客戶端軟件,隨著技術升級,部分方式(如SSL VPN、代理軟件等)不再要求安裝客戶端,但仍須在本地瀏覽器中安裝特定的控件或插件。這種控件或插件的安裝對許多用戶來說操作復雜,且難以兼容各種版本的操作系統和瀏覽器,尤其是讀者通過移動終端進行訪問時,系統兼容性更差。另外,出于安全性考慮,許多VPN技術或代理軟件都要求用戶配合特定的USBKey進行雙重認證后訪問,而手機及各類移動終端一般并不提供USB數據接口。
(2)發現系統支持不足。利用基于統一元數據倉儲(本地和云端)的發現系統向讀者提供一站式集成檢索服務,已成為專業和高校圖書館的服務常態。讀者通過發現系統獲得的資源可能來自圖書館本地或訂購的在線數據庫中的任意來源,而基于URL重寫的代理軟件只能針對每個數據庫分別配置轉換地址,讀者必須逐一通過轉換后的地址才能獲得相應數據庫的訪問權限,無法利用發現系統的返回結果單點登錄直接獲得所有數據來源的訪問權限。另外,部分不支持URL重寫的數據庫無法通過代理軟件訪問。
(3)用戶信息難以集成。理想狀態下,讀者可以利用已有的賬戶信息直接登錄遠程訪問系統進而獲取相應資源的訪問權限。而在實際應用時,無論是利用VPN還是代理軟件,圖書館都必須要為讀者創建專門的用戶名和密碼信息,盡管可以和圖書館已有的用戶賬戶信息(如學生證號、讀者卡號等)進行集成,但都需要進行專門的定制開發,技術難度較大。
基于上述分析,筆者認為,移動互聯網環境下圖書館的移動身份認證系統至少應滿足以下4個方面的基本要求:① 支持讀者利用各類移動終端友好訪問圖書館受保護的資源;② 支持讀者通過發現系統無縫訪問各個數據的資源;③ 支持讀者對圖書館本地資源和訂購的商業資源的單點登錄訪問;④ 支持讀者利用已有賬戶信息直接登錄訪問。區別于“IP轉換”的技術路徑,以 Shibboleth[4]和 OpenAthens[5]為代表的“ID認證”技術完全擺脫了IP認證的理念,支持用戶通過賬號直接訪問商業性學術資源。與傳統的由數據庫服務商各自管理用戶賬戶不同,“ID認證”方式支持由圖書館在本地管理和維護自身的用戶賬戶數據。配合特定的本地化策略,ID認證方式可以很好地滿足移動互聯網環境下圖書館遠程訪問的基本需求。
Shibboleth是目前全球范圍內應用最廣泛的聯邦式身份認證解決方案之一,它起源于2000年美國Internet2組織[6]的一個網絡中間件項目,在和結構化信息標準促進組織(OrganizationfortheAdvancementofStructuredInformationStandards,OASIS)的安全聲明標記語言(SecurityAssertionMarkupLanguage,SAML)工作組合作之后,Internet2于2003年發布了Shibboleth1.0版本,并迅速被教育和科研領域廣泛采用。目前,Shibboleth已從Internet2分離出來,由 Shibboleth聯盟(ShibbolethConsortium)獨立運營,現在的系統為2008年發布的Shibboleth2.0版本。
作為一個開源軟件系統,Shibboleth主要由身份提供者 (Identity Provider,IdP)、服務提供者 (Service Provider,SP)和可選的發現服務(Discovery System,DS)三部分構成。其中,IdP組件需要安裝部署在圖書館內部,主要負責讀者信息管理和身份認證。當收到SP發來的讀者認證請求時,IdP負責將認證結果反饋給SP。SP組件由數據庫服務商部署在數據庫服務器端(圖書館也可以在本地同時安裝SP,從而為自建數據庫資源提供Shibboleth訪問服務),主要根據IdP反饋的讀者認證信息對讀者進行訪問權限驗證和控制,為合法用戶提供訪問授權的同時保護自身受限資源。DS組件的主要作用是在SP不能直接確定讀者所屬IdP時,通過和讀者的交互來輔助確定讀者所屬的IdP,即WAYF(WhereAreYouFrom)服務。DS組件一般由數據庫服務商或IdP所加入的認證聯盟根據自身情況選擇部署。上述各個組件之間通過SAML協議實現用戶認證信息和資源訪問權限等相關信息的傳遞和共享。
傳統概念中的單點登錄系統一般只適用于在同一個機構內部的情況,即實現對機構內部所有相關資源的一次性登錄訪問。由于采用了SAML協議框架,Shibboleth可以實現IdP和SP不在同一個機構時的單點登錄,即所謂的聯邦式單點登錄。Shibboleth最突出的特點就在于其支持用戶單點登錄訪問外部服務的同時還能保護用戶的賬號信息安全。通過部署Shibboleth系統(一般是IdP組件),圖書館可以很容易實現讀者對訂購的在線商業數據庫資源(SP)的單點登錄訪問,且所有讀者的賬戶信息均由圖書館本地管理和維護。讀者基于Shibboleth訪問圖書館訂購的商業數據庫的流程(見圖1,未涉及DS)可歸納為6個步驟:① 讀者訪問圖書館所訂購的在線商業性數據庫資源;② 商業數據庫SP向讀者訪問資源所在的圖書館IdP發送驗證讀者身份合法性的請求;③ 圖書館IdP將驗證請求返回給讀者;④ 讀者在IdP中輸入賬號信息進行身份驗證;⑤ IdP將驗證結果發送給商業數據庫SP;⑥ 商業數據庫SP將資源訪問權限向通過驗證的讀者開放。

圖1 Shibboleth訪問流程
OpenAthens的前身為英國Eduserv公司于20世紀90年代開發設計的用于提供單點登錄服務的身份和訪問管理軟件Athens系統。Athens最初采用集中認證方式,[7]即所有使用Athens來訪問商業數據庫資源的機構都要將其自身用戶的認證信息集中存放在Athens用戶庫中,由Eduserv統一管理維護。首先,Athens會和各個數據庫服務商達成協議,生成針對每個數據庫的訪問權限列表;然后,購買了數據庫的機構需要在Athens中注冊生成機構用戶賬號,并提交所購買的具體數據庫的訪問權限。這樣機構用戶就可以利用A-thens賬號直接訪問自身權限范圍內的所有數據庫資源,而不受IP范圍限制。隨著技術的發展,Athens一直在向著更開放、更標準化的方向優化,并逐漸由集中認證方式向聯邦式認證方式轉變。2007年,Eduserv將SAML標準整合并嵌入在了Athens中,更名為OpenAthens。目前,OpenAthens可以同時支持集中認證和聯邦式認證。
由于都是基于SAML框架,和Shibboleth系統的IdP和SP組件相對應,OpenAthens系統同樣提供Open Athens LA(Local Authentication) 和 OpenAthens for Publisher兩個版本的軟件產品,分別供圖書館和數據庫服務商安裝使用。因此,理論上OpenAthens聯邦式認證的具體流程和前述的Shibboleth訪問流程是完全相同的。OpenAthens和Shibboleth的主要區別在于OpenAthens還保留集中認證模式,即不僅支持圖書館在本地通過OpenAthens LA管理和存儲自身讀者信息,也支持圖書館在不安裝OpenAthens LA的情況下將其讀者信息保存在OpenAthens Cloud中,由OpenAthens統一管理。圖書館可以根據自身情況選擇不同的方案。讀者通過OpenAthens集中認證方式訪問圖書館訂購的商業數據庫時,利用自身賬戶信息登錄OpenA-thens門戶,可以在MyAthens界面直接訪問有相應權限的商業數據庫資源(見圖2)。
OpenAthens的主要優勢在于其實現圖書館身份認證方案的便捷性。在Shibboleth體系中,Shibboleth IdP的圖書館需要逐一與所訂購的商業數據庫(SP)進行技術對接和互認,之后讀者才能對所有接入的數據庫實現聯邦式的單點登錄訪問,具體的接入過程比較繁瑣,需要一定的時間周期。而在OpenAthens體系中,由于OpenAthens Cloud和OpenAthens Federation的存在,OpenAthens可以對所有接入的商業數據庫進行集中接入管理,圖書館只需配置一次OpenAthens就能實現和自身購買的所有商業數據庫的連接互認,不需要再分別接入,可以節省時間和IT資源成本。這也是OpenAthens成為一個商業產品、而非開源軟件的主要原因。

圖2 OpenAthens集中認證流程
中國科學院計算機網絡信息中心自主開發的用戶管理工具(User Management Tool,UMT)是一套具有用戶管理和單點登錄統一身份認證功能的軟件系統。基于UMT部署實現的中國科技云通行證主要服務于中國科學院系統的科研人員。截至2017年底,中國科技云通行證注冊用戶已超過54萬人,覆蓋了中國科學院95%以上的研究院所,成為中國科學院科研管理方面的重要基礎設施。借助中國科技云通行證的實踐經驗,根據最新的技術發展趨勢,中國科學院計算機網絡信息中心對UMT進行了持續的研發升級,從2006年的UMT1.0發展到目前最新版本UMT8.1.9,從最初僅支持OAuth認證接入,到現在支持包括OAuth2.0、SAML2.0、輕量目錄訪問協議(Lightweight Directory Access Protocol,LDAP)、活動目錄聯合服務(Active Directory Federation Services,ADFS) 等在內的多種認證接入方式。
2016年針對SAML的技術升級之后,UMT實現了對Shibboleth IdP組件的集成,因此可視之為在圖書館本地部署的IdP系統。區別于Shibboleth IdP和OpenAthens LA,UMT滿足了圖書館移動身份認證的需求。
(1) 支持 SAML2.0和 OAuth2.0認證互通。在UMT的體系框架中,一方面主要基于SAML2.0實現和國外商業數據庫(SP)的認證接入,尤其是在中國科技云通行證基礎之上逐步發展起來的中國科技云聯盟(CSTCloud Federation)已經實現與國外主要商業數據庫的認證接入;另一方面,基于OAuth2.0實現和國內尤其是圖書館本地數據庫或應用系統的對接,彌補了目前國內絕大多數圖書館的自建數據庫均不支持SAML的缺陷。更為重要的是,UMT實現了SAML2.0和OAuth2.0認證互通,從而有效解決了圖書館本地資源和在線商業數據庫資源的單點登錄問題。
(2)支持移動客戶端接入。UMT針對第三方的移動客戶端應用提供了專門的網絡接入方案(包括Andorid和iOS等移動平臺),支持讀者使用UMT中的賬號直接登錄,避免了讀者重復注冊的繁瑣流程,提升了用戶體驗,對圖書館移動業務的開展具有重要意義。另外,UMT針對各種類型的接入(OAuth、SAML、LDAP、網站、移動客戶端、桌面客戶端等)都提供了專門的技術文檔,使其成為簡單、實用、集成的圖書館移動身份認證解決方案。
上述三種身份認證解決方案都可以實現用戶利用ID賬號對接入數據庫的單點登錄和移動訪問,因此理論上它們是可以相互替代的。但是考慮到不同圖書館在資源構成、讀者訪問需求、技術能力等各方面的差異,在具體選擇移動身份認證方案時,除了費用這一前提因素之外,還應從本地化成本和商業數據庫覆蓋范圍兩個方面重點分析(見下表)。

表 移動身份認證解決方案比較
圖書館移動身份認證系統的本地化主要涉及兩個方面:圖書館已有用戶認證數據的復用和自建數據庫資源的接入。為了提升用戶體驗,避免產生額外賬號,移動身份認證系統必須支持讀者利用已有的圖書館賬號登錄,上述三種方案均支持通過多種途徑來集成本地用戶目錄,如,可通過LDAP、ADFS接入或基于API調用圖書證號、郵箱賬號、學生證號等,甚至可以基于SAML或OAuth來對接已有的統一認證管理系統。用戶數據本地化成本主要取決于已有用戶管理系統的改造難度。在對接圖書館自建數據庫方面,Shibboleth和OpenAthens的思路基本相同,即通過在本地部署SP組件實現自建數據庫的“Shibboleth化”或“OpenAthens化”,這種方式涉及到對自建數據庫的改造和升級,實現過程復雜,對圖書館技術能力要求較高,而無法進行適應性改造的部分數據庫則只能通過傳統代理方式來實現。UMT主要基于OAuth2.0實現對本地數據庫的集成,雖然也需要對數據庫進行相應技術改造,但相對比較容易實現。
商業數據庫的覆蓋范圍是選擇移動身份認證方案的另一個重要因素。目前,大多數國際上著名的商業數據庫和高校、圖書館聯盟等機構均同時支持Shibboleth和OpenAthens。由于實現了對Shibboleth IdP的集成,UMT也可以接入所有支持Shibboleth的商業數據庫。然而調研發現,國內三大中文數據庫(維普、萬方、中國知網)目前均不支持Shibboleth和OpenA-thens訪問,但均支持通過QQ或微博賬號的OAuth2.0訪問,具備了支持UMT訪問的技術基礎。在用戶方面,Shibboleth和OpenAthens已被國外許多圖書館廣泛采用,而在國內,Shibboleth主要應用于以中國高等教育文獻保障系統(China Academic Libraryamp;Information System,CALIS)為主導的CALIS-CARSI服務項目[3,8]中,OpenAthens只被個別圖書館采用,UMT則主要在中國科學院系統內使用。
醫科院圖書館是國家級醫學信息資源保障與服務中心和國家科技圖書文獻中心(NSTL)醫學分中心,兼有高校和科研院所圖書館兩種職能,不僅服務于北京協和醫學院 (Peking Union Medical College,PUMC)在校師生,還要保障中國醫學科學院下屬18個二級科研院所科研人員的文獻服務需求。除了訂購的百余種國內外醫藥衛生領域的網絡數據庫資源,醫科院圖書館經過多年積累還陸續研發了中國生物醫學文獻數據庫(CBM)、中國生物醫學文獻服務系統(SinoMed)、中國衛生政策研究門戶等一系列自建特色資源庫,另外,集醫藥資訊、文獻服務、參考咨詢等服務于一體的醫學知識服務APP“醫訊通”也正在開發過程中。醫科院圖書館原有的電子資源遠程訪問主要是利用采購的易瑞授權訪問系統來實現,如前所述這種軟件代理的方式已不能滿足全體師生和科研人員對圖書館自建和訂購數據庫的移動訪問需求,因此亟需搭建移動身份認證系統。
通過對上述三種移動身份認證產品的對比分析,綜合考慮自身的資源構成、讀者訪問需求、技術能力以及實現周期等各方面因素,醫科院圖書館決定采用UMT來部署實現醫科院系統的移動身份認證系統,即“協和統一身份認證”。首先,按照系統部署要求分別安裝UMT主程序及其所集成的Shibboleth IdP組件程序,同時還包括用于Web轉發的Nginx服務器、用于緩存加速的Memcche服務器以及保存用戶信息的數據庫系統的安裝。其次,在本地用戶數據集成方面,考慮到電子郵箱對于在校師生和科研人員的重要性,決定采取API調用的方式對接中國醫學科學院的郵箱系統,通過在中國醫學科學院的郵箱管理系統(CoreMail)和UMT系統相互添加對方的內網IP及端口來完成API設置,這樣擁有中國醫學科學院官方郵箱賬戶的師生和科研人員就可以直接登錄協和統一身份認證系統來訪問資源。需要說明的是,UMT目前只能通過API對接一個郵箱系統,對于多個郵箱系統的情況,可通過兩種途徑解決:① 擁有其他郵箱賬號的用戶利用自身賬號在UMT系統進行注冊成為合法用戶;② 對UMT進行相應的二次開發改造以支持通過API對接多個郵箱系統的需求。
UMT本地配置完成之后,“協和統一身份認證”系統作為一個IdP已經具備了和商業數據庫對接的全部技術條件。由于采用的是Shibboleth的技術路徑,因此PUMC需要逐一對接圖書館采購的國外商業數據庫(SP)。根據自身技術架構或對客戶信任程度的不同,國外數據庫接入IdP時一般有兩種方式:一種是將自身SP直接對接客戶的IdP(如ProQuest、Springer),另一種是要求客戶通過某一個身份認證聯盟接入(如Clarivate、Ovid)。
針對第一種方式,PUMC直接將基于SAML的自身IdP元數據提交給商業數據庫,而商業數據庫則將自身的SP元數據反饋給PUMC,雙方互相根據對方元數據信息配置成功后即完成認證接入。針對第二種方式,PUMC需要首先選擇加入一個身份認證聯盟。調研發現,目前國內支持Shibboleth認證接入的聯盟有:中國科技云聯盟(CSTCloud Federation)和北京大學發起的教育科研網統一認證和資源共享基礎設施(CERNET Authentication and Resource Sharing Infrastructure,CARSI)。[8]其中,CARSI通過和 CALIS 合作,實現了和CALIS統一認證的對接,同時作為一個Shibboleth認證聯盟,CARSI還部署了DS服務,并對Shibboleth IdP組件進行了改造,以方便各高校在本地部署。[3]由于部署的是UMT系統,為快速實現通過認證聯盟接入國外商業數據庫的目標,PUMC最終選擇了和UMT兼容性更高的中國科技云聯盟進行接入。
需要說明的是,由于圖書館信息技術部門一般并不了解商業數據庫的具體采購情況,需要資源采購部門的同事協助聯系商業數據庫的國內銷售人員,并經由商業數據庫的國內銷售人員聯系他們的國外技術人員。另外,認證聯盟接入時,還需要協調聯盟技術人員完成IdP和聯盟的對接以及聯盟和數據庫的對接。因此,在具體對接過程中,可能會涉及到圖書館信息技術部門、圖書館資源采購部門、商業數據庫國內銷售人員、商業數據庫國外技術人員和認證聯盟技術人員等多方人員。具體接入實現周期主要取決于各方人員的溝通效率和數據庫國外技術人員的響應速度。
目前,“協和統一身份認證”系統已經實現了和醫科院圖書館訂購的部分國外商業數據庫的對接,包括 Clarivate、Nature、Ovid、ProQuest、Springer等。北京協和醫學院師生和中國醫學科學院系統的科研人員可以利用郵箱賬號直接訪問上述訂購資源。另外,針對自建數據庫(SinoMed)適應OAuth2.0的技術改造也正在進行中,以便使其支持“協和統一身份認證”系統的移動訪問(見圖3)。

圖3 “協和統一身份認證”系統整體架構
移動身份認證系統可以支持讀者在任何時間、任何地點、通過各種終端訪問圖書館的所有資源,是數字圖書館適應信息技術發展需求、開展面向移動互聯網服務的前提和基礎。本文以醫科院圖書館的移動身份認證系統“協和統一身份認證”為例,探討數字圖書館移動身份認證系統的建設實踐,以期為國內其他圖書館的相關工作提供參考。后續工作主要包括:①繼續接入圖書館訂購的國外數據庫,不斷擴大認證系統的數據庫覆蓋范圍;② 將“協和統一身份認證”嵌入正在開發中的醫學知識服務APP“醫訊通”,提升醫科院圖書館面向移動互聯網的知識服務能力;③面向中國醫學科學院所有二級科研院所,開展針對協和統一身份認證的使用培訓與推廣。