Django實現SSO


一:什么是單點登錄呢?

單點登錄是用戶首次登錄時發布安全令牌,使用一組憑據(即安全令牌)登錄多個應用程序的一種方式。

將sso添加到應用程序將使用戶更容易,因為他們不需要記住多個應用程序的登錄憑據。用戶只需要首次輸入他們的登錄憑據,而不是為每個應用程序登錄重新輸入他們的憑據。


 

在這篇文章中,我們將看到如何使用django-simple-sso向多個django應用程序添加單點登錄。

使用django-simple-sso,我們應該有單個服務器,多個客戶端。

  1.服務器將擁有所有用戶信息,這些信息將在登錄時驗證用戶詳細信息,首次創建令牌。使用他們的安全令牌,它將驗證用戶詳細信息
  2.每個客戶端或應用程序需要在服務器中生成其公鑰,私鑰以安全地執行請求。

 

Django SSO如何適用於多個應用程序?

  用戶→應用程序→SSO服務器→應用程序

  1.當用戶登錄應用程序時,客戶端將發送帶有下一個GET參數的請求,該參數在成功登錄后具有重定向URL

  2.將在服務器上驗證請求詳細信息(應用程序詳細信息:公鑰,私鑰,重定向URL)

  3.它返回將在第一次登錄時創建的用戶請求令牌

  4.使用請求令牌,我們向服務器發送請求以驗證用戶授權。為了成功授權,它將返回用戶安全令牌。如果用戶未登錄,則會要求輸入用戶登錄詳細信息。

  5.客戶端將向服務器發送一個post請求以驗證用戶訪問令牌。

  6.如果用戶訪問令牌有效,則服務器返回序列化的Django User對象。

  7.應用程序使用從服務器收到的Django用戶登錄用戶。


 

首先我們要增加Django的插件以實現單點:

服務器端:

1.使用以下命令安裝django-simple-sso:

 

 

2.運行以下命令以存儲每個客戶端或應用程序詳細信息,用戶令牌。

 

3.在django shell中的服務器端創建應用程序或客戶端詳細信息(公鑰,私鑰)。

 

4.將'simple_sso.sso_server'添加到INSTALLED_APPS

 

5.初始化服務器並將以下url模式添加到urls.py文件:

 


客戶端:

1.使用以下命令安裝django-simple-sso:

 

2.將公鑰,私鑰,服務器URL添加到應用程序設置

 

3.初始化客戶端並將以下客戶端URL添加到應用程序URL:

url(r'^ client /',include(test_client.get_urls())),

 

使用上述設置創建2個客戶端應用。使用/ etc / hosts文件為您的appplication添加不同的主機名。

訪問您的應用程序http://test.yourapp.com:8000/client/,如果尚未登錄它將詢問用戶憑據。成功登錄后,訪問其他應用程序http://test.testyourapp.com:8001/client/,用戶已經登錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM