2012-10-18 201 views
0

我有一個簡單的網頁部署到tomcat根據用戶選擇運行某些shell腳本。這些頁面是用html和cgi/perl編寫的。LDAP身份驗證CGI

我們已經有一個工作的ldap服務器和目錄。我需要能夠爲我創建的網頁添加安全性,以便在嘗試訪問主頁或任何子頁面時要求用戶使用其ldap帳戶登錄。

如何將ldap身份驗證添加到我的網頁?

請對我非常具體,因爲我對這一切都很陌生。一步一步的指示,包括代碼將不勝感激。謝謝

我在google上做了大量的研究,但所有的解決方案都是通用的,我不知道從哪裏開始。

這是一篇很好的文章,但我不確定我把我的連接放到ldap和綁定(我的哪個頁面)?我如何確保身份驗證將應用於子頁面或將來創建的任何其他頁面?

http://www.perlmonks.org/?node_id=32196

乾杯

回答

0

這是一個很好的文章,但我不知道我在哪裏把我的連接 到LDAP和結合(這我的網頁)?我如何確保 身份驗證將應用於子頁面或將來創建的任何其他 ?

你現在的狀態加入到你的應用程序。您最初可能會考慮在tomcat中實現認證(authn)和授權(authz),而不是在您的應用中。

如果您決定不實施在Tomcat中,並選擇在Perl來實現,那麼你剛剛決定增加狀態,以您的應用程序,這意味着你需要添加某種會話處理。看看CGI :: Session,CPAN上還有很多其他會話處理模塊。避免Apache :: Session。它的鎖處理可能導致大量的痛苦,如果交易運行長。在cookie中使用會話密鑰。通過SSL發送所有內容。如果你不使用SSL,那麼破解者可以攔截你的會話密鑰,然後劫持會話。

一旦你建立了會話架構,你需要創建一個登錄機制,通常是一個帶有用戶名和密碼的表單。當表單提交後,CGI背後的密碼會對密碼進行神奇加密,然後執行LDAP跳舞:

  1. 連接到目錄服務器沒有連接已經存在。

2a。綁定到服務器匿名或作爲應用程序的用戶,搜索通過CN的用戶,綁定如使用DN的用戶和口令

OR

2b中。從用戶名中計算DN,使用DN和密碼的密碼進行綁定。

通常情況下,第3步是檢查用戶的記錄對於一些授權的指標,它可能是一個是/否訪問指示燈,也可以是角色或特權的列表。

如果用戶成功通過認證和授權,然後在用戶的會話中寫入一些授權信息。

然後,您的應用的每個後續頁面都會檢查用戶是否已登錄和/或是否具有正確的authz來使用該頁面。如果未經授權,您可以將它們發送回登錄後登錄頁面,或登錄頁面(如果它們未登錄)。

基本上,您只需替換通常的「查詢數據庫的用戶表」通過查詢將LDAP發送到目錄服務器。