问题标签 [adfs2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
9536 浏览

javascript - AD FS 2.0 身份验证和 AJAX

我有一个网站试图在另一个网站上调用 MVC 控制器操作。这些站点都设置为 AD FS 2.0 中的信赖方信任。在两个站点之间的浏览器窗口中打开页面时,一切都经过身份验证并且工作正常。但是,当尝试使用 jQuery AJAX 方法从 JavaScript 调用控制器操作时,它总是失败。这是我正在尝试做的代码片段......

问题是 AD FS 使用 JavaScript 向依赖方发布隐藏的 html 表单。当使用 Fiddler 进行跟踪时,我可以看到它到达 AD FS 站点并返回此 html 表单,该表单应该发布并重定向到经过身份验证的控制器操作。问题是该表单作为 ajax 请求的结果返回,并且显然会因解析器错误而失败,因为 ajax 请求需要来自控制器操作的 json。这似乎是一种常见的情况,那么从 AJAX 与 AD FS 通信并处理此重定向的正确方法是什么?

0 投票
1 回答
9512 浏览

php - 如何设置 simplesamlphp 以使用 ADFS 2 作为 idp

我正在尝试让 simplesamlphp 1.8 使用 ADFS 2 作为 IdP。

现在我在获取浏览器 NTLM 身份验证对话框时严重卡住了,该对话框不接受任何登录(在选择“测试身份验证源”->“默认-sp”之后)。

在 config/config.php

在 metadata/saml20-idp-remote.php (从https://fs.example.com/FederationMetadata/2007-06/FederationMetadata.xml与 /admin/metadata-converter.php 转换)

在 ADFS 声明规则中,我有“允许所有用户访问”和转换规则“电子邮件地址 - > 名称 ID”

任何想法如何进行?

0 投票
1 回答
1015 浏览

c# - ADFS 登录页面本地化 - ASP.NET:我似乎无法动态更改页面语言

在我的项目中,我们使用默认的 ADFS 登录页面以单点登录方式登录 ADFS。页面本身需要大量参数,但我无法从请求中获取任何参数。我为初始化文化创建了一个覆盖函数,如下所示:

这个想法是有一个作为链接的标志,它会添加一些我可以从请求的初始化文化方法中捕获的东西。

现在手动设置文化(如跳过请求阅读部分)工作得很好,我可以更改页面的语言和文化。但是我无法从请求中得到任何东西。这包括原始获取 URL 中的任何预定义参数。

我也无法将任何内容存储到会话中,并且我假设它是因为登录页面的创建方式。

有没有人能够动态本地化他们的 ADFS 登录页面?如果是这样,任何指针将不胜感激。

0 投票
1 回答
960 浏览

asp.net - 如何将值从 AD FS 2.0 HomeRealmDiscovery.aspx 传递到 FormsSignIn.aspx?

AD FS 2.0 登录页面是一个小型 ASP.NET Web 应用程序(使用 .NET 2.0),可以对其进行自定义以更改外观和功能。(Microsoft 明确记录了此类自定义:请参阅登录页面自定义及其子页面。)

我有一个场景,其中有多个“家庭领域”(=“Claims Provider Trusts”),并且 AD FS 2.0 使用表单登录(而不是另一个“身份验证处理程序”)。

当页面HomeRealmDiscovery.aspx被点击时,该页面应该以某种方式(例如,通过询问用户)选择一个主域,然后调用SelectHomeRealm()。这通常在某些提交按钮的某些 ASP.NET 事件处理程序中完成。此时,控制权转移FormsSignIn.aspx页面。

现在在 FormsSignIn 页面上,我想使用在 HomeRealmDiscovery 页面上输入的一些数据(不直接与 AD FS 相关)。但是,我看不到获取该数据的方法。

MSDN 页面“如何:确定如何调用 ASP.NET 网页”解释了如何找出控制权是如何转移的。就我而言,我发现在 FormsSignIn 页面IsPostBack中是假的,PreviousPage是空的,并且IsCallback是假的。(也是IsCrossPagePostBack错误的。)因此,MSDN 页面建议使用“原始请求”调用 FormsSignIn 页面。但事实并非如此,因为我观察到(使用例如 Fiddler)不会通过以任何方式重定向客户端浏览器来传输控制权。所以我希望这是一个“服务器传输”,这样我就可以PreviousPage用来访问 HomeRealmDiscovery 页面实例。(我尝试使用 cookie,但这不起作用,因为浏览器不参与传输。)

因此我的问题是:如何将 AD FS 2.0 HomeRealmDiscovery.aspx 页面中的值传递到其 FormsSignIn.aspx 页面?

0 投票
1 回答
275 浏览

asp.net-mvc-3 - 在错误的身份验证 ASP.NET 上重定向?

我有一个在 Framework 4.0 应用程序池中运行的 ASP.NET MVC 站点。我现在需要将 Active Directory 联合身份验证服务 (ADFS) 放在它前面,以便针对远程 AD 存储进行身份验证。如果身份验证失败,我想重定向到我自己的自定义页面。这样做的正确方法是什么?由于 ADFS 是在 HTTP 模块中实现的,我应该制作自己的“拒绝模块”并将其放在 ADFS 之前还是之后?

0 投票
2 回答
2477 浏览

single-sign-on - SP-IdP 交互问题:我没有被重定向回 SP 网站

我是 SSO 和 ADFS 的新手,所以我尝试先运行本指南:AD FS 2.0 Federation with a WIF Application Step-by-Step Guide。本指南暗示使用单台机器运行它,但我在 2 台不同的机器上运行身份提供者 (IdP) 和服务提供者 (SP)。当 IdP 应该将经过身份验证的请求重定向回 SP 的网站时,我在最后一步遇到问题,而是返回 HTTP 200 Ok,让我留在 IdP 网站上。用例:当我在浏览器 (IE8) 中请求 SP 页面时,它会按预期将我重定向到 IdP。它显示了我输入我的 Windows 帐户凭据的弹出窗口。但是,它没有让我回到 SP 网页,而是向我显示 //adfsserver/adfs/ls 文件夹的内容。

根据 Fiddler,这是 http 身份验证请求/响应的样子:

GET https://adfsserver/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fymichurin%2fClaimsAwareWebAppWithManagedSTS%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fClaimsAwareWebAppWithManagedSTS%252fdefault.aspx&wct=2011- 11-23T21%3a59%3a56Z HTTP/1.1 ...

HTTP/1.1 200 OK ... 这是 //adfsserver/adfs/ls 文件夹内容

知道有什么问题吗?

有没有人知道类似的 ADFS 指南,它显示了这些东西如何在不同的机器上工作,而不是在单个机器上?

谢谢

0 投票
1 回答
22069 浏览

wif - ADFS 2.0 - 代理/服务器 503 服务不可用

在过去的几天里,我一直在不知疲倦地为使用 WIF 和 ADFS 2.0 的开发设置测试环境。我遇到的问题之一是我的家庭环境只有一个 IP 地址,而且我不打算在我的主服务器上粘贴 ADFS。因此,我为 FS (idp.yyy.local) 创建了一个专用的虚拟机。

为了没有直接链接回我的网站,“yyy”指的是“dgdev”。(下图)

奇怪的是,它部分工作。这是一张详细介绍我的基础架构的图片。

在此处输入图像描述

奇怪的是,我可以在普通 HTTP 和 HTTPS 中浏览“idp.yyy.net”。我还可以完美地查看 WS-Federation 元数据。现在,我对 ADFS 很陌生,但我希望在访问http://idp.yyy.net/adfs/services/trust时,它会将我重定向到 Windows SSL 登录。相反,我收到的只是:

暂停服务


http错误503服务不可用。

我在 FS 代理和 FS 上使用相同的 SSL 证书。它的主题是我的主域名yyy.net。它有几个主题备用名称,因此我可以使用我的单个 IP:Port 使用 SSL 托管多个 IIS 网站。

有谁知道为什么我会看到 503 Service Unavailable 错误。事件查看器中没有显示任何错误。(除了 AppFabric 令人讨厌的事情,但这是我尚未触及的另一个问题

提前致谢!其实非常感谢。我已经用尽了我能想出的所有途径和想法,为什么这可能会被“破坏”?


如果有人知道如何调试这个问题,我当然会作为解决方案。我已经尝试过 IIS 失败的请求日志记录,但没有生成任何内容。ADFS 服务在哪里/什么托管?我已经看过的东西:

  • 所有 AppPool 都在运行。
  • 旧的 ADFS 1.0 Web 服务 (asmx) 可以正常访问。
  • 我可以直接访问颁发者端点……或者至少是“windowstransport”
0 投票
1 回答
1076 浏览

single-sign-on - 如何为 WS-Federation 实施“IdP 优先”方案

ADFS 2.0,WIF(WS-Federation):我想在用户首先访问 IdP 网站进行身份验证的场景中实现 SSO。在这种情况下,我们的客户拥有带有指向我们(服务提供商)网站链接的内部网门户网站,这实际上将他们引导到 IdP 网站,并在用户通过身份验证后立即将他们重定向到我们的网站。我找不到有关如何正确实施它的技术细节的任何信息,有人可以吗?

到目前为止,我做了什么,我使用 Fiddler 抓取了指向 IdP 的重定向链接作为门户链接,看起来它可以工作,但是我不确定这是否是正确的方法。如果你有类似的经历,请分享。

更新:更详细的用例:我们的客户拥有自己的内部网门户,其中包含指向我们网站(服务提供商)的链接。这个想法是为了避免额外的初始 http 重定向并为不同的客户提供单一入口点,以便我们的网站可以依靠来自用户的安全令牌来识别客户的身份,否则我们应该为任何客户提供单独的 uri . 用户单击该链接,它首先将他引导至其自己的 Intranet IdP 服务 (ADFS 2.0),该服务使用他的 windows 帐户对他进行身份验证并添加安全令牌并将他重定向到我们的(依赖方)网站,我们可以在该网站上识别他和他的组织(客户)通过令牌,他可以消费我们的服务。让我知道该场景是否有问题或看起来可疑。

0 投票
1 回答
281 浏览

wif - WIF 入口点,联合身份验证

在 asp.net 应用程序中,是否可以只对少数页面 (.aspx) 进行 WIF 保护,而其他页面保持不变?

基本上,我想要的是当用户登陆时,他们可以浏览并HomePage.aspx能够转到- 但是当他们尝试访问时,我希望启动 WIF 设置。如果用户已经登录,那就太好了- 否则我们会将用户重定向到 STS 页面,他们可以在其中获得身份验证。PageOption.aspxPageAbout.aspxPageAccount.aspx

现在,我所有的页面都受 WIF 保护。因此,如果我尝试访问任何页面,我都会被重定向到 STS 页面。

我尝试修改 web.config 文件并将我想要 WIF 保护的页面放在一个单独的文件夹中,并提供其单独的 web.config,但到目前为止没有运气。

此外,如果我尝试<authentication mode..在嵌套的 web.config 中设置,我会收到错误消息。为什么我也不能这样做?

我得到的错误是(在第 15 行):

解析器错误消息:使用注册为 allowDefinition='MachineToApplication' 的部分超出应用程序级别是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。

源错误:第 15 行:

只是为了更进一步,我正在尝试做的是允许表单身份验证PageOption.aspxPageAbout.aspx当用户尝试直接转到PageAccount.aspx我想要然后使用联合身份验证时。

那里有任何安全专家可以对此有所了解吗?

0 投票
1 回答
891 浏览

asp.net - 设置 ADFS 身份验证时如何通过 TFS 将 asp.net Web 应用程序部署到开发团队

我正在开发一个 asp.net Web 应用程序,它是 TFS 的一部分并由开发团队使用。最近,作为项目的一部分,我们设置了 ADFS,现在正尝试对 ADFS 服务器强制执行项目身份验证。

在我的开发机器上,我已经完成了添加 STS 参考的步骤,该参考生成联邦元数据以及更新项目的 web.config 文件。web.config 中的授权使用指纹认证,这要求我将 ADFS 证书添加到我的本地计算机,并为开发计算机生成签名证书并将其添加到 ADFS。

一切都已设置并正常工作,但正在查看 web.config。和 FederationMetadata.xml 记录这些“似乎”是特定于机器的。我怀疑如果我将项目/文件签入 TFS,下一个进行构建的开发人员或测试人员最终会在他们的机器上构建损坏的构建。

我的问题是在 TFS 内,这样的场景签入并仍然允许我的团队在他们的开发或测试环境中使用最新代码签出、构建和测试项目的过程是什么?

我目前的工作是从签入中排除 FederationMetaData.xml 和 web.config,然后在每台开发机器上手动设置 ADFS 身份验证以及产品测试。一旦完成,每个人都可以阻止他们的 FederationMetatData.xml 和 web.config 的本地副本被签入。(也就是拥有自己的本地副本)然后在签入/签出时只需确保每个开发人员都保留自己的副本(或不将它们检入 TFS)

这似乎效率极低,并且几乎绕过了源代码管理的本质,因为要求开发人员在他们的机器上保留文件的本地副本。这似乎也引入了意外签入本地文件或覆盖本地文件的机会。

有没有人有任何关于如何签入(ADFS)机器特定配置的代码而不是整个开发环境的参考、文档或信息?

提前致谢,