準備 Active Directory 輕量型目錄服務供 Microsoft Entra ID 進行佈建
下列文件提供教學課程資訊,示範如何準備 Active Directory 輕量型目錄服務 (AD LDS) 安裝。 這可用來作為 LDAP 目錄的範例,以進行疑難排解,或示範 如何將使用者從 Microsoft Entra ID 佈建到 LDAP 目錄。
準備 LDAP 目錄
如果您還沒有目錄伺服器,則會提供下列資訊來協助建立測試 AD LDS 環境。 此安裝程式會使用 PowerShell 和 ADAMInstall.exe 及回應檔案。 本文件未涵蓋 AD LDS 的深入資訊。 如需詳細資訊,請參閱 Active Directory 輕量型目錄服務。
如果您已經有 AD LDS 或其他目錄伺服器,您可以略過此內容,然後繼續進行教學課程:ECMA 連接器主機一般 LDAP 連接器安裝及設定 ECMA 連接器主機。
建立 SSL 憑證、測試目錄並安裝 AD LDS。
使用 附錄 A 的 PowerShell 指令碼。此指令碼會執行下列動作:
- 建立LDAP連接器所使用的自我簽署憑證。
- 建立功能安裝記錄的目錄。
- 將個人存放區中的憑證匯出到目錄。
- 將憑證匯入本機電腦的可信任根目錄。
- 在虛擬機器上安裝 AD LDS 角色。
在您用來測試 LDAP 連接器的 Windows Server 虛擬機器上,編輯指令碼以符合您的電腦名稱,然後使用具有系統管理權限的 Windows PowerShell 來執行指令碼。
建立 AD LDS 的執行個體
現在角色已經安裝,您需要建立AD LDS的實例。 若要建立實例,您可以使用提供的下列回應檔案。 此檔案會在不使用UI的情況下,以無訊息方式安裝實例。
將附錄 B 的內容複寫到記事本,並以 answer.txt 作為名稱儲存在 "C:\Windows\ADAM"。
現在,請使用管理員權限來開啟命令提示字元,並執行下列可執行檔:
C:\Windows\ADAM> ADAMInstall.exe /answer:answer.txt
建立 AD LDS 的容器和服務帳戶
使用 附錄 C 的 PowerShell 指令碼。此指令碼會執行下列動作:
- 建立與LDAP連接器搭配使用之服務帳戶的容器。
- 建立一個雲端使用者的容器環境,為使用者配置資源。
- 在 AD LDS 中建立服務帳戶。
- 啟用服務帳戶。
- 將服務帳戶新增至 AD LDS 管理員角色。
您會在 Windows 伺服器虛擬機器上測試 LDAP 連接器,並使用管理員權限透過 Windows PowerShell 執行指令碼。
授與 SSL 憑證的「網路服務」讀取權限
為了讓 SSL 能夠運作,您必須對「網路服務」授與讀取新建憑證的權限。 若要授與權限,請使用下列步驟。
- 瀏覽至 C:\Program Data\Microsoft\Crypto\Keys。
- 以滑鼠右鍵點擊位於此處的系統檔案。 這會是一個 GUID。 此容器會儲存我們的憑證。
- 選取屬性。
- 在頂端,選取 [安全性] 索引標籤。
- 選取編輯。
- 選取 ,新增。
- 在方塊中,輸入網路服務,然後選取 [檢查名稱]。
- 從清單中選取 NETWORK SERVICE,然後選取 [確定]。
- 選取 [確定]。
- 確定網路服務帳戶具有讀取和執行 & 的許可權,然後選取 套用 並 確定。
確認 AD LDS 的 SSL 連線能力
現在我們已設定好憑證並授與網路服務帳戶權限,接著請測試連線能力,以確認其能夠正常運作。
- 開啟 [伺服器管理員],然後選取 [AD LDS]。
- 按一下右鍵選取 AD LDS 的實例,然後從彈出視窗中選取 ldp.exe。
- 在 ldp.exe 的頂端,依序選取 [連線] 和 [連線]。
- 輸入下列資訊,然後選取 [確定]。
- 您應該會看到類似下列螢幕快照的回應。
- 在頂端的 [連線] 底下,選取 [繫結]。
- 保留預設值,然後選擇 確定。
- 您現在應該已成功連接到實例。
停用本機密碼原則
目前,LDAP 連接器會以空白密碼佈建使用者。 此佈建無法滿足伺服器上的本機密碼原則,因此我們會將其停用以便進行測試。 若要停用密碼複雜性,請在未加入網域的伺服器上使用下列步驟。
重要
由於進行中的密碼同步不是內部部署 LDAP 佈建的功能,因此 Microsoft 建議在與 AD DS 一起使用或在 AD LDS 的執行個體中更新現有使用者時,特別搭配同盟應用程式來使用 AD LDS。
- 在伺服器上,選取 [開始]、[執行],然後 gpedit.msc
- 在本機群組原則編輯器中,瀏覽至 [電腦設定] > [Windows 設定] > [安全性設定] > [帳戶原則] > [密碼原則]
- 在右側,雙擊 密碼必須符合複雜性要求,然後選擇 停用。
- 選取 套用,然後選取 確定
- 關閉本機群組原則編輯器
接下來,請在指導中繼續將使用者從 Microsoft Entra ID 佈建到 LDAP 目錄,以下載及設定佈建代理程式。
附錄 A - 安裝 AD LDS PowerShell 指令碼
下列 PowerShell 指令碼可以用來將 Active Directory 輕量型目錄服務安裝自動化。 您需要編輯指令碼以符合您的環境;特別是,將 APP3
變更為電腦的主機名稱。
# Filename: 1_SetupADLDS.ps1
# Description: Creates a certificate that will be used for SSL and installs Active Directory Lighetweight Directory Services.
#
# DISCLAIMER:
# Copyright (c) Microsoft Corporation. All rights reserved. This
# script is made available to you without any express, implied or
# statutory warranty, not even the implied warranty of
# merchantability or fitness for a particular purpose, or the
# warranty of title or non-infringement. The entire risk of the
# use or the results from the use of this script remains with you.
#
#
#
#
#Declare variables
$DNSName = 'APP3'
$CertLocation = 'cert:\LocalMachine\MY'
$logpath = "c:\"
$dirname = "test"
$dirtype = "directory"
$featureLogPath = "c:\test\featurelog.txt"
#Create a new self-signed certificate
New-SelfSignedCertificate -DnsName $DNSName -CertStoreLocation $CertLocation
#Create directory
New-Item -Path $logpath -Name $dirname -ItemType $dirtype
#Export the certificate from the local machine personal store
Get-ChildItem -Path cert:\LocalMachine\my | Export-Certificate -FilePath c:\test\allcerts.sst -Type SST
#Import the certificate in to the trusted root
Import-Certificate -FilePath "C:\test\allcerts.sst" -CertStoreLocation cert:\LocalMachine\Root
#Install AD LDS
start-job -Name addFeature -ScriptBlock {
Add-WindowsFeature -Name "ADLDS" -IncludeAllSubFeature -IncludeManagementTools
}
Wait-Job -Name addFeature
Get-WindowsFeature | Where installed >>$featureLogPath
附錄 B - 回應檔案
此檔案會用來自動化和建立 AD LDS 的執行個體。 您將會編輯此檔案以符合您的環境;特別是,將 APP3
變更為伺服器的主機名稱。
重要
此指令碼會使用 AD LDS 服務帳戶的本機系統管理員。 安裝期間會提示您輸入密碼。
如果您要在網域控制站上安裝 AD LDS,而不是在成員或獨立伺服器上安裝,則需要將 LocalLDAPPortToListenOn 和 LocalSSLPortToListonOn 變更為 LDAP 和 LDAP over SSL 以外的連接埠。 例如,LocalLDAPPortToListenOn=51300 和 LocalSSLPortToListenOn=51301。
[ADAMInstall]
InstallType=Unique
InstanceName=AD-APP-LDAP
LocalLDAPPortToListenOn=389
LocalSSLPortToListenOn=636
NewApplicationPartitionToCreate=CN=App,DC=contoso,DC=lab
DataFilesPath=C:\Program Files\Microsoft ADAM\AD-APP-LDAP\data
LogFilesPath=C:\Program Files\Microsoft ADAM\AD-APP-LDAP\data
ServiceAccount=APP3\Administrator
ServicePassword=\*
AddPermissionsToServiceAccount=Yes
Administrator=APP3\Administrator
ImportLDIFFiles="MS-User.LDF"
SourceUserName=APP3\Administrator
SourcePassword=Pa$$Word1
附錄 C - 填入 AD LDS PowerShell 指令碼
用來將容器和服務帳戶填入 AD LDS 的 PowerShell 指令碼。
# Filename: 2_PopulateADLDS.ps1
# Description: Populates our AD LDS environment with 2 containers and a service account
# DISCLAIMER:
# Copyright (c) Microsoft Corporation. All rights reserved. This
# script is made available to you without any express, implied or
# statutory warranty, not even the implied warranty of
# merchantability or fitness for a particular purpose, or the
# warranty of title or non-infringement. The entire risk of the
# use or the results from the use of this script remains with you.
#
#
#
#
# Create service accounts container
New-ADObject -Name "ServiceAccounts" -Type "container" -Path "CN=App,DC=contoso,DC=lab" -Server "APP3:389"
Write-Output "Creating ServiceAccounts container"
# Create cloud users container
New-ADObject -Name "CloudUsers" -Type "container" -Path "CN=App,DC=contoso,DC=lab" -Server "APP3:389"
Write-Output "Creating CloudUsers container"
# Create a new service account
New-ADUser -name "svcAccountLDAP" -accountpassword (ConvertTo-SecureString -AsPlainText 'Pa$$1Word' -Force) -Displayname "LDAP Service Account" -server 'APP3:389' -path "CN=ServiceAccounts,CN=App,DC=contoso,DC=lab"
Write-Output "Creating service account"
# Enable the new service account
Enable-ADAccount -Identity "CN=svcAccountLDAP,CN=ServiceAccounts,CN=App,DC=contoso,DC=lab" -Server "APP3:389"
Write-Output "Enabling service account"
# Add the service account to the Administrators role
Get-ADGroup -Server "APP3:389" -SearchBase "CN=Administrators,CN=Roles,CN=App,DC=contoso,DC=lab" -Filter "name -like 'Administrators'" | Add-ADGroupMember -Members "CN=svcAccountLDAP,CN=ServiceAccounts,CN=App,DC=contoso,DC=lab"
Write-Output "Adding service accounnt to Administrators role"