使用電子郵件作為替代登入識別碼登入 Microsoft Entra ID (預覽)
本文內容
開始之前
預覽限制
替代登入識別碼選項概觀
將登入電子郵件地址同步至 Microsoft Entra ID
B2B 來賓使用者使用電子郵件地址登入
允許使用者使用電子郵件地址登入
啟用分段推出以測試使用電子郵件地址的使用者登入
測試使用電子郵件地址的使用者登入
疑難排解
下一步
顯示其他 6 個
許多組織都希望使用者能使用和內部部署目錄環境相同的認證登入 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 電子郵件登入:
不支援的應用程式 - 若某些協力廠商應用程式假設 unique_name
或 preferred_username
宣告不可變,或是一律與特定的使用者屬性相符 (例如 UPN),則這些應用程式可能無法如預期般運作。
記錄 - 對 HRD 原則中的功能設定所進行的變更不會明確地顯示在稽核記錄中。
分段推出原則 - 只有在使用分段推出原則啟用功能時,才適用下列限制:
此功能不適用於其他分段推出原則中包含的使用者。
分段推出原則支援每個功能最多 10 個群組。
分段推出原則不支援巢狀群組。
分段推出原則不支援組動態成員資格群組。
群組內的連絡人物件會阻止群組新增至分段推出原則。
重複的值 - 在租用戶中,僅限雲端使用者的 UPN 可擁有與從內部部署目錄同步之另一個使用者 Proxy 位址相同的值。 在此案例中,啟用功能之後,僅限雲端的使用者將無法使用其 UPN 登入。 有關此問題的詳細資訊,請參閱疑難排解 一節。
若要登入 Microsoft Entra ID,使用者會輸入唯一識別其帳戶的值。 在過去,您只能使用 Microsoft Entra UPN 作為登入識別碼。
對於內部部署 UPN 是使用者慣用登入電子郵件的組織而言,此方法很好用。 這些組織會將 Microsoft Entra UPN 設定為與內部部署 UPN 完全相同的值,而使用者會有一致的登入體驗。
然而,在某些組織中,不會使用內部部署 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。
展開資料表
將登入電子郵件地址同步至 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 B2B 共同作業 。 當首頁租用戶中啟用 [電子郵件作為替代登入識別碼] 時,Microsoft Entra 使用者可以使用資源租用戶端點上的非 UPN 電子郵件來執行來賓登入。 資源租用戶不需要採取任何動作,即可啟用此功能。
注意
在未啟用該功能的資源租用戶端點上使用替代登入識別碼時,登入程序將會順暢地運作,但 SSO 將會中斷。
一旦套用 ProxyAddresses 屬性的使用者使用 Microsoft Entra Connect 同步至 Microsoft Entra ID,您就必須為您的租用戶啟用該功能,讓使用者使用 [電子郵件作為替代登入識別碼] 來登入。 此功能會告訴 Microsoft Entra 登入伺服器,不只要檢查 UPN 值的登入識別碼,還要檢查電子郵件地址的 ProxyAddresses 值。
您可以使用 Microsoft Entra 系統管理中心或 Graph PowerShell 來設定該功能。
至少以 混合式身分識別系統管理員 身分登入 Microsoft Entra 系統管理中心 。
流覽至 [身分識別 >混合式管理 >Microsoft Entra Connect >連接同步
選取 [電子郵件] 作為替代登入標識符**。
按一下 [將電子郵件作為替代登入識別碼] 旁的核取方塊。
按一下 [檔案] 。
套用原則之後,最多可能需要 1 小時傳播原則,並讓使用者能夠使用其替代登入識別碼登入。
一旦套用 ProxyAddresses 屬性的使用者使用 Microsoft Entra Connect 同步至 Microsoft Entra ID,您就必須為您的租用戶啟用該功能,讓使用者使用 [電子郵件作為替代登入識別碼] 來登入。 此功能會告訴 Microsoft Entra 登入伺服器,不只要檢查 UPN 值的登入識別碼,還要檢查電子郵件地址的 ProxyAddresses 值。
管理此功能需要全域系統管理員 。
以系統管理員身分開啟 PowerShell 工作階段,然後使用 Cmdlet 安裝 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"
分段推出原則可讓租用戶系統管理員為特定的 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 中的登入記錄 。 將電子郵件作為替代登入識別碼的登入,將會在 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"
取得受影響的使用者。
$allUsers = Get-MgUser -All
$syncedProxyAddresses = $allUsers |
Where-Object {$_ .ImmutableId} |
Select-Object -ExpandProperty ProxyAddresses |
ForEach-Object {$_ -Replace "smtp:" , "" }
$cloudOnlyUserPrincipalNames = $allUsers |
Where-Object {!$_ .ImmutableId} |
Select-Object -ExpandProperty UserPrincipalName
$duplicateValues = $syncedProxyAddresses |
Where-Object {$cloudOnlyUserPrincipalNames -Contains $_ }
輸出受影響的使用者:
$allUsers |
Where-Object {$_ .ImmutableId -And ($_ .ProxyAddresses | Where-Object {($duplicateValues | ForEach-Object {"smtp:$_ " }) -Contains $_ }).Length -GT 0 } |
Select-Object ObjectId, DisplayName, UserPrincipalName, ProxyAddresses, ImmutableId, UserType
$allUsers |
Where-Object {!$_ .ImmutableId -And $duplicateValues -Contains $_ .UserPrincipalName} |
Select-Object ObjectId, DisplayName, UserPrincipalName, ProxyAddresses, ImmutableId, UserType
將受影響的使用者輸出成 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 混合式身分識別 。
如需混合式身分識別作業的詳細資訊,請參閱如何執行密碼雜湊同步 或傳遞驗證 同步工作。