问题标签 [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.
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 的各种文档时,我发现以下文章中描述的场景最适合我的情况:
本文假设客户端应用程序可以执行授权大流程。尽管如此,在我的情况下,我正在处理一个应该使用 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)假设我完全控制了所有三个实体的开发。
identityserver4 - 使用 IdentityServer4 允许员工使用 SAML2 通过 ADFS 登录,然后发出 JWT
我的目标是提供一个面向互联网的应用程序,可供公司员工和外部用户使用。我将在 IdentityServer4 实例后面有 2 个 ADFS 实例,一个用于外部用户,一个用于公司员工。
一般来说,所有用户(员工或外部)都应始终获得 oAuth2 令牌来调用面向互联网的 API,但是当 SAML 依赖的公司系统之间存在内部调用时,内部调用应该能够获得 SAML2 令牌或模拟公司用户.
外部用户没问题,使用 openid 和 oAuth2。主要关注点是员工通过 SAML2 登录。
设置如下:
- IdentityServer4 位于前端,由 ADFS 提供支持
- 客户端应用程序应使用 OpenId 规范(/connect/authorize?端点)与 IdentityServer4 连接。我知道该怎么做
- IdentityServer4 应该通过 Ws-Fed 连接到 ADFS 以供外部用户设置。我知道如何到达这里。
- IdentityServer4 应通过 SAML2 连接到公司员工的内部 ADFS。如果能够根据用户的电子邮件地址在两个 ADFS 实例之间切换,那就太好了。就像在 Azure 上一样,您会收到一条消息:如果用户输入了已知的公司电子邮件域,我们会将您带到您雇主的登录页面。不过,此切换应该通过 IdentityServer UI 进行,可能模仿 Home Realm Discovery 功能。
- IdentityServer4 在任何一种情况下都应该发出 oAuth 令牌。6 当通过 SAML2 连接到公司 ADFS 时,IdentityServer4 应该收到一个签名的、加密的 SAML2 令牌响应,然后它应该为外部 API 发出常规的 oAuth 令牌
- 一些外部 API 可能想要调用内部企业基于 SAML 的 API,(*仅适用于企业用户)必须有一种方法来模拟用户,获取他的 SAML 令牌并传递给企业 API。
如果所有这些都有意义, - 我怎样才能实现步骤 5,6 和 7?- 是否有可以与 ADFS 交换 SAML2 令牌的中间件?- 是否可以将此 SAML2 令牌直接传递给内部 SAML 支持系统?
我以前从未使用过 SAML2 令牌,所以我对它的外观有点迷茫,它是类似于访问令牌还是使用 ADFS 响应中的断言构建的东西?
我知道我问了很多问题,但一切都是相关的。我正在探索 SustainSys,但无法找到将其插入以执行我想做的事情的方法。
adfs3.0 - ADFS 的多种类型的令牌
我试图找出 ADFS 是否可以在一次身份验证中发送两种类型的令牌?
我们有使用 JWT 令牌的外部系统,也有使用 SAML 令牌的系统。我们希望接收 JWT 令牌和 SAML 令牌作为对 ADFS 的一个身份验证请求的响应。
我正在阅读以下内容:https ://docs.microsoft.com/nl-nl/azure/active-directory/authentication/concept-mfa-howitworks但这似乎是连续的身份验证方式,而不是我正在寻找的为了
adfs - 具有多个证书的 ADFS 服务器
我们有工作的 ADFS 2016 服务器,有超过 100 个客户作为索赔提供者信任。现在我需要加入当地政府的 SAML2 系统,这是许多政府机构的通用解决方案。它与我们的 ADFS 设置兼容,除非它们要求(没有任何正当理由)我们使用特殊的政府签名证书作为令牌签名(可能还有加密)证书。现有客户超过 100 个,这些客户并非全部从我们的元数据自动更新,我不想在我们发布的元数据中更改我们当前的令牌签名/加密证书。
有没有办法在 ADFS 服务器中处理这种情况?
我可以将此政府令牌签名证书作为第二个证书安装到 ADFS 服务器并使其不在我们的元数据中发布吗?
第二个证书应该仅用于某些选定的声明提供者信任,以便 ADFS 服务器默认使用我们当前的证书,但使用政府证书从链接到政府 SAML2 系统的选定声明提供者信任登录?
还是完全不同的 ADFS 服务器是我们唯一的选择?
谢谢。
regex - ADFS 声明规则中的正则表达式负前瞻
我需要向不匹配特定 LDAP 属性的每个人授予声明。我想使用带有负面展望的正则表达式来执行这个“not”子句
我的测试用户似乎并不满意上述规则。正则表达式有问题吗?还是 ADFS4.0 不支持它。我在 ADFS 事件日志中看不到任何错误。
这是 win2012r2 AD 域上的 win2016srv。
作为参考,这条规则确实有效:
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 产品团队。
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)。
这个问题有什么解决方案/解决方法吗?
asp.net - ADFS 中的依赖方与应用程序组
我试图了解使用 ADFS 的 .NET Web 应用程序中的身份验证。
我按照Microsoft 文档中的示例进行操作,并且能够通过 ADFS 处理我的应用程序的身份验证。给定的示例将应用程序添加到 adfs 应用程序组中
很少有示例添加回复方信任而不是应用程序组。
如果这听起来很幼稚,我深表歉意,但我需要知道这两者之间的区别以及它如何影响 .NET 应用程序
authorization - 将本地 ADFS (4.0 Windows Sever 2016) 设置为 Net Core API
我正在寻找如何将我的网络核心 API 2.1 授权给本地 ADFS 的方法。大多数文档和教程都是使用 azure AD 和 JWT Token Bearer 设置的,但不是使用 ADFS 设置的。
azure-active-directory - OpenId Connect 通过单次登录访问图形 api 和本地资源
试图让 ASP.NET Web 应用程序使用单一登录来访问本地资源和图形 api。该环境由一个本地 adfs 以及一个与本地广告同步和联合的 Azure AD 实例组成。我有以下工作。
将应用程序配置为对 Azure AD 使用 OpenId Connect 身份验证,并在 azure ad 中配置客户端。用户进行身份验证,我收到一个身份验证代码,可用于获取令牌以成功调用图形 api。
使用在 ADFS 中配置的 client_id 将应用程序配置为针对 ADFS 使用 OpenId Connect 身份验证。用户进行身份验证,我得到一个身份验证代码,用于获取承载令牌以调用本地资源。
但是,我找不到通过一次登录即可访问本地资源和图形 api 的方法。这是可能吗?有人能指出我正确的方向吗?