單點登陸是用戶首次登陸時發佈安全令牌,使用一組憑據(即安全令牌)登陸多個應用程序的一種方式。shell
將sso添加到應用程序將使用戶更容易,由於他們不須要記住多個應用程序的登陸憑據。用戶只須要首次輸入他們的登陸憑據,而不是爲每一個應用程序登陸從新輸入他們的憑據。django
在這篇文章中,咱們將看到如何使用django-simple-sso向多個django應用程序添加單點登陸。安全
使用django-simple-sso,咱們應該有單個服務器,多個客戶端。服務器
1.服務器將擁有全部用戶信息,這些信息將在登陸時驗證用戶詳細信息,首次建立令牌。使用他們的安全令牌,它將驗證用戶詳細信息
2.每一個客戶端或應用程序須要在服務器中生成其公鑰,私鑰以安全地執行請求。app
Django SSO如何適用於多個應用程序?post
用戶→應用程序→SSO服務器→應用程序url
1.當用戶登陸應用程序時,客戶端將發送帶有下一個GET參數的請求,該參數在成功登陸後具備重定向URLspa
2.將在服務器上驗證請求詳細信息(應用程序詳細信息:公鑰,私鑰,重定向URL)插件
3.它返回將在第一次登陸時建立的用戶請求令牌server
4.使用請求令牌,咱們向服務器發送請求以驗證用戶受權。爲了成功受權,它將返回用戶安全令牌。若是用戶未登陸,則會要求輸入用戶登陸詳細信息。
5.客戶端將向服務器發送一個post請求以驗證用戶訪問令牌。
6.若是用戶訪問令牌有效,則服務器返回序列化的Django User對象。
7.應用程序使用從服務器收到的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:
使用上述設置建立2個客戶端應用。使用/ etc / hosts文件爲您的appplication添加不一樣的主機名。
訪問您的應用程序http://test.yourapp.com:8000/client/,若是還沒有登陸,它將詢問用戶憑據。成功登陸後,訪問其餘應用程序http://test.testyourapp.com:8001/client/,用戶已經登陸。