我一直试图让这项工作有一段时间,我的头开始游泳......
我正在尝试使本地 ADFS 3.0 实例能够对本地 AD 和 Azure AD 中的用户进行身份验证。理想情况下,ADFS 将允许对加入域的设备进行 Windows 集成身份验证。如果不是,它将显示一个表单登录页面。当用户输入他们的 ID/PW 时,它会检查 Azure AD 凭据是否有效。我将本地 AD 与 Azure AD 同步,因此我的内部用户在那里,并且我有几个帐户仅在 Azure AD 中。我这样做是为了让内部和外部用户帐户可以访问本地 SharePoint 网站(不是 O365/SharePoint Online!)。
我按照本文中的步骤在 ADFS 和 Azure 之间设置 SSO。我确实在 ADFS 中的 Claims Provider Trusts 下看到了 windows.net 条目。我还在 Azure ACS 中使用与我的 ADFS 服务器匹配的领域和 DNS 信息配置了依赖方。
如果我将 ADFS 服务器添加到 Intranet 站点列表以便 Windows 集成身份验证工作,我看不到登录提示,并按预期重定向到我的 SP 站点。如果在我被重定向到 ADFS 时 ADFS 服务器不在 Intranet 站点列表中,我会看到一个标题为 Home Realm Discovery 的页面,其中有两个选项:ADFS 和 windows.net 声明提供程序的显示名称。如果我选择 ADFS,我可以使用内部 AD 帐户登录没问题,但这是一个 Windows ID/PW 提示。如果我选择 Windows.net,我可以使用仅限 Azure AD 的帐户进行身份验证,但是当浏览器在 ID/PW 验证后重定向时,我会收到以下错误消息:
“抱歉,我们无法让您登录。
我们收到了一个错误的请求。
附加技术信息:
相关 ID:07ec79b8-7484-4667-be45-cffe864854a9
时间戳:2014-12-17 16:13:10Z
AADSTS70001:在目录 daab1e92-e868-4495-8e6d-156727c0d612 中找不到带有标识符的应用程序(我的 ADFS 服务器的 FQDN)</p>
从上述错误中我可以看出,Azure ACS 认为我正在尝试访问 Azure 应用程序,但我不是。我只想进行验证并将其重定向到我的 SP 服务器。我知道这听起来可能有点令人费解,但还有一些其他因素导致我这样做的原因并不适用于这篇文章。
我知道我遗漏了一些简单的东西,但我无法弄清楚我遗漏了什么以便搜索它。我宁愿不让用户选择要验证的来源。我宁愿它只是一个简单的登录表单,让 ADFS 弄清楚。由于一旦集成身份验证失败,Azure AD 应该/可能是 ID/PW 验证的唯一来源,这应该是可能的,对吧?
如果它仍然不清楚我想要实现的目标,这里是我想要完成的一个稍微简单的绘图: