php怎樣實現擷取本地區帳號而不用輸入使用者名稱和密碼登入網站?

來源:互聯網
上載者:User
目前有一個需求:使用者通過域帳號登入了電腦,開啟網站(PHP開發的),不需要使用者再次輸入使用者名稱和密碼,而是直接擷取原生域帳號登入系統。

也就是說網站上的使用者帳號和原生域帳號一致的,只要我登入了電腦,我開啟瀏覽器登入網站時,網站不會提示使用者輸入帳號和密碼登入,直接登入網站

PHP能實現這樣的功能嗎?如果不行的話,有沒有其他的技術可以支援?比如java, python, c之類的

我也瞭解過,php有個ladp的擴充,但是這個擴充還是需要接收使用者名稱和密碼

現在有些OA系統實現了這樣的功能,又是怎麼做到的呢?

回複內容:

目前有一個需求:使用者通過域帳號登入了電腦,開啟網站(PHP開發的),不需要使用者再次輸入使用者名稱和密碼,而是直接擷取原生域帳號登入系統。

也就是說網站上的使用者帳號和原生域帳號一致的,只要我登入了電腦,我開啟瀏覽器登入網站時,網站不會提示使用者輸入帳號和密碼登入,直接登入網站

PHP能實現這樣的功能嗎?如果不行的話,有沒有其他的技術可以支援?比如java, python, c之類的

我也瞭解過,php有個ladp的擴充,但是這個擴充還是需要接收使用者名稱和密碼

現在有些OA系統實現了這樣的功能,又是怎麼做到的呢?

LDAP擴充跟MySQL擴充一樣,本質上是從後端儲存系統讀取使用者名稱和密碼的,只不過它的速度特別快。你的問題關鍵在瀏覽器端,如何向伺服器端提交一個身份證明(代替客戶手工輸入使用者名稱和密碼)。

這個身份證明可以是:

  • URL中的隨機串(或者HEADER中也行),這就是前面@JohnLui 的解決方案了。你可以理解為一個有效期間非常長的Session ID。在某些網站的WAP版,就是這麼乾的,如以前的kaixin001.com,因為那個年代手機瀏覽器的Cookie經常不靠譜,而手機私密性較好,所以採用這種方式。

  • $_SERVER['REMOTE_ADDR'],如果你們內網的IP是固定的,且對安全要求不是特別高,可以用這種方式臨時頂一頂,取到用戶端IP之後,去IP-員工對應表裡查一下員工名,然後賦予此員工已登入的狀態。

  • $_SERVER['REMOTE_ADDR'] + LDAP Log,或者Active Directory Log。如果你們的員工電腦都必須通過域帳號才能登入,那麼,取到用戶端IP之後,去LDAP/AD的日誌裡查一下,剛剛從這個IP登入的是哪個員工。由於他在作業系統案頭登入時已經通過了域帳號驗證,所以這種方法比上面那種安全很多。

B/S架構編程限制了,你只能通過$_GET, $_POST, $_SERVER等變數向伺服器端提交身份證明(說白了,你繞不過HTTP),而瀏覽器裡JS的許可權非常低,不在瀏覽器上裝點啥,能做的就上面三種了。

如果可以裝點啥,那辦法就多了

  • 數位憑證。員工初始化時,內網伺服器給他頒發內網認證(就是不用交錢的,不用VeriSign他們認證的),認證裡寫入員工帳號、郵箱什麼的,每次訪問服務端時,瀏覽器檢查到網域名稱匹配就會自動把認證資訊發給服務端。這個在大企業裡用得比較多,也無需開發瀏覽器外掛程式。
  • 瀏覽器外掛程式。先用外掛程式把案頭系統的各種身份資訊取到,再附在Header裡發給服務端,服務端就知道當前登入的域帳號是什麼了。前面說了,瀏覽器裡的JS許可權很低,外掛程式的許可權可是很高的,插隊的許可權取決於你的瀏覽器以什麼使用者啟動的。對你的取當前登入網域帳號的需求,肯定是綽綽有餘了。

我曾經在sf上回答過一個類似的問題。

很簡單:
產生一個token,字母和數字組合的那種,做成連結做成瀏覽器書籤或者首頁,可以開機自動啟動瀏覽器開啟首頁。

這種方法很簡單,但是要求網路要安全,或者,用https吧。

安裝瀏覽器延伸外掛程式。這是最完美的方案了吧- -

可以將使用者第一次登陸的域帳號、帳號、密碼寫入一個檔案,或者存入一個表,下次再登陸的時候,進行一下尋找判斷

寫個瀏覽器, 包上.

你這個已經不是PHP做的事情了,php是伺服器端的指令碼,怎麼能處理瀏覽器的事情?

解決方案:寫瀏覽器外掛程式

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.