2013-02-22 24 views
3

我就需要完成身份驗證方面的兩件事情一個Perl舞者Web應用程序的工作認證:基於訪問應用的Active Directory如何提高一個Perl舞者應用

  1. 驗證用戶
  2. 作爲用戶訪問一對.NET Web服務進行身份驗證。

該應用程序由Apache在Linux機器上作爲CGI應用程序託管,並且對Apache的配置沒有太多控制權。

下面是當前運行的應用程序的工作流程:

  1. 顯示登錄頁面,用戶
  2. 當用戶提交表單,使用Authen::Simple::ActiveDirectory驗證帳戶有效
  3. 商店用戶憑證使用Dancer::Session::Cookie(加密的cookie)
  4. 向用戶顯示搜索表單
  5. 當用戶提交此表單時,請使用Authen::NTLMSOAP::Lite訪問.NET服務(類似的例子here)執行搜索
  6. 顯示結果給用戶

這裏用戶證書的處理涉及我,但我一般新Web應用程序和認證。對於一個小型的內部應用程序,這是好嗎?如果不是,你如何建議我改進這個過程?就像我說的那樣,上面提到的應用程序是可行的,但我覺得可以/應該改進。解決方案

回答

1

一個(部分)可能是你讓你的Apache網絡服務器處理 認證。你可以用這個Kerberos。 所以只有被允許的用戶才能訪問你的應用程序。在 的情況下,$ENV{REMOTE_USER}包含用戶名(例如[email protected])。

如果您需要了解當前用戶可以查詢您的LDAP(在域containd)的更多信息。我使用通用(LDAP)用戶來獲取有關當前用戶[email protected]的更多信息。

我知道這只是第一部分。我沒有使用/通過SOAP傳遞Kerberos票據的經驗。但是如果你想要處理這個問題,你有一個乾淨的SSO解決方案。

HTH

0

我們在Apache配置中執行此操作。它需要像下面這樣的東西。您需要一個只讀密碼的用戶來綁定到Active Directory。

AuthName "Active Directory" 
    AuthType Basic 
    AuthBasicProvider ldap 
    AuthLDAPUrl ldap://server:389/OU=COMPANY,DC=COMPANY,DC=com?sAMAccountName,mail,name,extensionAttribute2,memberOf?base?(objectClass=user) 
    AuthzLDAPAuthoritative on 
    AuthLDAPBindDN "CN=ReadOnlyUser,OU=ServiceAccounts,OU=Users,OU=XXX,OU=COMPANY,DC=COMPANY,DC=com" 
    AuthLDAPGroupAttributeIsDN on 
    require valid-user 
相關問題