使用電子郵件作為替代登入識別碼登入 Microsoft Entra ID (預覽)
注意
以電子郵件作為替代登入識別碼來登入 Microsoft Entra ID,是 Microsoft Entra ID 的一項公開預覽功能。 如需有關預覽版的詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
許多組織都希望使用者能使用和內部部署目錄環境相同的認證登入 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) 的受管理驗證。
有兩個選項可供設定該功能使用:
- 主領域探索 (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 電子郵件登入:
- 已加入混合式 Microsoft Entra 的裝置
- 已加入 Microsoft Entra 的裝置
- 已註冊 Microsoft Entra 的裝置
- 資源擁有者密碼認證 (ROPC)
- 行動平台上的單一登入和應用程式保護原則
- 舊版驗證,例如 POP3 和 SMTP
- 商務用 Skype
不支援的應用程式 - 若某些協力廠商應用程式假設
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 屬性定義一或多個電子郵件地址。 接著會使用 Microsoft Entra Connect 將 ProxyAddresses 自動同步至 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 來賓使用者使用電子郵件地址登入
[電子郵件作為替代登入識別碼] 適用「攜帶您自己的登入識別碼」模型下的 Microsoft Entra B2B 共同作業。 當首頁租用戶中啟用 [電子郵件作為替代登入識別碼] 時,Microsoft Entra 使用者可以使用資源租用戶端點上的非 UPN 電子郵件來執行來賓登入。 資源租用戶不需要採取任何動作,即可啟用此功能。
注意
在未啟用該功能的資源租用戶端點上使用替代登入識別碼時,登入程序將會順暢地運作,但 SSO 將會中斷。
允許使用者使用電子郵件地址登入
注意
此設定選項使用 HRD 原則。 如需詳細資訊,請參閱 homeRealmDiscoveryPolicy 資源類型。
一旦套用 ProxyAddresses 屬性的使用者使用 Microsoft Entra Connect 同步至 Microsoft Entra ID,您就必須為您的租用戶啟用該功能,讓使用者使用 [電子郵件作為替代登入識別碼] 來登入。 此功能會告訴 Microsoft Entra 登入伺服器,不只要檢查 UPN 值的登入識別碼,還要檢查電子郵件地址的 ProxyAddresses 值。
您可以使用 Microsoft Entra 系統管理中心或 Graph PowerShell 來設定該功能。
管理此功能需要全域系統管理員。
Microsoft Entra 系統管理中心
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
-
以全域管理員的身分登入 Microsoft Entra 系統管理中心。
從 Microsoft Entra 視窗左側的導覽功能表中,選取 [Microsoft Entra Connect] > [電子郵件作為替代登入識別碼]。
按一下 [將電子郵件作為替代登入識別碼] 旁的核取方塊。
按一下 [檔案] 。
套用原則之後,最多可能需要 1 小時傳播原則,並讓使用者能夠使用其替代登入識別碼登入。
PowerShell
注意
此設定選項使用 HRD 原則。 如需詳細資訊,請參閱 homeRealmDiscoveryPolicy 資源類型。
一旦套用 ProxyAddresses 屬性的使用者使用 Microsoft Entra Connect 同步至 Microsoft Entra ID,您就必須為您的租用戶啟用該功能,讓使用者使用 [電子郵件作為替代登入識別碼] 來登入。 此功能會告訴 Microsoft Entra 登入伺服器,不只要檢查 UPN 值的登入識別碼,還要檢查電子郵件地址的 ProxyAddresses 值。
管理此功能需要全域系統管理員。
以系統管理員身分開啟 PowerShell 工作階段,然後使用
Install-Module
Cmdlet 安裝 Microsoft.Graph 模組:Install-Module Microsoft.Graph
如需安裝的詳細資訊,請參閱安裝 Microsoft Graph PowerShell SDK。
使用
Connect-MgGraph
Cmdlet 登入您的 Microsoft Entra 租用戶:Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration" -TenantId organizations
此命令會要求您使用網頁瀏覽器進行驗證。
使用
Get-MgPolicyHomeRealmDiscoveryPolicy
Cmdlet 檢查您的租用戶中是否已存在 HomeRealmDiscoveryPolicy,如下所示: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'"
將群組新增至分段推出原則,如下列範例所示。 以步驟 4 中原則識別碼所傳回的值取代 -FeatureRolloutPolicyId 參數中的值,並以步驟 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 中的登入記錄。 將電子郵件作為替代登入識別碼的登入,將會在 Sign-in identifier type 欄位中發出 proxyAddress
,並在 Sign-in identifier 欄位中發出輸入的使用者名稱。
僅限雲端與同步處理之使用者之間衝突的值
在租用戶中,僅限雲端使用者的 UPN 可擁有與從內部部署目錄同步之另一個使用者 Proxy 位址相同的值。 在此案例中,啟用功能之後,僅限雲端的使用者將無法使用其 UPN 登入。 以下是偵測此問題執行個體的步驟。
以系統管理員身分開啟 PowerShell 工作階段,然後使用 Install-Module Cmdlet 安裝 AzureADPreview 模組:
Install-Module Microsoft.Graph.Beta
若出現提示,請選取 [Y] 來安裝 NuGet,或從未受信任的存放庫安裝。
-
管理此功能需要全域系統管理員。
使用 Connect-MgGraph Cmdlet 登入您的 Microsoft Entra 租用戶:
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 混合式身分識別。
如需混合式身分識別作業的詳細資訊,請參閱如何執行密碼雜湊同步或傳遞驗證同步工作。