AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 796102
Accepted
Massimo
Massimo
Asked: 2016-08-11 12:37:05 +0800 CST2016-08-11 12:37:05 +0800 CST 2016-08-11 12:37:05 +0800 CST

Office 365 ADFS 身份验证不适用于子域

  • 772

一家公司正在使用带有 ADFS 身份验证的 Office 365;AD Connect用于目录同步,ADFS是Windows server 2012 R2版本。

该公司有多个 Active Directory 域:

parent1.com
    child1.parent1.com
    child2.parent1.com
    child3.parent1.com
parent2.com
    ...
...

根域在 Office 365 中配置为联合域(公共域名和 AD 域名相同);这很好用,用户可以使用他们的 UPN(例如[email protected])和他们的 AD 密码登录到 Office 365。

我需要添加对子域的支持;因此,我child1.parent1.com通过运行以下命令添加到 Office 365(在使用管理员帐户连接到 Office 365 之后Connect-MsolService):

New-MsolFederatedDomain -DomainName child1.parent1.com -SupportMultipleDomain

(注意如果我不使用该SupportMultipleDomain参数,PowerShell 会给出一个错误,说明它是必需的)。

然后我继续在私有和公共 DNS 中添加所有必需的 DNS 记录;DNS 记录的 Office 365 验证报告一切正常。

然后将子域添加到 AD Connect,并执行同步;来自子域的用户因此出现在 Office 365 中,用户名如[email protected]. 我为他们分配了适当的许可证并尝试登录 Office 365 门户。

但是,子域的用户无法登录;他们收到“无效请求”错误,并附有以下附加详细信息:

Correlation ID: b1e47d45-b21c-42e9-9758-265804db7171 
Timestamp: 2016-08-10 20:27:48Z 
AADSTS50107: Requested federation realm
object 'http://child1.parent1.com/adfs/services/trust/' does not exist. 

ADFS 方面显然有问题,但我不是这方面的专家,也不是我设置它的人;如何解决此问题,以便子域中的用户可以成功登录 Office 365?

active-directory microsoft-office-365 adfs
  • 1 1 个回答
  • 6802 Views

1 个回答

  • Voted
  1. Best Answer
    Massimo
    2016-08-12T07:03:01+08:002016-08-12T07:03:01+08:00

    该问题几乎没有记录(Technet 博客文章和Azure AD 的一些文档),但它确实存在,这是由于 ADFS 在某些特定情况下行为不正确(多个顶级联合域和在混合); 该解决方案涉及编辑 ADFS 声明规则中的正则表达式,该规则用于构建与用户的 UPN 关联的 IssuerUri。引用第二篇文章:

    So lets say for example that I have bmcontoso.com and then add
    corp.bmcontoso.com. This means that the IssuerUri for a user from
    corp.bmcontoso.com will need to be http://bmcontoso.com/adfs/services/trust.
    However the standard rule implemented above for Azure AD, will generate a
    token with an issuer as http://corp.bmcontoso.com/adfs/services/trust
    which will not match the domain's required value and authentication will fail.
    

    为了解决这个问题,应该编辑 ADFS 中的第三条声明规则,从

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)","http://${domain}/adfs/services/trust/"));
    

    至

    c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^((.*)([.|@]))?(?<domain>[^.]*[.].*)$", "http://${domain}/adfs/services/trust/"));
    

    但是,请注意,这可能会破坏与其他方案的兼容性,例如父域未联合的实际第三级联合域。

    • 3

相关问题

  • 如果以域用户身份远程登录,PC 速度极慢

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve