怎樣用微軟IIS實現身份認證管理詳解
MIIS概觀 MIIS(Microsoft Identity Integration Server)由包含配置信息及數據的后端SQL Server 2000 數據庫 和服務組成。下圖就是MIIS的邏輯構成: 數據源的數據進出MIIS都要經過名為連接器空間的區域。MIIS中的對象大致相當于數據庫中的記錄。連接器空間中
MIIS概觀
MIIS(Microsoft Identity Integration Server)由包含配置信息及數據的后端SQL Server 2000
數據庫和服務組成。下圖就是MIIS的邏輯構成:

數據源的數據進出MIIS都要經過名為連接器空間的區域。MIIS中的對象大致相當于數據庫中的記錄。連接器空間中的對象相應的稱為連接器對象。當連接器空間中創建了連接器對象后,MIIS為后者分配一個全局唯一標識符(GUID)。
連接器對象具有屬性。對象大致相當于數據庫中的記錄,屬性則相當于記錄的字段。連接器對象的錨屬性常為數據源的關鍵字段。
Metaverse是存放傳輸到其他數據庫的數據的地方。數據離開連接器空間、進入Metaverse的過程稱為映射(projection)。管理代理通過以下操作控制數據進出連接器空間:
·導入(staging):將數據從數據源1輸入連接器空間1
·同步(Sync):將數據輸入Metaverse,并輸出至連接器空間2
·導出(Export):將數據從連接器空間2輸入到數據源2
MIIS通過上述操作記錄對象是否發生過修改。這樣MIIS就可以只移動修改過的數據,從而加快處理速度。
隨著數據導出到數據源2,伴隨著名為 "provisioning"的數據源增加新數據的過程以及名為"deprovisioning"的移除數據的過程。
樣例描述
本文的樣例代碼模擬了一個典型的MIIS場景。它用SQL Server 2000 數據庫中自帶的Northwind數據作為員工信息來源。它的作用是從Northwind員工表發送員工身份號、姓、名和雇傭日期字段至Metaverse,隨后再發送至另一個SQL Server 2000 數據庫。
下載樣例代碼
下載地址:http://www.developer.com/img/2005/07/MIISSource.zip。
身份識別認證
所有操作及許多MIIS
開發都是由身份管理器(identity manager )控制的。

身份管理器可分為三個主要工具:操作(operation)、管理代理(management agent)及Metaverse Designer。操作能使您看到MIIS內發生的活動。
用Metaverse Designer更新Metaverse 正如上面所討論的,Metaverse是對象進出的中轉站。Metaverse中包括您想與其他系統集成的數據。在Metaverse中,您必須創建兩樣東西:對象及其屬性。當您從Metaverse Designer工具中選擇"創建對象類型"選項,就會彈出下面的對話框:

一旦您選擇了"創建對象類型",輸入對象的名稱,并選擇可選屬性(或自己創建新的屬性)。下面是"新屬性"對話框:

在屬性類型下拉式列表中,屬性類型有整數型、布爾型和其他數據類型。您還可以選擇索引數據,加快數據庫訪問速度。注意:Metaverse中的屬性名稱必須是唯一的。
創建好Metaverse對象后,就可以開始向Metaverse內添加數據。管理代理將控制數據如何進出Metaverse。
配置管理代理
管理代理是MIIS活力的源泉。它們管理連接器空間,并配置進入Metaverse的數據。要創建新的管理代理,點擊工具條上的管理代理按鈕,并從動作菜單中選擇"創建"項。從下圖的管理代理設置對話框中,您可以看到有許多種管理代理可供選擇。

事實上,除了上面列出的之外,您還可以創建自己的管理代理。MIIS的軟件開發工具包中就有創建自定義的管理代理的文檔。
在本例中,您需要創建兩個管理代理:一個用于控制進入Metaverse的HumanResourceData對象的數據,另一個則是控制流出HumanResourceData對象的數據。由于您還要從SQL Server 2000數據庫中移入和移出數據,所以您還得創建SQL Server管理代理。
配置SQL Server 2000管理代理的第一步是選擇
服務器和表(或視圖)(見下圖)。

如果您選擇集成身份驗證,就必須輸入用戶名和域。當您設置好數據庫信息,MIIS管理代理就從表設置中讀取信息,并在連接器空間中設置合適的信息。下圖的對話框顯示了表中的列設置信息。

