當前位置:首頁 » 網頁前端 » web應用實現單台登錄
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

web應用實現單台登錄

發布時間: 2023-01-13 00:31:07

『壹』 websphere單點登錄問題

這個我們以前是通過代碼實現的,在資料庫中保存一個key值,當登錄時更新key值。以後每次訪問判斷key值是否發生變化。變化的化就退出。這樣當另一台機器登錄後,本機就會發現key值變更,實現了單點。

『貳』 java實現一台電腦只能登錄一個web系統demo

這個好辦, 如果你只限制一條電腦登錄一個系統,可以用後台 Map類綁定用戶名和電腦的mac地址,因為每一台電腦只有唯一的一個mac地址,mac地址可以由瀏覽器獲取,具體可到網上找資料。如果是一個系統只能有一個用戶在線,就在登錄的時候,綁定sessionID在另一個地方有用戶登錄的時候,清空第一個session ,也就是迫使前一個登錄的用戶下線

『叄』 關於javaWeb單點登錄

你這樣入手,給你列出整個簡單流程,你自己思考一下:

1)下載,配置 Tomcat。
2)寫 JSP 與 Servlet ,調用 MySQL 或其他資料庫。

3)在 Tomcat 部署你的應用程序。
4)在瀏覽器運行你的應用程序。

一個簡單的測試系統,主要由兩個頁面組成就夠了:

1)登錄頁面。
2)登錄成功後,顯示的主頁面。

後台程序,只要寫一個就行了:

1)接收登錄的用戶名密碼,去查詢資料庫。

『肆』 Web系統之常用單點登錄協議

企業中一般會存在多個系統,假設用戶進入每個系統前都需要輸入賬號/密碼登錄,在系統個數少的情況下,每次輸入賬號/密碼還能接收;如果系統個數較多,用戶則無法接收。單點登錄則很好地解決了此問題。

單點登錄的原理是用戶只需進行一次登錄,便可訪問多個系統。

可用於單點登錄的協議較多,下面將會簡單說明一下常見的四種單點登錄協議CAS、OAuth2、OpenID、SAML。

CAS協議是一種基於token協議。它用於Web應用的單點登錄或登出,協議內容就是規范出一組用於登錄/登出的URIs。協議詳見: https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html

協議涉及到的重要概念如下:

用CAS實現的單點登錄流程如下:

理解OAuth2本身,見 http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

這里重點提出的是使用Oauth2的單點登錄流程:

OpenID最新版本是OpenID Connect,它為OpenID的第三代技術。OpenID Connect允許所有類型的客戶端,包括基於瀏覽器和本機移動應用程序。

OpenID用於終端用戶的身份認證,OAuth2用於在已知用戶身份合法情況下對客戶端的資源授權。OpenID Conect = OpenID + OAuth2。

OpenID Connect基於OAuth協議之上,在OAuth2中有一個特殊的Scope "openid"來標識openid請求,並在OAuth2的返回體中增加一個idtoken的欄位來標識用戶。

使用OpenID Connect的單點登錄流程與Oauth2一致。

目前國內很多應用(瀏覽器或手機)都支持微信,微博等第三方認證,比如。這種第三方認證可以用OpenID Connect來實現。

注意一般商業應用才會支持使用第三方認證

SAML通過XML進行交互,且基於HTTP之上。

SAML協議中涉及的基本術語下面進行簡要介紹。

IdP: Identity Provider, 身份提供商,是指提供身份管理的服務。常見的企業自有IdP有AD FS,Shibboleth等,Cloud IdP有Azure AD,Okta,OneLogin等。

SP: Service Provider,服務提供商,是指利用IdP的身份管理功能,為用戶提供具體服務的應用。SP會消費IdP提供的用戶信息。在一些非SAML協議的身份系統(比如OIDC)里,也把Service Provider稱作Relying Party,也就是IdP的依賴方。

SAML: Security Assertion Markup Language,是一個實現企業級用戶身份認證的標准協議。是SP和IdP之間實現溝通的技術實現方式之一。是目前企業身份聯盟的的事實標准(SAML 2.0)。

SAML Assertion: 簡稱Assertion,SAML斷言,是SAML協議中用來描述認證請求(Request)和認證響應(Response)的核心元素。例如用戶的具體屬性就包含在認證響應的斷言裡面。

Trust: 信賴,是指建立在SP和IdP之間的互信機制,通常由公私鑰來實現。SP通過可信的方式獲取IdP的的身份聯盟元數據,元數據中包括了IdP用來給SAML Assertion簽名的私鑰的對應公鑰,SP則可以使用公鑰來驗證Assertion的完整性(Integrity)。

參考阿里雲單點登錄案例: https://m.aliyun.com/doc/document_detail/69969.html

一個參考鏈接: https://www.jianshu.com/p/5d535eee0a9b
具體選用哪種單點登錄方式,需要權衡利弊。

『伍』 怎麼實現簡單單點登錄

