注意
以電子郵件作為替代登入識別碼來登入 Microsoft Entra ID,是 Microsoft Entra ID 的一項公開預覽功能。 如需預覽的詳細資訊,請參閱 azure 預覽版Microsoft補充使用規定。
許多組織都希望使用者能使用和內部部署目錄環境相同的認證登入 Microsoft Entra ID。 使用這種稱為混合式驗證的方法,使用者只需要記住一組認證。
有些組織尚未移至混合式驗證,其原因如下:
- 預設會將 Microsoft Entra 使用者主體名稱 (UPN) 設定為與內部部署 UPN 相同的值。
- 變更 Microsoft Entra UPN 會在內部部署與 Microsoft Entra 環境之間造成不相符的情況,可能會導致某些應用程式與服務的問題。
- 因為商務或合規性的原因,組織不希望使用內部部署 UPN 登入 Microsoft Entra ID。
若要移至混合式驗證,您可以設定 Microsoft Entra ID,讓使用者使用 [電子郵件作為替代登入識別碼] 來登入。 例如,如果 Contoso 重新命名為 Fabrikam,而不是繼續使用舊版 ana@contoso.com
UPN 登入,則可以使用電子郵件作為替代登入標識符。 若要存取應用程式或服務,使用者會使用其非 UPN 的電子郵件 (例如 ana@fabrikam.com
) 登入 Microsoft Entra ID。
本文會示範如何啟用及使用將電子郵件作為替代登入識別碼。
開始之前
以下是您必須了解將電子郵件作為替代登入識別碼的相關資訊:
- 此功能適用於 Microsoft Entra ID 免費版本和更新版本。
- 除了UPN之外,此功能還可讓雲端驗證的 Microsoft Entra 使用者使用 ProxyAddresses 登入。 如需詳細資訊,請參閱 B2B 一節中的Microsoft Entra 企業對企業 ( B2B ) 共同作業。
- 當使用者以非 UPN 的電子郵件登入時,
unique_name
中的preferred_username
與 宣告(如果存在)將會傳回非 UPN 的電子郵件。- 如果使用中的非 UPN 電子郵件已過時(不再屬於使用者),這些聲明會改為傳回 UPN。
- 此功能支援透過密碼雜湊同步 (PHS) 或直通式驗證 (PTA) 的受管理身份驗證。
- 設定功能有兩個選項:
- Home Realm Discovery (HRD) 規則 - 使用此選項來啟用整個租戶的功能。 至少需要 應用程式管理員 角色。
- 分階段推出原則 - 使用此選項在特定的 Microsoft Entra 群組中測試此功能。 在第一次新增安全性群組以進行分段推出時,會限制為 200 位使用者,以避免 UX 逾時。新增群組後,即可視需要將更多使用者直接新增至群組。
預覽限制
在目前的預覽狀態中,下列限制適用於將電子郵件作為替代登入識別碼:
用戶體驗 - 使用者可能會看到他們的UPN,即使他們使用非UPN電子郵件登入也一樣。 您可能會看到下列範例行為:
- 當使用者被導引至具有
login_hint=<non-UPN email>
的 Microsoft Entra 登入頁面時,用戶將會被提示使用 UPN 登入。 - 當使用者使用非 UPN 電子郵件登入,並輸入不正確的密碼時,[輸入您的密碼] 頁面會變更以顯示 UPN。
- 在某些 Microsoft 網站與應用程式 (例如 Microsoft Office) 上,[帳戶管理員] 控制項通常會顯示在右上方,可能會顯示使用者的 UPN,而非用於登入的非 UPN 電子郵件。
- 當使用者被導引至具有
不支援的流程 - 某些流程目前與非 UPN 電子郵件不相容,例如:
- Microsoft Entra ID Protection 與具有 [認證外洩] 風險偵測的非 UPN 電子郵件不相符。 此風險偵測會使用 UPN 比對已外洩的認證。 如需詳細資訊,請參閱 如何:調查風險。
- 當使用者使用非 UPN 電子郵件登入時,無法變更其密碼。 Microsoft Entra 自助式密碼重設 (SSPR) 應該能如預期般運作。 在 SSPR 期間,若使用者使用非 UPN 電子郵件驗證其身分識別,則可能會看到其 UPN。
不支援的案例 - 不支援下列案例。 使用非 UPN 電子郵件登入:
不支援的應用程式 - 如果某些第三方應用程式假設
unique_name
或preferred_username
宣告不可變,或一律符合特定的使用者屬性,例如 UPN,可能無法如預期般運作。記錄 - 未在稽核記錄中明確顯示對 HRD 原則中功能設定所做的變更。
分段推出原則 - 只有在使用分段推出原則啟用此功能時,才會套用下列限制:
- 此功能對於被包含在其他分段推出策略中的使用者不如預期地工作。
- 分段推出原則支援每個功能最多 10 個群組。
- 階段性部署策略不支援巢狀群組。
- 分階段推出策略不支援動態成員資格的群組。
- 群組內的連絡對象會阻止群組被新增到分段推出政策中。
重複的值 - 在租用戶中,僅在雲端的使用者 UPN 可以與其他使用者從內部部署目錄同步的 Proxy 位址相同。 在此案例中,啟用功能之後,僅限雲端的使用者將無法使用其 UPN 登入。 如需此問題的詳細資訊,請參閱 疑難解答 一節。
替代登入識別碼選項概觀
若要登入 Microsoft Entra ID,使用者會輸入唯一識別其帳戶的值。 在過去,您只能使用 Microsoft Entra UPN 作為登入識別碼。
對於內部部署 UPN 是使用者慣用登入電子郵件的組織而言,此方法很好用。 這些組織會將 Microsoft Entra UPN 設定為與內部部署 UPN 完全相同的值,而使用者會有一致的登入體驗。
AD FS 的替代登入識別碼
然而,在某些組織中,不會使用內部部署 UPN 作為登入識別碼。 在內部部署環境中,您可以將本機 AD DS 設定為允許使用替代登入識別碼登入。 將 Microsoft Entra UPN 設定為與內部部署 UPN 相同的值不是選項,因為 Microsoft Entra ID 之後會要求使用者使用該值登入。
Microsoft Entra Connect 中的替代登入識別碼
此問題的一般因應措施是將 Microsoft Entra UPN 設定為使用者預期用於登入的電子郵件地址。 此方法可行,但會導致內部部署 AD 與 Microsoft Entra ID 之間的 UPN 不同,且此設定與所有 Microsoft 365 工作負載均不相容。
將電子郵件作為替代登入識別碼
另一個不同方法是將 Microsoft Entra ID 和內部部署 UPN 同步為相同的值,然後設定 Microsoft Entra ID,以讓使用者使用已驗證的電子郵件登入 Microsoft Entra ID。 若要提供此功能,您可以在內部部署目錄中的使用者 ProxyAddresses 屬性中定義一或多個電子郵件位址。 ProxyAddresses 接著會使用 Microsoft Entra Connect 自動同步至Microsoft Entra ID。
選項 | 描述 |
---|---|
AD FS 的替代登入標識碼 | 為 AD FS 使用者啟用使用替代屬性(例如 Mail)登入。 |
Microsoft Entra Connect 中的替代登入標識碼 | 將替代屬性 (例如 Mail) 同步為 Microsoft Entra UPN。 |
將電子郵件作為替代登入識別碼 | 為 Microsoft Entra 使用者啟用已驗證網域 ProxyAddresses 的登入。 |
將登入電子郵件地址同步至 Microsoft Entra ID
傳統的 Active Directory Domain Services (AD DS) 或 Active Directory 同盟服務 (AD FS) 可以直接在網路上驗證,並由 AD DS 基礎結構處理。 使用混合式驗證時,使用者可以改為直接登入 Microsoft Entra ID。
為了支援此混合式驗證方法,您會使用 Microsoft Entra Connect 將內部部署 AD DS 環境同步處理至 Microsoft Entra ID ,並將其設定為使用 PHS 或 PTA。 如需詳細資訊,請參閱 為您的 Microsoft Entra 混合式身分識別解決方案選擇正確的驗證方法。
在這兩個設定選項中,使用者會將其使用者名稱與密碼提交至 Microsoft Entra ID,以驗證認證並發出票證。 當使用者登入 Microsoft Entra ID 時,您的組織就不需要裝載及管理 AD FS 基礎結構。
Microsoft Entra Connect 自動同步處理的用戶屬性之一是 ProxyAddresses。 如果使用者在內部部署 AD DS 環境中定義電子郵件位址做為 ProxyAddresses 屬性的一部分,則會自動同步處理至Microsoft Entra ID。 此電子郵件地址就可直接作為 Microsoft Entra 登入過程中的替代登入識別碼使用。
重要
只有租戶已驗證網域中的電子郵件會同步至 Microsoft Entra ID。 每個 Microsoft Entra 租用戶都有一或多個已驗證的網域,您已證明對其有擁有權,且唯一地繫結至您的租用戶。
如需詳細資訊,請參閱 在 Microsoft Entra ID 中新增和驗證自訂網域名稱。
B2B 來賓使用者使用電子郵件地址登入
替代登入 ID 的電子郵件會在「攜帶您自己的登入識別」模型下,套用至 Microsoft Entra B2B 協作。 當在主租戶中啟用電子郵件作為替代登入識別碼時,Microsoft Entra 使用者可以使用資源租用戶端點上的非 UPN 的電子郵件來執行來賓登錄。 資源租用戶不需要採取任何動作,即可啟用此功能。
注意
在未啟用該功能的資源租用戶端點上使用替代登入識別碼時,登入程序將會順暢地運作,但 SSO 將會中斷。
允許使用者使用電子郵件地址登入
注意
此設定選項使用 HRD 原則。 如需詳細資訊,請參閱 homeRealmDiscoveryPolicy資源類型。
使用 ProxyAddresses 屬性的使用者透過 Microsoft Entra Connect 同步至 Microsoft Entra ID 之後,您需要啟用功能,讓使用者能夠以電子郵件作為替代登入 ID 登入租戶用戶。 這項功能會告訴Microsoft Entra 登入伺服器,不僅會根據UPN值檢查登入標識碼,也會檢查電子郵件位址的 ProxyAddresses 值。
您可以使用 Microsoft Entra 系統管理中心或 Graph PowerShell 來設定該功能。
Microsoft Entra 系統管理中心
以至少混合式身分識別系統管理員身分登入 Microsoft Entra 系統管理中心。
流覽至 Entra ID>Entra Connect>同步
選取 [電子郵件] 作為替代登入標識符**。
按一下 [將電子郵件作為替代登入識別碼] 旁的核取方塊。
按一下 [儲存]。
套用政策後,最多可能需時 1 小時以完成設定,讓使用者能夠使用其替代登入識別碼登入。
PowerShell
注意
此設定選項使用 HRD 原則。 如需詳細資訊,請參閱 homeRealmDiscoveryPolicy資源類型。
一旦套用 ProxyAddresses 屬性的使用者用 Microsoft Entra Connect 同步至 Microsoft Entra ID,您需要啟用功能,讓這些使用者可以使用電子郵件作為您租戶的替代登入 ID。 這項功能會告訴Microsoft Entra 登入伺服器,不僅會根據UPN值檢查登入標識碼,也會檢查電子郵件位址的 ProxyAddresses 值。
以系統管理員身分開啟 PowerShell 工作階段,然後使用 安裝
Install-Module
模組:Install-Module Microsoft.Graph
如需安裝的詳細資訊,請參閱 安裝 Microsoft Graph PowerShell SDK。
使用
Connect-MgGraph
cmdlet 登入您的 Microsoft Entra 租戶:Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration" -TenantId organizations
此命令會要求您使用網頁瀏覽器進行驗證。
使用 Cmdlet 檢查您的租用戶中是否已存在
Get-MgPolicyHomeRealmDiscoveryPolicy
,如下所示:Get-MgPolicyHomeRealmDiscoveryPolicy
若目前未設定任何原則,此命令就不會傳回任何內容。 若傳回原則,請略過此步驟,並繼續下一個步驟以更新現有的原則。
若要將 HomeRealmDiscoveryPolicy 新增至租使用者,請使用
New-MgPolicyHomeRealmDiscoveryPolicy
Cmdlet 並將 AlternateIdLogin 屬性設定為 “Enabled”:true, 如下列範例所示:$AzureADPolicyDefinition = @( @{ "HomeRealmDiscoveryPolicy" = @{ "AlternateIdLogin" = @{ "Enabled" = $true } } } | ConvertTo-JSON -Compress ) $AzureADPolicyParameters = @{ Definition = $AzureADPolicyDefinition DisplayName = "BasicAutoAccelerationPolicy" AdditionalProperties = @{ IsOrganizationDefault = $true } } New-MgPolicyHomeRealmDiscoveryPolicy @AzureADPolicyParameters
當已成功建立原則時,該命令會傳回原則識別碼,如下列範例輸出所示:
Definition DeletedDateTime Description DisplayName Id IsOrganizationDefault ---------- --------------- ----------- ----------- -- --------------------- {{"HomeRealmDiscoveryPolicy":{"AlternateIdLogin":{"Enabled":true}}}} BasicAutoAccelerationPolicy HRD_POLICY_ID True
如果已經有已設定的原則,請檢查 AlternateIdLogin 屬性是否已啟用,如下列原則輸出範例所示:
Definition DeletedDateTime Description DisplayName Id IsOrganizationDefault ---------- --------------- ----------- ----------- -- --------------------- {{"HomeRealmDiscoveryPolicy":{"AlternateIdLogin":{"Enabled":true}}}} BasicAutoAccelerationPolicy HRD_POLICY_ID True
如果原則存在,但 AlternateIdLogin 屬性不存在或未啟用,或者您希望保留的原則上有其他屬性,請使用
Update-MgPolicyHomeRealmDiscoveryPolicy
cmdlet 更新現有的原則。重要
當您更新原則時,請確定您包含任何舊的設定和新的 AlternateIdLogin 屬性。
下列範例會新增 AlternateIdLogin 屬性,並保留先前設定的 AllowCloudPasswordValidation 屬性:
$AzureADPolicyDefinition = @( @{ "HomeRealmDiscoveryPolicy" = @{ "AllowCloudPasswordValidation" = $true "AlternateIdLogin" = @{ "Enabled" = $true } } } | ConvertTo-JSON -Compress ) $AzureADPolicyParameters = @{ HomeRealmDiscoveryPolicyId = "HRD_POLICY_ID" Definition = $AzureADPolicyDefinition DisplayName = "BasicAutoAccelerationPolicy" AdditionalProperties = @{ "IsOrganizationDefault" = $true } } Update-MgPolicyHomeRealmDiscoveryPolicy @AzureADPolicyParameters
確認更新的原則會顯示您的變更,而且 現在已啟用 AlternateIdLogin 屬性:
Get-MgPolicyHomeRealmDiscoveryPolicy
注意
套用原則之後,最多可能需要 1 小時進行散佈,並讓使用者能夠將電子郵件作為替代登入識別碼進行登入。
移除政策
若要移除 HRD 原則,請使用 Remove-MgPolicyHomeRealmDiscoveryPolicy
Cmdlet:
Remove-MgPolicyHomeRealmDiscoveryPolicy -HomeRealmDiscoveryPolicyId "HRD_POLICY_ID"
啟用分階段推出來測試使用者使用電子郵件地址的登入功能
注意
此設定選項使用分段推出原則。 如需詳細資訊,請參閱 featureRolloutPolicy 資源類型。
分段推出原則可讓租用戶系統管理員為特定的 Microsoft Entra 群組啟用功能。 建議租戶管理員使用階段性推出來測試使用電子郵件地址的使用者登入。 當系統管理員準備好將這項功能部署到其整個租戶時,他們應該使用 HRD 政策。
以系統管理員身分開啟 PowerShell 會話,然後使用 Install-Module Cmdlet 安裝 Microsoft.Graph.Beta 模組:
Install-Module Microsoft.Graph.Beta
若出現提示,請選取 [Y] 來安裝 NuGet,或從未受信任的存放庫安裝。
使用 Connect-MgGraph cmdlet 登入您的 Microsoft Entra 租戶:
Connect-MgGraph -Scopes "Directory.ReadWrite.All"
命令會傳回您帳戶、環境與租用戶識別碼的相關資訊。
使用下列 Cmdlet 列出所有現有的分段推出原則:
Get-MgBetaPolicyFeatureRolloutPolicy
若沒有此功能的現有分段推出原則,請建立新的分段推出原則,並記住原則識別碼:
$MgPolicyFeatureRolloutPolicy = @{ Feature = "EmailAsAlternateId" DisplayName = "EmailAsAlternateId Rollout Policy" IsEnabled = $true } New-MgBetaPolicyFeatureRolloutPolicy @MgPolicyFeatureRolloutPolicy
尋找要新增至分段推出原則之群組的 directoryObject 識別碼。 請注意 Id參數傳 回的值,因為它將在下一個步驟中使用。
Get-MgBetaGroup -Filter "DisplayName eq 'Name of group to be added to the staged rollout policy'"
將群組新增至分階段推出政策,如下列範例所示。 將 -FeatureRolloutPolicyId 參數中的值替換為步驟 4 中返回的政策 ID,並以步驟 5 中記錄的 Id 替換 -OdataId 參數中的值。 最多可能需要 1 小時,群組中的使用者才能使用 [電子郵件作為替代登入識別碼] 來登入 Microsoft Entra ID。
New-MgBetaDirectoryFeatureRolloutPolicyApplyToByRef ` -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID" ` -OdataId "https://graph.microsoft.com/v1.0/directoryObjects/{GROUP_OBJECT_ID}"
針對新增至群組的新成員,最多可能需要 24 小時,他們才能使用 [電子郵件作為替代登入識別碼] 來登入 Microsoft Entra ID。
移除群組
若要從分段推出原則中移除群組,請執行下列命令:
Remove-MgBetaPolicyFeatureRolloutPolicyApplyToByRef -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID" -DirectoryObjectId "GROUP_OBJECT_ID"
移除政策
若要移除分段推出原則,請先停用該原則,然後將其從系統中移除:
Update-MgBetaPolicyFeatureRolloutPolicy -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID" -IsEnabled:$false
Remove-MgBetaPolicyFeatureRolloutPolicy -FeatureRolloutPolicyId "ROLLOUT_POLICY_ID"
測試使用電子郵件地址登入
若要測試使用者是否可以使用電子郵件登入,請移至 https://myprofile.microsoft.com,並使用非 UPN 電子郵件 (例如 balas@fabrikam.com
) 登入。 登入體驗看起來應該與使用 UPN 登入相同。
疑難排解
若使用者在使用其電子郵件地址登入時遇到問題,請檢閱下列疑難排解步驟:
請確保在啟用將電子郵件作為替代登入識別碼之後,至少已經過 1 小時。 若最近才將使用者新增至群組以進行分段推出原則,請確保在將該使用者新增至群組之後,至少已經過 24 小時。
如果使用 HRD 原則,請確認 Microsoft Entra ID HomeRealmDiscoveryPolicy 的 AlternateIdLogin 定義屬性設定為 “Enabled”:true , 且 IsOrganizationDefault 屬性設定為 True:
Get-MgBetaPolicyHomeRealmDiscoveryPolicy | Format-List *
如果使用分段推出原則,請確認 Microsoft Entra ID FeatureRolloutPolicy 已將 IsEnabled 屬性設定為 True:
Get-MgBetaPolicyFeatureRolloutPolicy
請確定使用者帳戶在 Microsoft Entra ID 的 ProxyAddresses 屬性中設定了其電子郵件位址。
登入記錄
如需詳細資訊,您可以在 Microsoft Entra ID 中 檢閱登入記錄。 使用電子郵件作為替代登入 ID 時,[proxyAddress
] 欄位將顯示,而在 [登入標識符] 欄位中將顯示輸入的用戶名稱。
僅限雲端使用者與同步使用者之間的值衝突
在租用戶中,僅限雲端的使用者的 UPN 可能會有與從內部部署目錄同步過來的另一個使用者之代理位址相同的值。 在此案例中,啟用功能之後,僅限雲端的使用者將無法使用其 UPN 登入。 以下是偵測此問題情況的步驟。
以系統管理員身分開啟 PowerShell 工作話,然後使用 Install-Module Cmdlet 安裝 Microsoft Graph:
Install-Module Microsoft.Graph.Authentication
若出現提示,請選取 [Y] 來安裝 NuGet,或從未受信任的存放庫安裝。
連線至 Microsoft Graph:
Connect-MgGraph -Scopes "User.Read.All"
取得受影響的使用者。
# Get all users $allUsers = Get-MgUser -All # Get list of proxy addresses from all synced users $syncedProxyAddresses = $allUsers | Where-Object {$_.ImmutableId} | Select-Object -ExpandProperty ProxyAddresses | ForEach-Object {$_ -Replace "smtp:", ""} # Get list of user principal names from all cloud-only users $cloudOnlyUserPrincipalNames = $allUsers | Where-Object {!$_.ImmutableId} | Select-Object -ExpandProperty UserPrincipalName # Get intersection of two lists $duplicateValues = $syncedProxyAddresses | Where-Object {$cloudOnlyUserPrincipalNames -Contains $_}
輸出受影響使用者名單。
# Output affected synced users $allUsers | Where-Object {$_.ImmutableId -And ($_.ProxyAddresses | Where-Object {($duplicateValues | ForEach-Object {"smtp:$_"}) -Contains $_}).Length -GT 0} | Select-Object ObjectId, DisplayName, UserPrincipalName, ProxyAddresses, ImmutableId, UserType # Output affected cloud-only users $allUsers | Where-Object {!$_.ImmutableId -And $duplicateValues -Contains $_.UserPrincipalName} | Select-Object ObjectId, DisplayName, UserPrincipalName, ProxyAddresses, ImmutableId, UserType
將受影響的使用者輸出成 CSV:
# Output affected users to CSV $allUsers | Where-Object { ($_.ImmutableId -And ($_.ProxyAddresses | Where-Object {($duplicateValues | ForEach-Object {"smtp:$_"}) -Contains $_}).Length -GT 0) -Or (!$_.ImmutableId -And $duplicateValues -Contains $_.UserPrincipalName) } | Select-Object ObjectId, DisplayName, UserPrincipalName, @{n="ProxyAddresses"; e={$_.ProxyAddresses -Join ','}}, @{n="IsSyncedUser"; e={$_.ImmutableId.Length -GT 0}}, UserType | Export-Csv -Path .\AffectedUsers.csv -NoTypeInformation
下一步
若要深入瞭解混合式身分識別,例如Microsoft Entra 應用程式 Proxy 或 Microsoft Entra Domain Services,請參閱 Microsoft Entra 混合式身分識別,以存取和管理內部部署工作負載。