將使用者佈建至 SQL 應用程式
下列文件提供的設定和教學課程資訊會示範如何搭配 SQL Server 使用泛型 SQL 連接器和可延伸連線能力 (ECMA) 主機。
本文件說明將使用者從 Microsoft Entra ID 自動佈建和取消佈建至 SQL 資料庫所需執行的步驟。
如需此服務的用途、運作方式和常見問題等重要詳細資訊,請查看使用 Microsoft Entra ID 對 SaaS 應用程式自動佈建和取消佈建使用者和內部部署應用程式佈建架構等文章。
下列影片提供內部部署佈建的概觀。
佈建至 SQL Database 的必要條件
內部部署必要條件
應用程式需要使用 SQL 資料庫,以便能在其中建立、更新及刪除使用者記錄。 執行佈建代理程式的電腦應該具備:
- Windows Server 2016 或更新版本。
- 目標資料庫系統的連線能力,以及 login.microsoftonline.com、其他 Microsoft Online Services 和 Azure 網域的輸出連線能力。 例如,裝載於 Azure IaaS 或 Proxy 後方的 Windows Server 2016 虛擬機器。
- 至少 3 GB 的 RAM。
- .NET Framework 4.7.2。
- 適用於 SQL 資料庫的 ODBC 驅動程式。
設定應用程式資料庫的連線是透過精靈完成的。 視您選取的選項而定,部分的精靈畫面可能無法使用,且資訊可能稍有不同。 使用下列資訊引導您進行設定。
支援的資料庫
- Microsoft SQL Server 和 Azure SQL
- IBM DB2 9.x
- IBM DB2 10.x
- IBM DB2 11.5
- Oracle 10g 和 11g
- Oracle 12c 和 18c
- MySQL 5.x
- MySQL 8.x
- Postgres
雲端需求
一個具有 Microsoft Entra ID P1 或 Premium P2 (或 EMS E3 或 E5) 授權的 Microsoft Entra 租用戶。
使用此功能需要 Microsoft Entra ID P1 授權。 若要尋找適合您需求的授權,請參閱比較 Microsoft Entra ID 正式推出的功能。
用於設定佈建代理程式的混合式身分識別系統管理員角色,以及用來在 Azure 入口網站中設定佈建的應用程式系統管理員或雲端應用程式系統管理員角色。
用於佈建至資料庫的 Microsoft Entra 使用者必須已填入資料庫結構描述所需的屬性,而且不是資料庫本身產生的屬性。
準備範例資料庫
在本文中,您將設定 Microsoft Entra SQL 連接器,以與應用程式的關聯式資料庫進行互動。 一般而言,應用程式會使用 SQL 資料庫中的資料表來管理存取權,每個使用者在資料表中都有一個資料列。 如果您已經有具有資料庫的應用程式,請繼續前往下一節。
如果您尚未具有包含適當資料表的資料庫,那麼基於示範目的,您應該建立一個可允許 Microsoft Entra ID 使用的資料庫。 如果您正在使用 SQL Server,請執行可在附錄 A 中找到的 SQL 指令碼。這會建立名為 CONTOSO 的範例資料庫,包含一個單一表格 Employees
。 這是您要佈建使用者的目標資料庫資料表。
資料表資料行 | 來源 |
---|---|
ContosoLogin | Microsoft Entra 使用者主體名稱 |
FirstName | Microsoft Entra 名字 |
LastName | Microsoft Entra 姓氏 |
電子郵件 | Exchange Online 電子郵件地址 |
InternalGUID | 由資料庫本身產生 |
AzureID | Microsoft Entra 物件識別碼 |
textID | Microsoft Entra ID 郵件暱稱 |
判斷 Microsoft Entra SQL 連接器會如何與您的資料庫互動
您必須在 SQL 執行個體中擁有使用者帳戶,並具有對資料庫資料表中資料進行更新的權限。 如果您的 SQL 資料庫是由其他人管理,請連絡他們以取得帳戶名稱和密碼,以供 Microsoft Entra ID 用來向資料庫進行驗證。 如果 SQL 執行個體安裝在不同的電腦上,您也必須確保 SQL 資料庫允許來自代理程式電腦上 ODBC 驅動程式的連入連線。
如果您的應用程式已有現有資料庫,則您必須決定 Microsoft Entra ID 應該如何與該資料庫進行互動:直接與資料表和檢視進行互動、透過資料庫中已存在的預存程序進行互動,或是透過您提供進行查詢和更新的 SQL 陳述式進行互動。 如此設定是因為對更複雜的應用程式而言,其資料庫中可能具有其他的輔助資料表、需要分頁給數千位使用者使用的資料表,或可能需要 Microsoft Entra ID 呼叫預存程序來執行額外的資料處理,例如加密、雜湊或有效性檢查。
當您建立連接器的設定以與應用程式的資料庫互動時,會先設定連接器主機讀取資料庫結構描述的方法,然後透過執行設定檔來設定連接器應該持續使用的方法。 每個執行設定檔都會指定連接器該如何產生 SQL 陳述式。 要選擇哪個執行設定檔和執行設定檔內的方法,取決於您資料庫引擎支援哪些項目,以及應用程式需要哪些項目。
設定之後,當佈建服務啟動時,就會自動執行 [完整匯入] 執行設定檔中所設定的互動。 在此執行設定檔中,連接器會讀取來自應用程式資料庫中使用者的所有記錄,通常會使用 SELECT 陳述式。 此執行設定檔是必要的,因為如此一來,Microsoft Entra ID 需要變更使用者時,Microsoft Entra ID 就會知道要更新資料庫中該使用者的現有記錄,而不是為該使用者建立新的記錄。
每次在 Microsoft Entra ID 進行變更 (例如將新使用者指派給應用程式或更新現有使用者) 時,佈建服務都會執行匯出執行設定檔中所設定的 SQL 資料庫互動。 在匯出執行設定檔中,Microsoft Entra ID 會發出 SQL 陳述式以在資料庫中插入、更新和刪除記錄,讓資料庫的內容與 Microsoft Entra ID 同步。
如果您的資料庫予以支援,則您也可以選擇性地設定「差異匯入」執行設定檔。 在此執行設定檔中,Microsoft Entra ID 將會讀取自上次完整匯入或差異匯入以來,資料庫中非 Microsoft Entra ID 進行的變更。 這是選用執行設定檔,因為此檔案需要結構化資料庫,才能允許讀取變更。
在連接器的每個執行設定檔設定中,您會指定 Microsoft Entra 連接器是否應該為資料表或檢視產生自己的 SQL 陳述式、呼叫預存程序,或使用您提供的自訂 SQL 查詢。 一般而言,您會對連接器中的所有執行設定檔使用相同的方法。
- 如果您選取執行設定檔的資料表或檢視方法,則 Microsoft Entra 連接器會產生必要的 SQL 陳述式 SELECT、INSERT、UPDATE 和 DELETE,以與資料庫中的資料表或檢視互動。 如果您的資料庫中有單一資料表或是有可更新的檢視搭配一些現有資料列,則此方法是最簡單的方法。
- 如果您選取預存程序方法,則您的資料庫必須有四個預存程序:讀取使用者頁面、新增使用者、更新使用者以及刪除使用者。您將使用這些要進行呼叫的預存程序名稱與參數來設定 Microsoft Entra 連接器。 此方法需要在 SQL 資料庫中進行更多設定,通常只有在您的應用程式需要對使用者的每項變更進行更多的處理,或逐頁查看大型結果集時,才需要進行更多設定。
- 如果選取 SQL 查詢方法,則您會在執行設定檔時輸入您想要連接器發出的特定 SQL 陳述式。 您將使用連接器應該填入 SQL 陳述式中的參數來設定連接器,例如在匯入期間逐頁查看結果集,或為匯出期間所建立的新使用者設定屬性。
本文說明如何在「匯出」和「完整匯入」執行設定檔中使用資料表方法,以與範例資料庫資料表 Employees
互動。 若要深入了解如何設定預存程序或 SQL 查詢方法,請參閱泛型 SQL 設定指南,而此指南提供更多詳細資料和特定需求。
選擇應用程式資料庫結構描述中的唯一識別碼
大部分應用程式的每位使用者都會有唯一識別碼。 如果要佈建至現有資料庫資料表,則您應該在該資料表中識別一個資料行,此資料行具有每位使用者的值,這些值都是唯一且不變。 此資料行將會是錨點,讓 Microsoft Entra ID 用來識別現有資料列,以更新或刪除這些資料列。 如需錨點的詳細資訊,請參閱關於錨點屬性和辨別名稱。
如果您的應用程式資料庫已存在,且其中有使用者,您想要讓 Microsoft Entra ID 隨時將這些使用者保持為最新狀態,則每位使用者都需要有識別碼,與應用程式資料庫和 Microsoft Entra ID 結構描述之間的識別碼相同。 例如,如果您將使用者指派給 Microsoft Entra ID 中的應用程式,且該使用者已經在該資料庫中,則 Microsoft Entra ID 中對於該使用者的變更應該會更新該使用者的現有資料列,而非新增新的資料列。 Microsoft Entra ID由於 Azure AD 可能不會儲存該使用者在應用程式中的內部識別碼,所以您會想要選取另一個資料行來查詢資料庫。 此資料行的值可以是使用者主體名稱,或是電子郵件地址、員工識別碼,或其他識別碼 (存在於該應用程式範圍內每位使用者的 Microsoft Entra ID 中)。 如果應用程式使用的使用者識別碼不是儲存在該使用者 Microsoft Entra 表示法中的屬性,則您不須使用擴充屬性來擴充 Microsoft Entra 使用者結構描述並從您的資料庫填入該屬性。 您可以使用 PowerShell 來擴充 Microsoft Entra 使用者結構描述及設定擴充值。
將 Microsoft Entra ID 中的屬性對應至資料庫結構
當 Microsoft Entra ID 已為 Microsoft Entra ID 使用者與資料庫紀錄建立連結時,無論是針對資料庫現有使用者或新使用者,Microsoft Entra ID 都可將屬性變更從 Microsoft Entra ID 使用者佈建到資料庫中。 除了唯一識別碼之外,請檢查您的資料庫,找出是否有任何其他必要屬性。 如果有的話,請確保即將佈建到資料庫的使用者具有可對應到所需屬性的屬性。
您也可以設定取消佈建行為。 如果在 Microsoft Entra ID 中刪除指派給應用程式的使用者,則 Microsoft Entra ID 會將刪除作業傳送至資料庫。 當使用者超出可使用應用程式的範圍時,您也許會想要讓 Microsoft Entra ID 更新資料庫。 如果使用者被從應用程式取消指派、在 Microsoft Entra ID 中被虛刪除或封鎖登入,您則可以設定 Microsoft Entra ID 來傳送屬性變更。 如果要佈建至現有的資料庫資料表,則您應該將該資料表的資料行對應至「isSoftDeleted」。 當使用者超出範圍時,Microsoft Entra ID 會將該使用者的值設定為 True。
1.安裝 ODBC 驅動程式
您要安裝佈建代理程式的 Windows 伺服器需要適用於目標資料庫的 ODBC 驅動程式。 如果您打算連線到 SQL Server 或 Azure SQL 資料庫,則應該下載適用於 SQL Server (x64) 的 ODBC 驅動程式,然後在 Windows 伺服器上安裝該驅動程式。 如需其他 SQL 資料庫,請參閱獨立軟體廠商有關如何安裝 ODBC 驅動程式的指導。
2.建立 DSN 連線檔案
泛型 SQL 連接器需要資料來源名稱 (DSN) 檔案,才能連線到 SQL 端點。 首先,您必須建立含有 ODBC 連線資訊的檔案。
在伺服器上啟動 ODBC 管理公用程式。 使用 64 位元版本。
選取 [檔案 DSN] 索引標籤,然後選取 [新增]。
如果您是使用 SQL Server 或 Azure SQL,請選取 [SQL Server Native Client 11.0],然後選取 [下一步]。 如果您使用的是其他資料庫,請選取其 ODBC 驅動程式。
為檔案命名,例如 GenericSQL,然後選取 [下一步]。
選取 [完成]。
現在請設定連線。 下列步驟會根據您所使用的 ODBC 驅動程式而有所不同。 此圖例會假設您是使用驅動程式連線至 SQL Server。 如果 SQL Server 位於不同的伺服器電腦上,請輸入伺服器的名稱。 然後選取下一步。
如果您用來執行此步驟的使用者身分具有連線至資料庫的權限,則請保持選取 Windows 驗證。 如果 SQL Server 管理員需要 SQL 本機帳戶,請改為提供這些認證。 然後選取下一步。
輸入資料庫的名稱,在此範例中為 CONTOSO。
將所有項目保持在此畫面上,然後選取 [完成]。
若要確認一切會如預期般運作,請選取 [測試資料來源]。
確定測試成功。
選取 [確定] 兩次。 關閉 ODBC 資料來源管理員。 DSN 連線檔案預設會儲存至您的 [文件] 資料夾。
3.安裝並設定 Microsoft Entra Connect 佈建代理程式
如果您已經下載佈建代理程式,並已為另一個內部部署應用程式設定,請繼續閱讀下一節。
- 登入 Azure 入口網站。
- 移至企業應用程式,然後選取 [新的應用程式]。
- 搜尋 [內部部署 ECMA 應用程式] 的應用程式,提供應用程式名稱,然後選取建立以將其新增至您的租用戶。
- 從功能表瀏覽至應用程式的[佈建]頁面。
- 選取開始使用。
- 在 [佈建] 頁面上,將模式變更為 [自動]。
- 在 [內部部署連線能力] 下,選取 [下載並安裝],然後選取 [接受條款並下載]。
- 離開入口網站並執行佈建代理程式安裝程式,同意服務條款,然後選取 [安裝]。
- 等待 Microsoft Entra 佈建代理程式設定精靈,然後選取 [下一步]。
- 在 [選擇延伸模組] 步驟中,選取 [內部應用程式佈建],然後選取 [下一步]。
- 佈建代理程式會使用作業系統的網頁瀏覽器來顯示彈出視窗,讓您驗證 Microsoft Entra ID,並且可能會顯示您組織的識別提供者。 如果您使用 Internet Explorer 作為 Windows Server 上的瀏覽器,您可能需要將 Microsoft 網站新增至瀏覽器的受信任網站清單,以允許 JavaScript 正確執行。
- 當系統提示您授權時,請提供 Microsoft Entra 系統管理員的認證。 使用者必須至少有混合式身分識別系統管理員角色。
- 選取 [確認] 來確認設定。 安裝成功之後,您可以選取 [離開],同時關閉 [佈建代理程式套件] 安裝程式。
4.設定內部部署 ECMA 應用程式
返回入口網站,在 [內部部署連線能力] 區段中,選取您已部署的代理程式,然後選取 [指派代理程式]。
在您使用設定精靈完成下個步驟的設定時,請讓此瀏覽器視窗保持開啟。
5.設定 Microsoft Entra ECMA Connector Host 憑證
在已安裝佈建代理程式的 Windows Server 上,從 [開始] 功能表以滑鼠右鍵按一下 [Microsoft ECMA2Host Configuration Wizard],然後以系統管理員身分執行。 精靈必須以 Windows 系統管理員身分執行,才能建立必要的 Windows 事件記錄檔。
啟動 [ECMA Connector Host Configuration] 之後,如果這是您第一次執行精靈,系統會要求您建立憑證。 保留預設連接埠 8585 並選取 [產生憑證] 來產生憑證。 自動產生的憑證將會自我簽署成為可信任根的一部分。 憑證 SAN 符合主機名稱。
選取 [儲存]。
注意
如果您選擇產生新的憑證,請記下憑證到期日,以確保排程傳回設定精靈,並在憑證到期之前重新產生憑證。
6.建立泛型 SQL 連接器
在本節中,您會建立適用於您資料庫的連接器設定。
6.1 設定 SQL 連線
若要建立一般 SQL 連接器,請遵循下列步驟:
產生用來向連接器驗證 Microsoft Entra ID 的秘密權杖。 每個應用程式至少應為 12 個字元且是唯一的。
如果您尚未這麼做,請從 Windows 的 [開始] 功能表啟動 [Microsoft ECMA2Host Configuration Wizard]。
選取新增連接器。
在 [屬性] 頁面上,在方塊中填入影像後面表格中所指定的值,然後選取 [下一步]。
屬性 值 名稱 您為連接器選擇的名稱,該名稱在環境中的所有連接器中應都是唯一的。 例如,如果您只有一個 SQL 資料庫, SQL
。自動同步計時器 (分鐘) 120 祕密權杖 輸入您為此連接器產生的秘密權杖。 金鑰應至少有 12 個字元。 延伸模組 DLL 針對泛型 SQL 連接器,請選取 Microsoft.IAM.Connector.GenericSql.dll。 在 [連線能力] 頁面上,在方塊中填入影像後面表格中所指定的值,然後選取 [下一步]。
屬性 說明 DSN 檔案 您在上一個步驟中建立的資料來源名稱檔案,用來連線至 SQL 執行個體。 使用者名稱 帳戶的使用者名稱具有在 SQL 執行個體中對資料表進行更新的權利。 如果目標資料庫是 SQL Server 且您使用 Windows 驗證,則獨立伺服器的使用者名稱必須是 hostname\sqladminaccount 形式,若是網域成員伺服器,則是 domain\sqladminaccount 形式。 對於其他資料庫,使用者名稱將會是資料庫中的本機帳戶。 密碼 所提供使用者名稱的密碼。 DN 為錨點 除非您的環境已知需要這些設定,否則請不要選取 [DN 為錨點] 和 [匯出類型:物件取代] 核取方塊。
6.2 從資料庫擷取結構描述
提供認證之後,ECMA Connector 主機就會準備就緒,可以擷取資料庫的結構描述。 繼續進行 SQL 連線設定:
在 [結構描述 1] 頁面上,您將指定物件類型的清單。 在此範例中,有一個單一物件類型:
User
。 在方塊中填入影像後面表格中所指定的值,然後選取 [下一步]。屬性 值 物件類型偵測方法 固定值 固定值清單/資料表/檢視/SP User 選取 [下一步] 之後,將會自動顯示下一個頁面,用於設定
User
物件類型。 在 [結構描述 2] 頁面上,您將會指出使用者在資料庫中的呈現方式。 在此範例中,這是名為Employees
的單一 SQL 資料表。 在方塊中填入影像後面表格中所指定的值,然後選取 [下一步]。屬性 值 使用者:屬性偵測 Table 使用者:資料表/檢視/SP 資料庫中資料表的名稱,例如 Employees
注意
如果發生錯誤,請檢查您的資料庫組態,以確保您在 [連線能力] 頁面上指定的使用者具有資料庫的架構讀取權限。
選取 [下一步] 之後,將會自動顯示下一個頁面,讓您選取先前指定的資料表行,例如此範例中
Employees
資料表的資料行,這些資料行會做為使用者的Anchor
和DN
之用。 這些資料行包含資料庫中的唯一標識碼。 您可以使用相同或不同的資料行,但請確保此資料庫中已有的任何列在這些資料行中具有唯一值。 在 [結構描述 3] 頁面上,在方塊中填入影像後面表格中所指定的值,然後選取 [下一步]。屬性 說明 為 :User 選取錨點 用於錨點的資料庫表格的資料行,例如 User:ContosoLogin
為使用者選取 DN 屬性 用於 DN 屬性的資料庫的資料行,例如 AzureID
選取 [下一步] 之後,將會自動顯示下一個頁面,讓您確認
Employee
資料表中每個資料行的資料類型,並確認連接器應該將其匯入或匯出。 在 [結構描述 4] 頁面上,保留預設值並選取 [下一步]。在 [全域] 頁面上,填入方塊,然後選取 [下一步]。 使用影像後面的表格來取得個別方塊的指引。
屬性 說明 三大策略 針對 IBM DB2,請選取 None
浮水印查詢 針對 IBM DB2,請輸入 SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY1;
資料來源日期時間格式 針對 SQL Server、 yyyy-MM-dd HH:mm:ss
和 IBM DB2、YYYY-MM-DD
在 [資料分割] 頁面上,選取 [下一步]。
6.3 設定執行設定檔
接下來,您將設定「匯出」和「完整匯入」執行設定檔。 ECMA Connector 主機需要將變更從 Microsoft Entra ID 傳送至資料庫時,將會使用 [匯出]執行設定檔以插入、更新和刪除記錄。 ECMA Connector 主機服務啟動時,將會使用「完整匯入」執行設定檔,以讀取目前資料庫內容。 在此範例中,您會在這兩個執行設定檔中使用資料表方法,讓 ECMA Connector 主機產生必要的 SQL 陳述式。
繼續進行 SQL 連線設定:
在 [執行設定檔] 頁面上,保持選取 [匯出] 核取方塊。 選取 [完整匯入] 核取方塊,然後選取 [下一步]。
屬性 說明 Export 執行會將資料匯出至 SQL 的設定檔。 此執行設定檔是必要的。 完整匯入 此執行設定檔會從先前指定的 SQL 來源匯入所有資料。 差異匯入 執行設定檔,此設定檔只會匯入自上次完整或差異匯入之後 SQL 的變更。 選取 [下一步] 之後,將會自動顯示下一個頁面,讓您設定「匯出」執行設定檔的方法。 在 [匯出] 頁面上,填入方塊,然後選取 [下一步]。 使用影像後面的表格來取得個別方塊的指引。
屬性 說明 作業方法 Table 資料表/檢視/SP 與在 [架構 2] 索引標籤上設定的相同資料表,例如 Employees
在 [完整匯出] 頁面上,填入方塊,然後選取 [下一步]。 使用影像後面的表格來取得個別方塊的指引。
屬性 說明 作業方法 Table 資料表/檢視/SP 與在 [架構 2] 索引標籤上設定的相同資料表,例如 Employees
6.4 設定屬性在 Microsoft Entra ID 中的呈現方式
在 SQL 連線設定的最後一個步驟中,設定屬性在 Microsoft Entra ID 中的呈現方式:
在 [物件類型] 頁面上,填寫方塊,然後選取 [下一步]。 使用影像後面的表格來取得個別方塊的指引。
- 錨點:此屬性的值對於目標資料庫中的每個物件而言應該是唯一的。 Microsoft Entra 佈建服務會在初始週期之後使用此屬性查詢 ECMA Connector 主機。 此錨點值應該與您稍早在 [結構描述 3] 頁面上設定的錨點資料行相同。
- 查詢屬性:此屬性應該與錨點相同。
- DN:在大部分情況下,應該選取 [自動產生] 選項。 如果未選取此選項,請確定 DN 屬性對應至 Microsoft Entra ID 中的屬性,該屬性會以下列格式儲存 DN:
CN = anchorValue, Object = objectType
。 如需錨點和 DN 的詳細資訊,請參閱關於錨點屬性和辨別名稱。
屬性 說明 目標物件 User 錨點 在 [結構描述 3] 索引標籤中設定的資料行,例如 ContosoLogin
查詢屬性 與 Anchor 相同的資料行,例如 ContosoLogin
DN 在 [結構描述 3] 索引標籤上設定的相同資料行,例如 ContosoLogin
自動產生 已選取 ECMA Connector 主機會探索目標資料庫所支援的屬性。 您可以選擇要公開給 Microsoft Entra ID 的屬性。 接著即可在 Azure 入口網站中設定這些屬性,以供佈建。 在 [選取屬性] 頁面中,將所有屬性新增至下拉式清單,逐一進行。
[屬性] 下拉式清單會顯示在目標資料庫中探索到、但在先前 [選取屬性] 頁面上「未」選取的任何屬性。 所有相關屬性都新增完成後,請選取 [下一步]。
- 在 [取消佈建] 頁面的 [停用流程] 下,選取 [刪除]。 在前一頁選取的屬性將無法在 [取消佈建] 頁面上選取。 選取 [完成]。
注意
如果您使用設定屬性值,請注意屬性值只允許布林值。
7.確定 ECMA2Host 服務正在執行
在執行 Microsoft Entra ECMA Connector 主機的伺服器上,選取 [啟動]。
輸入 [執行],然後在方塊中輸入 services.msc。
在 [服務] 清單中,確定 Microsoft ECMA2Host 存在且正在執行。 如果沒有,請選取 [啟動]。
如果您要連線到新的資料庫或空白且沒有使用者的資料庫,請繼續進行下一節。 否則,請遵循下列步驟來確認連接器已從資料庫識別出現有的使用者。
- 如果您最近已啟動服務,且資料庫中有許多使用者物件,則請等候數分鐘,讓連接器與資料庫建立連線。
8.在 Azure 入口網站中設定應用程式連線
返回您設定應用程式佈建的網頁瀏覽器視窗。
注意
如果視窗逾時,您則必須重新選取代理程式。
- 登入 Azure 入口網站。
- 移至 [企業應用程式] 和 [內部部署 ECMA 應用程式] 應用程式。
- 選取 [佈建]。
- 如果出現 [開始使用],將模式變更為 [自動],在 [內部部署連線能力] 區段中,選取您已部署的代理程式,然後選取 [指派代理程式]。 否則,請移至 [編輯佈建]。
在 [管理員認證] 區段底下,輸入下列 URL。 將
{connectorName}
部分取代為 ECMA 連接器主機上的連接器名稱,例如「SQL」。 連接器名稱有區分大小寫,且大小寫應該與精靈中所設定的大小寫相同。 您也可以將localhost
取代為您的電腦主機名稱。屬性 值 租用戶 URL https://localhost:8585/ecma2host_{connectorName}/scim
輸入您在建立連接器時定義的 [秘密權杖] 值。
注意
如果您只是將代理程式指派給應用程式,請等候 10 分鐘讓註冊完成。 在註冊完成之前,連線測試將無法運作。 在您的伺服器上重新啟動佈建代理程式來強制完成代理程式註冊,可以加速註冊程式。 移至您的伺服器、在 Windows 搜尋列中搜尋 [服務]、找出 [Microsoft Entra Connect 佈建代理程式服務]、以滑鼠右鍵按一下服務,然後重新啟動。
選取 [測試連線],然後等待一分鐘。
連線測試成功,並顯示提供的認證已獲授權啟用佈建後,請選擇 [儲存]。
9.設定屬性對應
現在,您必須在 Microsoft Entra ID 中的使用者標記法與內部部署應用程式 SQL 資料庫中的使用者表示之間對應屬性。
您將使用 Azure 入口網站來設定 Microsoft Entra 使用者屬性與先前在 ECMA 主機設定精靈中所選屬性之間的對應。
請確定 Microsoft Entra 結構描述包含資料庫所需的屬性。 如果資料庫需要使用者具有屬性,例如
uidNumber
,而且該屬性尚未成為使用者 Microsoft Entra 結構描述的一部分,則您必須使用 目錄擴充功能,將該屬性新增為延伸模組。在 Microsoft Entra 系統管理中心的 [企業應用程式] 底下,選取 [內部部署 ECMA 應用程式] 應用程式,然後選取 [佈建] 頁面。
選取 [編輯佈建],然後等候 10 秒。
展開 [對應] ,然後選取 [佈建 Microsoft Entra ID 使用者] 對應。 如果這是您第一次設定此應用程式的屬性對應,則這對於預留位置來說,將是唯一對應。
若要確認資料庫結構描述可在 Microsoft Entra ID 中使用,請選取 [顯示進階選項] 核取方塊,然後選取 [編輯 ScimOnPremises 的屬性列表]。 確定已列出設定精靈中選取的所有屬性。 如果沒有,請等候數分鐘讓結構描述重新整理,然後重新載入頁面。 一旦您看到列出的屬性,請關閉頁面以返回對應清單。
現在,按一下 [userPrincipalName] [PLACEHOLDER] 對應。 當您第一次設定內部部署佈建時,預設情況下會新增此對應。
對應類型 | 來源屬性 | 目標屬性 |
---|---|---|
直接 | userPrincipalName | urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:ContosoLogin |
現在選取 [新增對應],然後針對每個對應重複下一個步驟。
在下表中為每個對應指定來源和目標屬性。
對應類型 來源屬性 目標屬性 直接 userPrincipalName urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:ContosoLogin 直接 objectId urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:AzureID 直接 mail urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:Email 直接 givenName urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:FirstName 直接 surname urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:LastName 直接 mailNickname urn:ietf:params:scim:schemas:extension:ECMA2Host:2.0:User:textID 新增所有對應之後,請選取 [儲存]。
10.將使用者指派給應用程式
現在您已有 Microsoft Entra ECMA Connector 主機與 Microsoft Entra ID 進行通訊,屬性對應也已設定完成,接下來您可以設定要佈建的範圍。
重要
如果您已使用混合式身分識別管理員角色登入,則必須先登出,然後使用至少具有應用程式系統管理員角色帳戶登入,才能使用此區段。 混合式身分識別管理員角色沒有將使用者指派給應用程式的權限。
如果 SQL 資料庫中有現有的使用者,則您應為這些現有的使用者建立應用程式角色指派。 若要深入了解如何大量建立應用程式角色指派,請參閱在 Microsoft Entra ID 中管理應用程式現有使用者。
如果應用程式目前沒有使用者,請從 Microsoft Entra 中選取將佈建至應用程式的測試使用者。
請確定使用者具有將對應至資料庫結構描述所需屬性的所有屬性。
在 Azure 入口網站中,選取 [企業應用程式]。
選取 [內部部署 ECMA 應用程式] 應用程式。
在左側選取 [管理] 之下的 [使用者和群組]。
選取 [新增使用者/群組]。
在 [使用者] 底下,選取 [未選取]。
從右側選取使用者,然後選取 [選取] 按鈕。
現在請選取 [指派]。
11.測試佈建
現在您已對應您的屬性,使用者也指派完成,可以使用其中一個使用者來測試隨需佈建。
在 Azure 入口網站中,選取 [企業應用程式]。
選取 [內部部署 ECMA 應用程式] 應用程式。
選取左側的 [佈建]。
選取 [隨需佈建]。
搜尋您的其中一個測試使用者,然後選取 [佈建]。
幾秒鐘之後,「已成功在目標系統中建立使用者」的訊息即會出現,包含使用者屬性清單。
12 個。開始佈建使用者
隨需佈建成功之後,請變更回佈建設定頁面。 確定範圍設定為 [僅限指派的使用者和群組]、[開啟] 佈建,然後選取 [儲存]。
等候數分鐘以開始佈建。 最多可能需要 40 分鐘的時間。 完成佈建作業之後 (如下一節所述),如果您已完成測試,則可以將佈建狀態變更為 [關閉],然後選取 [儲存]。 此動作會使佈建服務在未來停止執行。
針對佈建錯誤進行疑難排解
如果顯示錯誤,請選取 [檢視佈建記錄]。 查看記錄檔中是否有 [狀態] 為「失敗」的資料列,然後選取該資料列。
如果錯誤訊息為 [無法建立使用者],請檢查與資料庫結構需求顯示不符的屬性。
如需詳細資訊,請變更為 [疑難排解與建議] 索引標籤。如果 ODBC 驅動程式傳回訊息,則可以在此顯示。 例如,訊息 ERROR [23000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert the value NULL into column 'FirstName', table 'CONTOSO.dbo.Employees'; column does not allow nulls.
是來自 ODBC 驅動程式的錯誤。 在此情況下,column does not allow nulls
可能表示資料庫中的 FirstName
資料行為必要,但佈建的使用者沒有 givenName
屬性,因此無法佈建使用者。
檢查使用者是否已成功佈建
等候之後,請檢查 SQL 資料庫,以確保會佈建使用者。
附錄 A
如果您是使用 SQL Server,可以使用下列 SQL 指令碼來建立範例資料庫。
---Creating the Database---------
Create Database CONTOSO
Go
-------Using the Database-----------
Use [CONTOSO]
Go
-------------------------------------
/****** Object: Table [dbo].[Employees] Script Date: 1/6/2020 7:18:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Employees](
[ContosoLogin] [nvarchar](128) NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[Email] [nvarchar](128) NULL,
[InternalGUID] [uniqueidentifier] NULL,
[AzureID] [uniqueidentifier] NULL,
[textID] [nvarchar](128) NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Employees] ADD CONSTRAINT [DF_Employees_InternalGUID] DEFAULT (newid()) FOR [InternalGUID]
GO