德扑之星有限公司官方网站

 

多系統☧☬☸✡♁✙♆。,、':∶;,如何打通用戶✵✶✷✸✹✺✻✼❄❅,實現統一的身份認證웃유ღ♋♂?

 

我們之前寫過如何通過Drupal構建站群系統ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,如果需要請點擊查閱:《站群系統介紹》☾☽❄☃。

站群系統就面臨一個問題♦☜☞☝✍☚☛☟✌✽✾✿❁❃,就是打通用戶❣❦❧♡۵,所有的網站的用戶都用同一身份認證⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯。此外☧☬☸✡♁✙♆。,、':∶;,在高校⒜⒝⒞⒟⒠⒡⒢⒣⒤、企事業單位經常會有眾多系統ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,那么如何同一管理這些用戶和用戶認證呢⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯? 本文就如何通過Drupal實現統一的SSO認證作為重點ⓚⓛⓜⓝⓞⓟⓠⓡⓢ,來講解如何通過開源方案ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,實現統一身份認證㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂。

統一的身份認證ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,一般我們都會通過標準的協議來實現❣❦❧♡۵,比如常用的有一下幾種:

       (1)CAS認證系統ⓣⓤⓥⓦⓧⓨⓩ。

       (2)SSO認證ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ。

       (3)OAuth 2.0認證ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ。

三種方案對比❻❼❽❾❿⓫⓬⓭⓮⓯⓰,我們采用OAuth認證웃유ღ♋♂,因為CAS和SSO都有局限性㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,OAuth是無狀態❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,并且支持手機⒔⒕⒖⒗⒘⒙⒚⒛ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱ、WEBⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ、第三方應用都可以ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,開放程度相當高㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉。

 

OAuth 2.0 認證

Open auth❻❼❽❾❿⓫⓬⓭⓮⓯⓰,本質上是把用戶登錄⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,輸入用戶名和密碼⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,放到一個中心網站✺ϟ☇♤♧♡♢♠♣♥,當用戶登錄成功ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,就直接跳到目標網站♦☜☞☝✍☚☛☟✌✽✾✿❁❃,那么用戶的密碼只需要保存一份即可✵✶✷✸✹✺✻✼❄❅,比較方便ⓚⓛⓜⓝⓞⓟⓠⓡⓢ。

Open Auth的認證模式是多種的⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,因此可以兼容WEB✺ϟ☇♤♧♡♢♠♣♥、手機APPⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ、應用程序等☈⊙☉℃℉❅,因此第三方所有的應用都可以通過Oauth接入統一登錄系統⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,因此Oauth也提供多種授權方式⒜⒝⒞⒟⒠⒡⒢⒣⒤,每一種授權方式⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,可以兼容不同的場景♦☜☞☝✍☚☛☟✌✽✾✿❁❃,如下所示: 

   (1)授權碼(authorization-code)

   (2)隱藏式(implicit)

   (3)密碼式(password)

   (4)客戶端憑證(client credentials)

 

 

如何架設Oauth服務

 

Oauth本質上❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,就做用戶管理⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓、用戶修改密碼㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉、用戶登錄這三件事情ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,此外通過額外的配置ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,可以管理用戶在不同站點的role♀☿☼☀☁☂☄,也就是說可以在不同的站點ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,用戶擁有不同的角色和權限☈⊙☉℃℉❅。

Oauth服務⑰⑱⑲⑳⓪⓿❶❷❸❹❺,我們可以通過Drupal來架設❻❼❽❾❿⓫⓬⓭⓮⓯⓰,Drupal本身自帶用戶系統ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,那么加上Oauth模塊即可⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵❆❇❈❉❊†☨✞✝☥☦☓☩☯,Simple OAuth模塊可以迅速實現一個OAuth ServerⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,生成客戶端的APPID 和KEYⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,就可以辦法給客戶端使用♀☿☼☀☁☂☄,比較方便✵✶✷✸✹✺✻✼❄❅。

 

 

站群系統的架設

通過Oauth我們就實現了統一的身份認證⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,這樣就不需要多次登錄以及管理用戶⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾,多個站點就可以共享用戶信息❻❼❽❾❿⓫⓬⓭⓮⓯⓰,達到了單點登錄的目標❻❼❽❾❿⓫⓬⓭⓮⓯⓰。

比如⑰⑱⑲⑳⓪⓿❶❷❸❹❺,在圖書館內部⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓,我們就可以通過如下的方式實現單點登錄:

統一的用戶管理和認證中心

 

統一的用戶管理和認證后臺

 

所以☾☽❄☃,綜上所述㈠㈡㈢㈣㈤㈥㈦,當我們有多個站點①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯,比如信息站ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,財務管理☾☽❄☃,圖書館等系統ⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙ,需要我們通過Oauth打通集成在一起的時候웃유ღ♋♂,那我們可以采用如下的架構方案: 

 

 

與現有的用戶審批系統對接

 

很多單位㈠㈡㈢㈣㈤㈥㈦,已經有了用戶管理系統ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,并且包括權限審批㈠㈡㈢㈣㈤㈥㈦,那么我們可以通過Drupal☾☽❄☃,只做一個統一的身份認證即可✵✶✷✸✹✺✻✼❄❅,用戶的系統跟現有的系統集成即可☧☬☸✡♁✙♆。,、':∶;。

比如跟圖書館用戶系統集成❣❦❧♡۵,用戶的CMP審批系統等♦☜☞☝✍☚☛☟✌✽✾✿❁❃,整體的架構就是上面的圖❣❦❧♡۵,舊圖新用 :)

 

 

更多的站群和SAAS介紹ⅲⅳⅴⅵⅶⅷⅸⅹⒶⒷⒸⒹ,請參考我們之前的文章:

Headless CMS:以API為輸出的內容系統的構建

高校信息化之統一SAAS管理的解決方案

Drupal Headless CMS 之 GraphQL API

德扑之星官网下载 网站地图