所謂單點登錄(Single Sign On就是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。其實對於程序員在技術上要實現就得就是多個不同域名間共享cookie的問題。
最近在為ERP添加一個部署在另一台機器上,鏈接到原有老系統中的子項目,調用原有老項目中的Login實現單點登錄,嘗試了N次屢試不成,最後確定問題,是,.net2.0與4.0中對cookie的加密/解密方法由此差異,於是經過研究,重寫實現了一個可以在不同.net版本中實現單點登錄的簡單方法。
代碼:

protected void btnLogin_Click(object sender, EventArgs e)
{
//認證開票,跳轉到原始請求頁面
System.Web.Security.FormsAuthentication.RedirectFromLoginPage("ejiyuan", false);
}

配置文件:

<!--訪問許可權控制-->
<authorization>
<deny users="?"/>
</authorization>
<!--身份認證方式-->
<authentication mode="Forms">
<forms name=".ASPNET" protection="All" enableCrossAppRedirects="true" loginUrl="Login.aspx" timeout="2880" path="/" domain=".local.com"/>
</authentication>
<!--驗證演算法-->
<machineKey validationKey="" decryptionKey="F8D923AC" validation="SHA1" decryption="3DES" /> <compilation debug="true"/>

『陸』 如何解決Web系統單用戶登錄問題,不是單點登錄

隨著用戶不斷擴大的需求,更多的系統被建造起來。為了獲得更好的用戶體驗,需要實現用戶單點登錄。所謂單點登錄,就是用戶在一個系統上登錄後,其他系統就不需要重復登錄。單點的登錄的好處很明顯,提高了用戶體驗度。如何實現單點登錄,在這里我提供兩種解決方案: 1和b A B兩個站點, 只要在A,B任何一個站點登錄後,兩個網站就都可以使用,不需要在另一個站點登錄了。而通過基於cookie的實現方式,前提是兩個系統共享一級域名,並且用戶要可以唯一標示。上面這兩個站點的一級域名是the;具體處理過程如下:當用戶在其中某一個站點登錄,就設置一個cookie信息,該cookie包含標識用戶ID,為了安全,還需要利用對該cookie的值加密。當用戶訪問其他網站的時候,首先判斷是否存在cookie,如果有的話,便解密該cookie,獲取用戶信息,設置用戶為登錄狀態。 下面是PHP示例代碼 function login() //正常的登錄 { '); } funtion sign() { $sign = $_COOKIE['sign']; if(!empty($sign)) { $sign = decrypt($sign); ..........///登錄成功 } } 這里需要注意的是:加解密一定需要做安全驗證。但是這個方法也不夠完美,兩個站點必須有相同一級域名;另外這種完全基於cookie的方式,安全性不夠高。 2.採用專門登錄系統。 所有的站點共享一個登錄系統;當用戶在其中的一個站點登錄成功時, 該系統調用其他站點的登錄介面,完成用戶在其他站點的登錄,同時設置相應的登錄信息;或者在用戶登錄時,只在該系統保存用戶登錄信息,當用戶在其他站點登錄時,必須請求該系統介面,獲取用戶是否登錄的信息。前一種方式的缺點是:不管用戶有沒有使用其他站點,那些站點都需要保存用戶狀態;後一種方式就把所有的壓力都轉移到登錄系統上面來。而如果要實現用戶退出的統一操作,就需要站點調用登錄系統的退出介面,然後登錄系統介面調用其他站點的退出介面;或者設置一個標記,如果這個標記不存在則標示用戶退出,此時只要把該標示清空即可,其他站點發現該標示不存在就知道用戶已經退出系統。 這種處理方式需要在登錄系統和個站點之間規定登錄介面,和注銷介面。通過這些介面,個站點可以很方便的處理用戶登錄或退出: function login() { $info = callLoginServer(); //訪問登錄伺服器 if(!empty($info)) //登錄成功了 } //用戶沒有登錄,則在本系統中登錄並調用登錄伺服器介面 function loging() //本系統登錄 { .....//登錄成功 callSeverLogin();//通知用戶登錄 } 上面只是簡單的邏輯結構,對於正式的系統需要做具體的處理。 如果大家還有更好的方法,歡迎一起討論!

『柒』 java web實現簡單的用戶登錄需要哪些技術

簡單的話,就是jsp頁面有個用戶信息表單,點擊提交就跑到後台servlet
然後後台就校驗用戶身份信息,信息可以從資料庫拿,用jdbc連接資料庫最簡單了
完了之後就用response響應請求,或者是發request請求新的登錄成功頁面jsp

『捌』 JavaWeb基於AD域的單點登錄怎麼做

1,AD域的用戶和系統的用戶名稱一樣
2,AD驗證正確,連接我們的資料庫,取出密碼(MD5加密過的),將用戶名和密碼交給我們的系統驗證,這時由於我們系統採用了md5加密,這時直接去掉再次加密,因為已經加密過了。
這樣只要通過AD域驗證,就直接去取md5加密的密碼,然後那正確的用戶和密碼去驗證保證了能登陸我們的系統。