共用方式為


您無法從多個同盟網域登入 Microsoft 365

問題

來自多個同盟網域的使用者 (最上層或子域) 無法登入 Microsoft 365。 此外,他們會收到下列錯誤訊息:

很抱歉,我們無法將您登入。AADSTS50107:要求的同盟領域物件 'http:// <ADFShostname>/adfs/services/trust' 不存在。

原因

這個問題是因為下列其中一個原因所造成:

  • 如果缺少同盟網域,則需要發行轉換規則,才能將簽發者從預設的 Active Directory 同盟服務 (AD FS) 實例主機名變更為簽發者集。
  • 新增子域之後,不會更新發行轉換規則。

當多個最上層網域同盟到租使用者的相同 AD FS 實例時,就會發生此問題。

解決方案

注意事項

自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模組已被取代。 若要深入瞭解,請閱讀 淘汰更新。 在此日期之後,這些模組的支援僅限於 Microsoft Graph PowerShell SDK 的移轉協助和安全性修正。 已淘汰的模組會繼續運作到 2025 年 3 月 30 日。

建議您移轉至 Microsoft Graph PowerShell,以與 Microsoft Entra ID (先前的 Azure AD) 互動。 如需常見的移轉問題,請參閱 移轉常見問題注意: 1.0.x 版的 MSOnline 可能會在 2024 年 6 月 30 日之後中斷。

  1. 移至 [Microsoft Entra RPT 宣告規則],然後按 [下一步]

  2. 指定 [不可變標識 符] (sourceAnchor) ->User Sign In (的值,例如 UPN 或郵件) 。 如果多個最上層網域已同盟,當系統提示您回應「#D875114FC7FDB42C8A2644FC2B8B3280C 信任 AD FS 是否支援多個網域?」時,請選取 []。

  3. 聯機到 Microsoft 365 PowerShell,然後將網域清單導出至 .csv 檔案 (例如,output.csv) 。 若要這樣做,請執行下列 Cmdlet:

    Import-Module MSOnline
    
    Connect-MsolService
    
    Get-MsolDomain | Select-Object Name, RootDomain, Authentication | ConvertTo-Csv -NoTypeInformation | % {$_.Replace('"','')} | Out-File output.csv
    
  4. 按兩下 [產生宣告],然後從 [宣告規則] 區段複製PowerShell Cmdlet

  5. 將 Cmdlet 儲存為 PowerShell 腳稿 (例如,updatelclaimrules.ps1) ,然後執行下列命令以在主要 AD FS 伺服器上執行腳本:

    .\Updateclaims.ps1
    
  6. 腳本會將現有發行轉換規則的備份設為目前工作目錄中的 .txt 檔案。

如果您想要還原使用文本備份的發行規則,請執行下列 Cmdlet,並指定您在步驟 5 中建立的備份檔。 在下列範例中,備份檔是 Backup 2018.12.26_09.21.03.txt。

Set-AdfsRelyingPartyTrust -TargetIdentifier "urn:federation:MicrosoftOnline" -IssuanceTransformRulesFile "Backup 2018.12.26_09.21.03.txt"