這一對話框中兩個主要的設置是錨(或關鍵字段)和連接器的對象類型。
MIIS管理代理下一步主要的設置是映射規則。您可以以兩種方式設置流入Metaverse的信息:映射規則和加入規則。在這兩種規則下,MIIS確定何時拷貝新對象到Metaverse的技術不同。映射規則把來自數據源的所有數據都輸入到映射對話框中指定的Metaverse對象中。

加入規則相當于數據庫的更新。當您啟用加入規則后,就會根據您在管理代理中設置的加入規則,更新Metaverse 中已有的對象
最后一步是配置屬性數據流動。屬性數據流動把進出的數據映射到Metaverse 中的字段(屬性)。下圖顯示了Northwind數據流入Metaverse 的屬性數據流動。

數據流出Metaverse 的管理代理與流入時的管理代理有以下幾個根本不同之處:
·它沒有映射規則
·屬性流動從Metaverse 指向流出的目標數據源
·在配置信息中沒有錨值屬性數據流動
·為了便于部署和
版本控制,您可以將所有配置信息導出至XML文件
配置好管理代理之后,就可以定義開始導入、導出和同步的過程了。
復制數據至Metaverse 中:導入與同步
管理代理通過運行概要文件控制導入、導出和同步。運行概要文件包括一系列稱為步驟的操作,步驟可以合并或者分離。下圖顯示了運行步驟的配置屏幕:

樣例中創建了稱為"導入(Import)"的運行概要文件,它的作用是導入Northwind對象類型。它還創建了名為"同步"的同步運行概要文件,它會根據您先前定義好的映射規則和屬性流動規則,把導入的Northwind對象轉移到Metaverse中。它隨后繼續與由名為"MetaverseToExternalDB"的管理代理所管理的"TestDatabase"連接器空間同步。下圖是運行"同步"運行概要文件后的結果。
MIIS導出和Provisioning
正如之前提到的,Provisioning是創建帳號的過程。為了在連接器空間2內創建新的對象,您必須使用Visual Studio.NET創建和配置Metaverse規則擴展組件。在工具菜單中選擇"選項",彈出"選項"對話框:
"創建規則擴展項目"選項會打開新的Visual Studio.NET項目,連同一個類和相應的存根函數(stub function)。為執行provisioning,IMVSynchronization.Provision 函數是您唯一需要編寫的代碼。代碼如下:
void IMVSynchronization.Provision
(MVEntry mventry)
{
CSEntry csentry;
ConnectedMA ManagementAgent;
// Management agent object
int Connectors = 0;
// Management agent connectors
ReferenceValue DN;
// Distinguished name attribute
csentry = null;
if(mventry["EmpID"].IsPresent)
{
ManagementAgent =
mventry.ConnectedMAs["MetaverseToExternalDB"];
Connectors =
ManagementAgent.Connectors.Count;
if ( Connectors == 0 )
{
DN = ManagementAgent.EscapeDNComponent(mventry["
EmpID"].Value.ToString());
csentry = ManagementAgent.Connectors.
StartNewConnector("TestDatabase");
csentry.DN = DN;
csentry["EmployeeID"].Value =
mventry["EmpID"].Value.ToString();
csentry.CommitNewConnector();
}
}
} |
要增加帳號至連接器空間,您要用到兩個關鍵對象:MVEntry和CSentry。MVEntry對象用于控制來自Metaverse對象的訪問。CSentry對象代表了創建在連接器空間中的對象。
當MIIS確定必須要在連接器空間內創建新對象時,它就調用 provision 函數,通過MVentry類傳輸適當的Metaverse對象。要創建新的連接器空間對象,只需在管理代理中的連接器集合上調用"StartNewConnection"以創建CSentry對象,隨后在CSentry對象上調用"CommitNewConnector",以把對象保存至連接器空間。
剩下的就是創建把數據從連接器空間2導出至目標數據源的運行概要文件。
調試和
測試管理代理和Metaverse規則擴展
正如上述提到的,Metaverse規則擴展是您在Visual Studio中創建的.NET組件。與任何Visual Studio .NET項目一樣,您可以用Visual Studio 工具菜單中的"De
bug Processes"選項,調試您的組件。在Processes窗口內,顯示所有會話的進程后,選擇miiserver.exe進程,并點擊"attach"按鈕。
現在,當您改變Northwind數據庫時,執行運行概要文件,就可以把數據復制到Metaverse及目標數據源。
原文轉自:http://www.kjueaiud.com