整合Windows身份驗證的MySQL

2021-10-06 12:15:17 字數 1708 閱讀 2693

幾個月來,我一直在努力尋找解決方案。 從字面上看,老少皆宜,祈禱開源社群中的某人具有足夠的知識,可以為mysql社群建立乙個ldap聯結器以連線到active directory。 nothing,沒事。 所以我想我會嘗試做類似的事情。

我的業務問題是/如下:

我使用windows server 2003上的active directory來管理我的小型公司網路,包括exchange server電子郵件位址,檔案許可權等。

我想建立乙個客戶內部網,該網將連線我內部業務的世界-員工溝通,軟體**等-並通過乙個介面讓客戶可以看到我的身份

實際為他們做的事情,花費了多長時間,花費了多少,同時跟蹤與專案有關的所有溝通。

簡而言之,是全面的業務管理,專案管理,現金流和付款處理以及版本跟蹤和通訊管理。

在您問之前,我從來不喜歡自己設定簡單的任務。

我停止使用microsoft sql server,因為總而言之,它使我無法接受。 重要時刻。 我發現mssql express edition不會傳送郵件(儘管顯然,在web開發人員的**書中,mssql sp2對此已進行了更改,因為小型資料庫的最常見用法是在小型web應用程式中-並且讓它們自動傳送郵件是天哪!)。

所以我寫了一段很酷的**來從mysql傳送郵件(因為沒有本機功能),然後我想如果我可以為mysql編寫此擴充套件功能,使其具有更好的功能,那為什麼不使用它呢?我要構建的用於該超級內聯網的平台?

僅乙個障礙-如何將active directory資料與mysql匹配,而無需為mysql enterprise plus支付高額的許可費,以及用於ldap連線的附加解決方案(以及afaik,active directory整合僅適用於mysql cluster edition-因此,最低要求需要三颱伺服器,我絕對沒有!)。

因此,我提出了以下理論:

但是初次使用的使用者呢?您無法將使用者的mysql密碼設定為儲存在其ad配置檔案中的密碼,因為這是無法檢索的。

是的-我們測試兩件事:

1)他們是

應該訪問mysql db(ldap自定義字段)?

2)他們已經有mysql登入了嗎?

如果第乙個錯誤,則我們將其踢開,因為它們並不意味著首先存在。

如果第二個為假,則我們知道他們之前尚未登入-因此我們使用sql語句在主表中建立乙個新使用者,並為其輸入ad密碼(這是從http變數「 auth_password」獲得的)。

那麼,當使用者更改其ad密碼時會發生什麼?好的問題-我還沒有解決這個問題,但是我認為這是乙個自定義指令碼,您可以將其寫入active directory網路上的組策略中,然後將更改關聯的mysql使用者名稱的密碼。 要麼,要麼讓使用者在您的web應用程式中更改其ad密碼-這樣,您可以編寫**以同時更新兩個密碼。

筆記:

我還沒有練習過!除非您使用至少256位ssl證書在公司intranet上使用它,否則永遠不會在面向internet的web應用程式中推薦它。

我建議建立乙個專業的桌面應用程式來管理允許哪些使用者訪問mysql應用程式-最好是您的網路管理員。 使用vb和/或.net,您可以相當輕鬆地查詢和編輯ad資料。

如果您非常熟練使用mysql許可權庫結構,則可以為您的web應用程式建立「配置檔案」,類似於「使用者」,「高階使用者」,「管理員」等。 這樣,您可以實現一定程度的委派。

醫務工作者

from:

Forms 身份驗證

配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...

WebService身份驗證

web service身份驗證解決方案一 通過通過soap header身份驗證。1.我們實現乙個用於身份驗證的類,檔名mysoapheader.cs mysoapheader類繼承自system.web.services.protocols.soapheader。且定義了兩個成員變數,userna...

WebServices身份驗證

最近遇到乙個問題,暴露在網路上的web service如何做身份驗證,而不被其他人說是用。mysoapheader.cs類 using system using system.collections.generic using system.linq using system.web namespa...