问题标签 [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 回答
121 浏览

single-sign-on - 如何与 ADFS 同步数据?

我们通过 SAML 完成单点登录 (SSO)。

目前我们需要将用户从 ADFS 同步到我们的数据库以及 ADFS 组。

我可以用谷歌搜索 LDAP 的解决方案,但这似乎很老了。

是否可以通过 SAML 做到这一点?还有什么方法吗?

我会使用PHP。

0 投票
1 回答
326 浏览

authentication - 来自非浏览器客户端的 SAML(或其他)身份验证流程

寻求指导以实现 Web 应用程序的以下功能:

  • 非浏览器 SSO
  • 无缝登录

非浏览器 SSO

ADFS (IdP) 位于专用网络中,但我想促进从任何网络进行访问,这意味着我需要在我的公共域中捕获用户名(和密码,如果受到挑战),然后通过后端脚本验证输入的凭据。

无缝登录

由于这是 SSO,如果用户与 ADFS 有一个活动会话,这意味着他已经通过 ADFS 域进行了身份验证,我想允许访问而无需询问凭据,比如说通过访问他的办公室计算机。


我正在研究 SAML ECP、OAuth 2.0、OpenID Connect、LDAP 的选项,但似乎没有一个可以解决我的要求而减少开销。

SAML 驱动的 SSO无法从任何网络访问,因为它是基于浏览器的,因此无法访问专用网络 IdP。

LDAP没有私有网络限制,但据我所知,不能像SAML那样促进无缝登录。

OAuth/OpenID似乎正在解决围绕身份验证/授权的完全不同的挑战。

0 投票
0 回答
98 浏览

saml-2.0 - 即使我们在 OS 2016 ADFS 中配置了 SAML2.0,也无法看到 SAML 2.0 响应,始终只显示 SAML 1.1 响应

我正在与我的应用程序进行基于 SAML 2.0(OS 2016 中的 ADFS)的集成。我在 OS2016 中使用 ADFS 作为我的 IDP。除了一件事外,我几乎可以端到端地成功进行集成。IDP 始终仅以 SAML 1.1 格式而不是 SAML 2.0 格式向 SP(我的应用程序)发送响应。

根据下面的文章和提到的 3 点,我得出的结论是,我得到的响应仅是 SAML 1.1。(如果我错了,请澄清我)

http://saml.xml.org/differences-between-saml-2-0-and-1-1

以下是我从 IDP(OS.2016 中的 ADFS)获得的回复。

  1. 哇:wsignin1.0

  2. wresult:<t:RequestSecurityTokenResponse xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><t:Lifetime><wsu:Created xmlns:wsu="http://docs. oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2020-06-26T04:57:32.190Z</wsu:Created><wsu:Expires xmlns:wsu ="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2020-06-26T05:57:32.190Z</wsu:Expires ></t:Lifetime><wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"><wsa:EndpointReference xmlns:wsa="http://www. w3.org/2005/08/addressing">wsa:Addresshttps://SPmachineHost:9555/samllogin</wsa:Address></wsa:EndpointReference></wsp:AppliesTo><t:RequestedSecurityToken><saml:Assertion MajorVersion ="1"MinorVersion="1" AssertionID="_18ed877c-5232-48cb-96fa-ee9f6a4052f1" Issuer="http://acs-adfs.acsadfs.local/adfs/services/trust" IssueInstant="2020-06-26T04:57: 32.190Z" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"><saml:Conditions NotBefore="2020-06-26T04:57:32.190Z" NotOnOrAfter="2020-06-26T05: 57:32.190Z">saml:AudienceRestrictionConditionsaml:Audiencehttps://SPmachineHost:9555/samllogin</saml:Audience></saml:AudienceRestrictionCondition></saml:Conditions>saml:AttributeStatementsaml:Subjectsaml:SubjectConfirmationsaml:ConfirmationMethodurn:oasis:names :tc:SAML:1.0:cm:bearer</saml:ConfirmationMethod></saml:SubjectConfirmation></saml:Subject><saml:Attribute AttributeName="name" AttributeNamespace="http://schemas.xmlsoap.org/ws/2005/05/identity/claims">saml:AttributeValueAdmin1</saml:AttributeValue></saml:Attribute></saml:AttributeStatement><saml:AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc :SAML:2.0:ac:classes:PasswordProtectedTransport" AuthenticationInstant="2020-06-26T04:57:32.128Z">saml:Subjectsaml:SubjectConfirmationsaml:ConfirmationMethodurn:oasis:names:tc:SAML:1.0:cm:bearer</saml :ConfirmationMethod></saml:SubjectConfirmation></saml:Subject></saml:AuthenticationStatement><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds :SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><ds:SignatureMethod Algorithm="http://www.w3.org/ 2001/04/xmldsig-more#rsa-sha256"/><ds:参考 URI="#_18ed877c-5232-48cb-ee9f6052f1"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#envelope-signature " /><ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></ds:Transforms><ds:DigestMethod Algorithm="http:// www.w3.org/2001/04/xmlenc#sha256" /><ds:DigestValue>80PFFLCrLFF8oL/MWx40FrZEx5A5w=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>MJd9e6ASmechzBC7jjnzV0mwP73n2GN3Dsz5GOEwPWzqzU 91O2QGQDrmnK8jVEN8RCylhJhUs42pjZpJmnse/jzse9NwJaLDgK2SjEDPJOQgYhYrS/Ax956B//40ZJzSZEiI7TeiQOdz3F2S2jwK9FV4rMcMwqAOKwC5uuZxKI2zTVN/l2p0TBrwXOm2a8za52k9YbhxsVw==</ds:SignatureValue>MIIC8DCCAdigAwIBAgIQF/6tTpRToJFN/3SNsFADA0MTIwMAYDVQQDEylBREZTIFNpZ25pbmMuY2FzbWFkZnNxYS5sb2NhbDAeFw0yMDAyMTAxMTQ0MzFaFw0yMTAyMDkxMTQ0MzFaMDQtYWRmcy5jYXNtYWRmc3FhLmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0mkhjInACpV9uKi5OuldVtszKTvd9bKK6Hb+r8iaU9WzpEu7IvRLz/alVvKmmjxvR3MX/K7lh8AzMNkA7fqU3prBvCJsVEPjS6mNIYNBfg6noDNAtXvlii+YML5Lt4GZKpY0miWW/eZPb+Q4eAPqhnWEywkRipAHCLZJjzMbX86ZfVghj69MwEvghHcODNIhSqkH6g814JCXiXQ+UrnF4A6Fn7n5dnD+rY4Qufv92Qnpv9fOAyY6m0m58nphD7gnXOWzs1NtUViMDjAQIDAQABMA0GBCwUAA4IBAQBzxTEnuJiK8ccfr8hOmEHRhdO6IPHEII8PE3+T6m3FTw4ELOOL4WTNpLiEylDNbnfkIvd/Jjigb6s/SKZn3BqA0rncxsjdILyCADyz9tEuU7Pl23Xnd3GA7049nK/0YddYFjsNtTUYiwNoFUXqh2hT+3dth5kBWdIPgoVwkf1HqMWtZCeaY/jOQgJUZ07O1zyvS3+mMRuFgJeZrS1bqfy2pMimS4TESpIFeKSBtZfyjfwZudfJdxdgfBEuZn0LTnmyQ/5TooWCoz</ds:Signature></saml:Assertion>< /t:RequestedSecurityToken><t:TokenType>urn:oasis:names:tc:SAML:1.0:assertion</t:TokenType><t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType ><t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType></t:RequestSecurityTokenResponse>

  3. wctx:空

对此的任何帮助将是一个很大的帮助。

谢谢, 塞卡

0 投票
1 回答
1540 浏览

single-sign-on - 您如何处理与 ADFS 联合的应用程序的注销过程?

我的环境由与 ADFS 2016 联合的各种应用程序 (RP) 组成。我会说 90% 的用户群登录使用基于表单的身份验证,因为他们从公共设备访问这些应用程序。

这是我们的场景。

Bob 转到应用程序 A,被重定向到 ADFS 以获取令牌,然后 Bob 通过使用基于表单的身份验证向 ADFS 进行身份验证,然后 ADFS 为应用程序 A 授予令牌,然后 Bob 使用该令牌登录到应用程序 A。Bob 然后从应用程序 A 注销这实际上删除了 Bob 与应用程序 A 的会话。然而,在不关闭浏览器的情况下 Bob 再次访问应用程序 A,而不是提示再次使用基于表单的身份验证到 ADFS 进行身份验证,而是重定向到应用程序 A。这是一个问题,因为它如果这些其他用户没有关闭他们的浏览器,可能会无意中允许用户使用其他用户的帐户登录。

我们一直在通过确保我们所有的 RP 都配置有“要求用户在每次登录时提供凭据”来规避这一点。你们也用这个吗?

一些 SAML RP 被配置为始终将用户重定向到https://adfs.server.com/adfs/ls/?wa=wsignout1.0 ,根据 MS 的规定,应该仅用于 WS-Fed 应用程序,如此处所述和 [这里][2] 。您是否在将用户重定向到该 URL 时遇到任何问题?

此外,一些 RP 的 Endpoint 选项卡配置了 SAML Logout Endpoints,而另一些则没有。这些 Logout Endpoints 是否需要填写,还是仅适用于尚未从他们这边执行此操作的应用程序?

在此处输入图像描述

0 投票
1 回答
1937 浏览

.net-core - ADFS 注销问题 ID4037:无法从以下安全密钥标识符解析验证签名所需的密钥

我们有一个自主开发的 webapp A 和一个第 3 方 webapp B。两者都是我们在 Windows 2019 数据中心上的本地 ADFS 4.0 服务器中的依赖方。

Webapp A 使用 WS-Federation,webapp B 可能使用 SAML 2.0,但不能 100% 确定。Webapp A 没有签名证书。Webapp B 具有有效的签名证书。

只要这发生在不同的浏览器会话中,用户就可以登录到 webapp A 和 webapp B 并退出而不会出现任何问题。

但是,如果用户在 webapp A 中并打开另一个浏览器选项卡以转到 webapp B,并尝试从 webapp A 注销,他们会收到错误“MSIS7054:SAML 注销未正确完成”。

ADFS 事件查看器显示以下异常:

Webapp A 是一个 dotnet 核心 MVC 应用程序。这是退出代码:

启动.cs

0 投票
1 回答
4182 浏览

powershell - 无法以管理员身份在新安装的 Windows Server 2016 上安装 NuGet?

我正在使用 Windows Server 2016 和 ADFS 4.0。

作为故障排除 AD 联合服务的一部分,这需要我按照https://adfshelp.microsoft.com/diagnosticsanalyzer/Analyze安装 NuGet 和模块

这是我已经执行的错误:

错误:

上面的脚本是通过以管理员身份运行的Powershell ISE 执行的,并以域管理员身份登录。

0 投票
1 回答
561 浏览

.net - 通过用户名和密码在 .Net Core 中进行 ADFS 4 身份验证

我正在使用 .net 核心 API 应用程序,角度前端仅向我发送用户的用户名和密码(从登录页面获取)。我的 API 应用程序必须请求对基于客户 Intranet 的 ADFS 4 服务进行身份验证。

问题是:如何调用发送用户名和密码的 ADFS 4 API 对用户进行身份验证?如果你有任何样品,可能会很棒!

调用 ADFS 的目的只是为了查看用户是否被授权使用应用程序,Web 应用程序使用自己的 jwt 令牌来授权操作。

谢谢大家

0 投票
1 回答
1099 浏览

authentication - 为 ADFS 2019 (v4) 构建自定义身份验证方法

我在 Windows Server 2019 上为 ADFS v4 创建自定义身份验证器时遇到问题。我的目标是创建自定义主身份验证器,但现在我愿意让自定义身份验证器作为附加身份验证提供程序工作。我关注了 Microsoft 的这篇文章,虽然它声明该教程适用于 2012 年,但它也应该适用于 2019 年。如果接下来的内容被视为意识流,我深表歉意,但我对此很陌生,并且我的实施可能有很多问题。

最初的挣扎

当我按照 Microsoft 的指示进行操作时,我可以在主要身份验证器列表中看到该身份验证器并选择它。但是,当我完成身份验证过程时,代码永远不会触发。我从未在项目中看到自定义 HTML 片段。如果我正确理解了此示例中的代码,我应该能够将身份验证器设置为主,并且只能从我的身份验证器获取 HTML。如果选择了多个主要身份验证器,我能做的最好的事情就是让友好的名称显示在可能的身份验证器列表中。

友好名称

如果我单击我的自定义身份验证器,它只会出错,并且我会在 ADFS 事件日志中获得一个条目,指出它找不到指定的用户。我认为通过使用自定义它会绕过任何 Active Directory 查找,但显然它仍在进行查找,而且我从来没有看到我的自定义登录页面。

然后我添加了日志记录

我将代码中的每个方法都记录到了 Windows 事件日志中,并且有一段时间我会收到一条消息,表明程序进入了 OnAuthenticationPipelineLoad 方法。

不幸的是,这在某个时候停止了工作,我无法取回它,所以就像代码甚至不再到达这里一样。

微软的例子甚至不起作用

我在 GitHub 上四处寻找其他做过这件事的人,并找到了Microsoft 的示例提供程序。不幸的是,微软的代码也不起作用,所以它一定是我配置错了,但我不知道去哪里找。

然后我尝试将其设为辅助身份验证器

我尝试将我的自定义身份验证器设置为辅助,但在这种情况下代码也不会触发。

怀疑

在我的日志记录停止工作之前,我认为代码可能与 AuthenticationMethods 元数据存在问题。

我发现这可能是这里这里的问题的提示。它说“IAuthenticationAdapterMetadata:定义适配器元数据,包括其名称和它支持的身份验证类型”和“全局和依赖方 MFA AdditionalAuthenticationRules 声明规则集均已执行。(框 C)。如果任一输出声明集规则集包含类型为“http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod”的声明和值“http://schemas.microsoft.com/claims/multipleauthn”,然后是 MFA会参与。”

问题

我想我什至不知道我应该问什么作为我的问题。之前有没有人创建过自定义 ADFS 身份验证器并看到过这个问题?有什么明显的东西我可以检查可能导致这种情况吗?

0 投票
2 回答
396 浏览

identityserver4 - 使用 ADFS 作为外部身份提供者的 IdentityServer4

我有一个 ASP.NET MVC 测试应用程序,它应该作为隐式 OIDC 客户端工作,具有来自 IdentityServer4 应用程序的访问和 id 令牌(两者都是 dotnet core 3.1)。IdSvr 配置了几个外部 OIDC IdP:一个 KeyCloak 实例和一个 ADFS (4.0) 同上。

我的 ADFS IdSvr 配置如下:

在 KeyCloak 案例中,一切正常 - 对 IdSvr 的“/signin-oidc”的回调请求正常,前端通道用户代理在目标测试应用程序的 post-auth 端点结束,并且令牌可用。当我使用 ADFS 时,用户在 ADFS 中通过身份验证后,流程停止并显示 HTTP 500,并且命中“/signin-oidc”端点,并且 IdSvr 日志显示:

对路径发出的 CORS 请求:/signin-oidc from origin: <<ADFS_endpoint>> 但被忽略,因为路径不适用于允许的 IdentityServer CORS 端点 2020-09-20 12:34:01.157 +02:00 [INF] 来自错误RemoteAuthentication: 无法取消保护 message.State..

我已经根据IdentityServer4 docs设置了 CORS ,所以问题可能是其他问题?

在检查 KeyCloak 和 ADFS 对“/signin-oicd”的回调请求的差异时,我可以看到 ADFS 确实将 Referer/Origin 添加到请求中,而 KeyCloak 没有。除此之外,这两个请求似乎非常相似。

希望有人可以提供帮助。

0 投票
2 回答
655 浏览

java - Spring security ADFS SSO 集成 - 响应没有任何可以通过主题验证的有效断言

在使用 ADFS 执行 SSO 验证时,我的 Spring Boot 应用程序有时会显示以下错误。ADFS 超时设置为 1 小时,应用程序超时设置为 4 小时。来自提琴手跟踪的响应日志采用加密格式。有没有办法在spring security完成解密后在日志中打印响应?我们如何在 Spring saml 与 ADFS 的集成中禁用加密。