簡體   English   中英

單點登錄(SSO)如何與PHP + Apache一起針對Active Directory進行透明身份驗證?

[英]How does single sign-on (SSO) work with PHP + Apache against an Active Directory for transparent authentication?

我需要針對Active Directory在Web應用程序上獲得更多有關SSO的知識。

為了簡單地要求用戶登錄以在AD上進行身份驗證,我知道我可以使用某些庫,例如Zend_LdapadLdap等。 但是在這種情況下,用戶仍然需要兩次鍵入登錄名。 例如: 通過php對Active Directory / ISA進行身份驗證

Afaik,要使用SSO進行transparent login ,我需要實現一個額外的apache模塊。 例如: 如何為內部PHP應用程序使用Microsoft AD實施單點登錄(SSO)?

在使用IE / Firefox的同時,使用PHP,活動目錄針對ldap進行身份驗證

首先,我需要知道我需要使用哪個Apache模塊以及原因。 例如,在本文中 ,有三個: mod_ntlmmod_auth_kerbApache2:AuthenNTLM 那是Apache2:AuthenNTLM

在上述問題中,可接受的答案是mod_auth_sspi

在談論Active Directory時, 我得到了這個答案 ,它將Active Directory描述為ldap + kerberos +“其他一些零碎的東西”的實現。

對於所有這些名稱,我感到非常困惑,因為我很努力地使用它。 有人可以向我澄清嗎? ldapkerberosntlmsspi等)

最后,有人可以指出我該應用程序如何識別經過身份驗證的用戶(來自AD)。 僅僅是通過諸如$_SERVER['REMOTE_USER']類的東西傳遞的用戶名嗎? 是否發送密碼? 瀏覽器如何發送這些額外的標題? 每個工作站中是否都需要進行本地配置?

身份驗證是一團混亂。 這是一些背景。

  • LDAP:LDAP是用於傳達用戶目錄信息的協議。 它還可以處理身份驗證,但它不是無縫的(SSO)。

  • NTLM:NTLM是內置於IE,ActiveDirectory和IIS中的Microsoft SSO。 NTLM的原始版本非常不安全,因此已實施NTLMv2來修復NTLM中的安全問題。 Windows Vista和更高版本默認情況下禁用原始NTLM。

  • Kerberos:Kerberos是一個非常安全的開放標准,旨在提供無縫(SSO)身份驗證。 ActiveDirectory支持Kerberos版本。

至於可用於實現這些協議的Apache模塊,您包括了一個很好的清單。

  • mod_ntlm:這是一個在Linux上運行並支持原始NTLM(不是NTLMv2)的Apache模塊。

  • mod_auth_kerb:這是一個實現Kerberos的Apache模塊。

  • mod_auth_sspi:這是Windows的Apache模塊,支持原始NTLM(不是NTLMv2)。

  • Apache2:AuthenNTLM:這是處理NTLM的Perl模塊。 我不知道它是否支持NTLM和NTLMv2。

  • mod_auth_ntlm_winbind:這是一個與Samba身份驗證連接的Apache模塊。

單點登錄和共享身份驗證是相關的概念,但有所不同 我認為您可能會混淆它們。 如果您想要真正的SSO,請查看CAS

LDAP和AD是用於存儲用戶和組織數據的協議。 它們對通過Web進行實際身份驗證沒有用,但是您可以在SSO(例如CAS)后面將它們用作“數據庫”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM