问题标签 [adfs4.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 投票
1 回答
185 浏览

oauth-2.0 - SPA 调用 WebAPI 调用 WebAPI

我正在构建一个 SPA (javascript),它将调用 WebAPI A (.net MVC API),然后调用 (服务器端) WebAPI B (.net MVC API)。

所有三个实体均受 ADFS4 (OAuth2) 保护。在我的工作流程中,我希望 WebAPI A 代表已登录 SPA 的用户调用 WebAPI B。在阅读 Microsoft 的各种文档时,我发现以下文章中描述的场景最适合我的情况:

https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/development/ad-fs-on-behalf-of-authentication-in-windows-server

本文假设客户端应用程序可以执行授权大流程。尽管如此,在我的情况下,我正在处理一个应该使用 OAuth2 隐式流的 SPA。此外,即使我想使用授权大流程,我仍然需要从 SPA 在 ADFS 的令牌端点上进行 POST,这是不可能的,因为 ADFS4 不提供添加 CORS 标头的方法。我当然可以在它前面部署一个代理并添加标题......我还没有探索这个选项。

我找到了一个解决方案来完成这项工作,但它对我来说更像是一个 hack;登录期间的 SPA 从 ADFS4 请求两个令牌(1 个用于 WebAPI A,1 个用于 WebAPI B)。它将两个令牌传递给知道第二个令牌用于访问 WebAPI B 的 WebAPI A。

这个解决方案看起来正确吗?我应该做一些不同的事情吗?

谢谢!

PS:1) SPA 不能直接访问 WebAPI B,因为它只能在内部访问。2)假设我完全控制了所有三个实体的开发。

0 投票
0 回答
576 浏览

identityserver4 - 使用 IdentityServer4 允许员工使用 SAML2 通过 ADFS 登录,然后发出 JWT

我的目标是提供一个面向互联网的应用程序,可供公司员工和外部用户使用。我将在 IdentityServer4 实例后面有 2 个 ADFS 实例,一个用于外部用户,一个用于公司员工。

一般来说,所有用户(员工或外部)都应始终获得 oAuth2 令牌来调用面向互联网的 API,但是当 SAML 依赖的公司系统之间存在内部调用时,内部调用应该能够获得 SAML2 令牌或模拟公司用户.

外部用户没问题,使用 openid 和 oAuth2。主要关注点是员工通过 SAML2 登录。

设置如下:

  1. IdentityServer4 位于前端,由 ADFS 提供支持
  2. 客户端应用程序应使用 OpenId 规范(/connect/authorize?端点)与 IdentityServer4 连接。我知道该怎么做
  3. IdentityServer4 应该通过 Ws-Fed 连接到 ADFS 以供外部用户设置。我知道如何到达这里。
  4. IdentityServer4 应通过 SAML2 连接到公司员工的内部 ADFS。如果能够根据用户的电子邮件地址在两个 ADFS 实例之间切换,那就太好了。就像在 Azure 上一样,您会收到一条消息:如果用户输入了已知的公司电子邮件域,我们会将您带到您雇主的登录页面。不过,此切换应该通过 IdentityServer UI 进行,可能模仿 Home Realm Discovery 功能。
  5. IdentityServer4 在任何一种情况下都应该发出 oAuth 令牌。6 当通过 SAML2 连接到公司 ADFS 时,IdentityServer4 应该收到一个签名的、加密的 SAML2 令牌响应,然后它应该为外部 API 发出常规的 oAuth 令牌
  6. 一些外部 API 可能想要调用内部企业基于 SAML 的 API,(*仅适用于企业用户)必须有一种方法来模拟用户,获取他的 SAML 令牌并传递给企业 API。

如果所有这些都有意义, - 我怎样才能实现步骤 5,6 和 7?- 是否有可以与 ADFS 交换 SAML2 令牌的中间件?- 是否可以将此 SAML2 令牌直接传递给内部 SAML 支持系统?

我以前从未使用过 SAML2 令牌,所以我对它的外观有点迷茫,它是类似于访问令牌还是使用 ADFS 响应中的断言构建的东西?

我知道我问了很多问题,但一切都是相关的。我正在探索 SustainSys,但无法找到将其插入以执行我想做的事情的方法。

0 投票
1 回答
155 浏览

adfs3.0 - ADFS 的多种类型的令牌

我试图找出 ADFS 是否可以在一次身份验证中发送两种类型的令牌?

我们有使用 JWT 令牌的外部系统,也有使用 SAML 令牌的系统。我们希望接收 JWT 令牌和 SAML 令牌作为对 ADFS 的一个身份验证请求的响应。

我正在阅读以下内容:https ://docs.microsoft.com/nl-nl/azure/active-directory/authentication/concept-mfa-howitworks但这似乎是连续的身份验证方式,而不是我正在寻找的为了

0 投票
1 回答
705 浏览

adfs - 具有多个证书的 ADFS 服务器

我们有工作的 ADFS 2016 服务器,有超过 100 个客户作为索赔提供者信任。现在我需要加入当地政府的 SAML2 系统,这是许多政府机构的通用解决方案。它与我们的 ADFS 设置兼容,除非它们要求(没有任何正当理由)我们使用特殊的政府签名证书作为令牌签名(可能还有加密)证书。现有客户超过 100 个,这些客户并非全部从我们的元数据自动更新,我不想在我们发布的元数据中更改我们当前的令牌签名/加密证书。

有没有办法在 ADFS 服务器中处理这种情况?

我可以将此政府令牌签名证书作为第二个证书安装到 ADFS 服务器并使其不在我们的元数据中发布吗?

第二个证书应该仅用于某些选定的声明提供者信任,以便 ADFS 服务器默认使用我们当前的证书,但使用政府证书从链接到政府 SAML2 系统的选定声明提供者信任登录?

还是完全不同的 ADFS 服务器是我们唯一的选择?

谢谢。

0 投票
2 回答
710 浏览

regex - ADFS 声明规则中的正则表达式负前瞻

我需要向不匹配特定 LDAP 属性的每个人授予声明。我想使用带有负面展望的正则表达式来执行这个“not”子句

我的测试用户似乎并不满意上述规则。正则表达式有问题吗?还是 ADFS4.0 不支持它。我在 ADFS 事件日志中看不到任何错误。

这是 win2012r2 AD 域上的 win2016srv。

作为参考,这条规则确实有效:

0 投票
0 回答
163 浏览

powershell - 使用 Set-AdfsRelyingPartyTrust PowerSell 命令从 ADFS 依赖方删除注释?

我实际上想在 ADFS 4.0 中通过 PowerShell 完成一个简单的任务:为依赖方设置注释。

这实际上像这样工作正常:

Set-AdfsRelyingPartyTrust -TargetName SomeRelyingParty -Notes SomeNote

问题是,我无法将其设置回空字符串,因为我收到以下错误消息: Cannot validate argument on parameter 'Notes'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.

我也尝试了""or$null作为参数,这会导致相同的错误消息。

到目前为止,我的解决方法是设置" ",但它仍然是空格字符,而不是我想要的空字符串。设置注释后,再次完全删除注释的唯一方法是在 ADFS 用户界面中执行此操作,我无法弄清楚如何通过编写脚本来执行此操作。

更新

我仍然无法找到解决方案,所以我联系了我们的微软首席顾问,他想出了解决方案,在引号下设置反引号 (`) 和零 (0)(我不能在这里写,因为反引号也是 stackoverflow 语法- 但是这是escpaed)。仍然会有一个长度为 1 的“空”字符串。

我现在想,这实际上是一个错误,所以我让他联系 ADFS 产品团队。

0 投票
2 回答
4759 浏览

adal.js - ADFS 2016 X-Frame-拒绝选项

我在我的反应应用程序上使用 adal.js(使用 react-adal 包装器)。我将我的应用程序配置为与我的 ADFS 2016 服务器(本地)一起使用,并且身份验证过程工作正常,但是在 ADFS SSO cookie 过期后,当客户端发送更新令牌请求(在隐藏的 iframe 中)时,浏览器显示在控制台出现以下错误:拒绝在新框架中显示“ https://myadfs/adfs/ls/SAMLRequest= ...”,因为它将“X-frame-options”设置为拒绝。

为了重新认证,用户需要刷新页面(F5)。

这个问题有什么解决方案/解决方法吗?

0 投票
1 回答
2935 浏览

asp.net - ADFS 中的依赖方与应用程序组

我试图了解使用 ADFS 的 .NET Web 应用程序中的身份验证。

我按照Microsoft 文档中的示例进行操作,并且能够通过 ADFS 处理我的应用程序的身份验证。给定的示例将应用程序添加到 adfs 应用程序组中

很少有示例添加回复方信任而不是应用程序组。

如果这听起来很幼稚,我深表歉意,但我需要知道这两者之间的区别以及它如何影响 .NET 应用程序

0 投票
0 回答
47 浏览

authorization - 将本地 ADFS (4.0 Windows Sever 2016) 设置为 Net Core API

我正在寻找如何将我的网络核心 API 2.1 授权给本地 ADFS 的方法。大多数文档和教程都是使用 azure AD 和 JWT Token Bearer 设置的,但不是使用 ADFS 设置的。

0 投票
1 回答
281 浏览

azure-active-directory - OpenId Connect 通过单次登录访问图形 api 和本地资源

试图让 ASP.NET Web 应用程序使用单一登录来访问本地资源和图形 api。该环境由一个本地 adfs 以及一个与本地广告同步和联合的 Azure AD 实例组成。我有以下工作。

  1. 将应用程序配置为对 Azure AD 使用 OpenId Connect 身份验证,并在 azure ad 中配置客户端。用户进行身份验证,我收到一个身份验证代码,可用于获取令牌以成功调用图形 api。

  2. 使用在 ADFS 中配置的 client_id 将应用程序配置为针对 ADFS 使用 OpenId Connect 身份验证。用户进行身份验证,我得到一个身份验证代码,用于获取承载令牌以调用本地资源。

但是,我找不到通过一次登录即可访问本地资源和图形 api 的方法。这是可能吗?有人能指出我正确的方向吗?