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

oauth-2.0 - ADFS 2016 支持 OIDC 的“配置文件”范围?

我正在尝试使用 OIDC 和授权代码流来实现 Web 应用程序。我使用OIDC Core 1.0 规范作为工作方式的参考。我正在尝试针对 Microsoft ADFS 2016 服务器进行此操作,该服务器通常声称支持 OIDC。

我已经设法让工作流程大部分工作,但有一个例外。当我调用令牌端点以将我的授权代码交换为 anaccess_token和 anid_token时,我希望通过name声明获取用户的可显示名称。但我从 ADFS 收到的令牌中不存在该声明。

当我重定向到 ADFS 服务器的授权端点时,我将其传递scopeopenid profile. 根据OIDC 规范的第 5.4 节profile,范围应导致name请求声明。但我没有收到这种说法。我确实得到了一些我可以考虑使用的其他声明(即upnunique_name),但我正在努力尽可能地与标准保持一致。

这是否意味着 ADFS 2016 在该特定领域不符合 OIDC 规范?还是我误读了我在这里引用的规范部分?

0 投票
1 回答
44 浏览

asp.net-web-api - 了解如何将 SAML2 SSO 实施到现有的 .net web api

我需要对我们现有的 Web API 实施 SAML 2.0 sso 身份验证。我对这个话题相当陌生,所以我不知道从哪里开始。我一直在玩开发 ADFS 服务器(ADFS 4 - Windows server 2016),并一直在关注如何设置依赖信任方的教程。我已经了解了 SAML 的工作原理,但仍然不知道如何通过代码实现这一点在我的 webapi 中。我想知道如何开始实施 SAML 2 身份验证以连接到 ADFS 服务器,Web 应用程序部署在不同的 iis 服务器上。我已阅读https://github.com/Sustainsys/Saml2/tree/master但我不知道我的 web api 如何连接到 ADFS 服务器以检索 SAML 令牌并进行处理。

0 投票
0 回答
97 浏览

asp.net-core-3.1 - Microsoft.AspNetCore.Authentication.WsFederation 中的 RedirectToIdentityProvider

我们有一个与 ADFS 集成并在 .net 框架中的应用程序。我们有多个我们信任并授予应用程序访问权限的身份提供者。我们过去常常通过读取查询字符串中的 whr 值并将参数添加到登录请求中来适应它们,如下所示

我们现在正在将我们的应用程序迁移到 .net 核心。我们如何使用中间件实现相同的目标。我读过我们可以使用 WsFederationOptions 类中的 Events.RedirectToIdentityProvider 并实现它,但无法弄清楚。任何帮助将不胜感激。非常感谢。

0 投票
0 回答
21 浏览

sustainsys-saml2 - sustainsys:无法解析属性“x509FindType”的值

我正在关注 Sustainsys 的 MVC 实现以进行 SAML 2.0 身份验证。我的证书有问题,并且存在运行时错误

无法解析属性“x509FindType”的值。

我在本地机器的受信任的根证书颁发机构中安装了证书 - 在 adfs aserver 和我运行代码的本地开发机器中。所以我不明白我在这里做错了什么,我对 SustainSys 还很陌生,所以我不确定我是否遗漏了什么。这是我的 SAML2 的 Web 配置片段

我尝试使用,fileName但它给了我一个差异错误

“根据验证程序,远程证书无效”

0 投票
1 回答
156 浏览

ssl - ITfoxtec - ADFS SAML2 根据验证程序,远程证书无效

我是 SAML2 身份验证的新手,并尝试过使用 ITfoxtec。运行我的应用程序时出现此错误

AuthenticationException:根据验证程序,远程证书无效。System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken 消息,AsyncProtocolRequest asyncRequest,ExceptionDispatchInfo 异常)

HttpRequestException:无法建立 SSL 连接,请参阅内部异常。System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(流流,SslClientAuthenticationOptions sslOptions,CancellationToken cancelToken)

WebException:无法建立 SSL 连接,请参阅内部异常。根据验证程序,远程证书无效。System.Net.HttpWebRequest.GetResponse()

我正在使用使用 OpenSSL 生成的证书,并将 pfx 证书安装在 MMC 的受信任的根 CA 存储中。我不确定为什么它仍然会导致我出错。我还已经在我的 ADFS 中将该应用程序添加为依赖信任方。## 标题 ##

这是我的 StartUp.cs 的片段

这是我的appsettings.json

0 投票
1 回答
558 浏览

single-sign-on - 如果存在活动的 SAML 会话,ADFS 不会将注销请求转发给身份提供者

我有下一个组件:

  • RP-1(由 Ws-Fed、WIF 连接)
  • RP-2(通过 SAML,Federation Provider 连接,实际上是另一个 ADFS)
  • MY-ADFS(ADFS Server 2019 作为主要 STS)
  • MY-IP(独立的身份提供者网络服务,身份服务器 4)

因此,当我从 RP-1(Ws-Fed) 发出一个单独的请求时,一个简单的 Ws-Fed 注销会形成一个对 ADFS 的请求:

获取 https://MY-ADFS/adfs/ls/

接下来 ADFS 会重定向到 IP:

获取https://MY-IP/WsFederation

  • :wsignout1.0
  • 回复:https://MY-ADFS/adfs/ls/?redirectContextId=2dd581d2-6e02-4476-915b-a581e3c855d4

因此用户从 ADFS 和 IP 清除会话。- 正如预期的那样。

但是,如果在注销之前,已转换到 SAML RP 并且 SAML 会话变为活动状态,则在退出 ADFS 时会出现错误:

MSIS7055:并非所有 SAML 会话参与者都正确注销。建议关闭浏览器。

为了解决这个问题,我将 SAML 依赖方信任中的注销端点 (URL) 配置为:

https://RP-2/adfs/ls/ ?wa=wsignout1.0

使用POST绑定。在这些更改之后,错误消失了。但是现在 ADFS 不再使注销重定向到 IP,而是将 SAML 注销重定向到 RP-2:

发布 https://RP-2/adfs/ls/?wa= wsignout1.0

  • SAML 请求:PHNhbWxwOkxvZ291dFJl

结果,我没有切换到 IP,而是停留在 RP-2(ADFS 也是)页面上,上面写着退出成功。但是,用户在 IP 端仍然有一个活动会话(cookies)。

这里有几个问题:

  • 目前尚不清楚为什么 ADFS 会使用 SAML 活动会话更改调用链。
  • 目前尚不清楚如何排除 SAML 注销重定向,或强制 ADFS 也注销到 IP。
0 投票
1 回答
119 浏览

adfs - ADFS 多主机名绑定

我正在寻找如何将主机名绑定添加到 ADFS,就像您在 IIS 中为网站添加其他主机名绑定一样。例如 adfs.mydomain.com 是用于 ADFS 的域。另外我想添加 server1.adfs.mydomain.com。这与 SSL 证书无关。我知道这可以像我在即将退休的 ADFS 服务器上那样完成。

对于那些问我为什么要这样做的人。负载均衡器后面有一组 ADFS 服务器,它们都使用 adfs.mydomain.com 主机名。我想要每个服务器的特定绑定,例如 server1.adfs.mydomain.com,这样我就可以从我们的监控系统中探测特定服务器上的服务,以验证 ADFS 服务是否在线。

旧的 ADFS 服务器是 Win2k16 附带的任何角色服务。新的 ADFS 服务器是 Win2k22 上的角色服务。这曾经更容易在 google 上找到,但现在与 adfs 相关的帖子中充斥着对 Azure 和 O365 实现的引用。任何人都知道如何添加额外的绑定?我觉得以前它是 powershell 或 netsh 命令,但我可能是错的。

0 投票
0 回答
31 浏览

azure - 不在域上时从 azure 重定向到本地 adfs 登录页面时出现 404 错误

我们有一个带有 azure 的混合 AD 域。尝试登录 Azure 门户时,我们收到 404 错误。当计算机在域网络上时,这可以正常工作。我看到 Web 浏览器正在尝试使用不同的 SSL 证书,而不是 ADFS 登录所需的证书。任何帮助,将不胜感激。[在此处输入图片描述][1]

卡尔

这是我不在域 [1] 时尝试访问的内容: https ://i.stack.imgur.com/YgGw6.png 这就是它应该做的事情 [2]:https://i.stack。 imgur.com/tuXR9.png

0 投票
2 回答
25 浏览

adfs - 为什么 AD FS 2016 执行此 SQL 查询?

我们无法弄清楚为什么 AD FS 2016 在 SQL 属性存储上执行某个 SQL 查询。

  • 当我们重命名数据库以准备停用该数据库时,首先出现了问题。我们重命名它以查看是否有任何东西在使用它。
  • 重命名后,AD FS 2016 开始抛出无法登录数据库的错误。这并不奇怪,除了它正在执行的 SQL 查询在任何依赖方或 OAuth 注册的声明规则中的任何地方都找不到。
  • 那么,是否存在可以放置全局策略的位置,该策略将在每次请求令牌时执行并应用于每个依赖方,因为 SQL 查询不在请求令牌的依赖方上?

这是 AD FS 2016 在其事件查看器中报告的完整错误。

在 SQL 属性存储中执行查询时发生错误。

其他数据连接信息:POLICY3907:服务器=已编辑;数据库=已编辑。查询:SELECT [REDACTED] FROM [REDACTED].[REDACTED] WHERE [REDACTED]=@PARAMETER0 参数:REDACTED,

用户操作 检查异常详细信息以执行以下一项或多项操作(如果适用)。验证到 SQL 属性存储的连接字符串是否有效。确保连接字符串可以访问 SQL 属性存储并且 SQL 属性存储存在。验证 SQL 查询和参数是否有效。

异常详细信息:Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SqlAttributeStoreQueryExecutionException:POLICY3904:执行查询:'SELECT [REDACTED] FROM [REDACTED].[REDACTED] WHERE [REDACTED]=@PARAMETER0' 参数:'REDACTED, ' 失败的。连接信息:'POLICY3907: Server=REDACTED;Database=REDACTED.'。---> System.Data.SqlClient.SqlException:无法打开登录请求的数据库“已编辑”。登录失败。用户“已编辑”登录失败。在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 次重试,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal& 连接)在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 重试)在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SyncQueryExecutor.BeginExecuteQuery(String query, List1 queryParameters,AsyncCallback 回调,对象状态)
---内部异常堆栈跟踪结束---在 Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SyncQueryExecutor.BeginExecuteQuery(字符串查询,列表1 queryParameters, AsyncCallback callback, Object state) at Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SqlAttributeStore.BeginExecuteQuery(String query, String[] queryParameterValues, AsyncCallback callback, Object state) at Microsoft.IdentityServer.ClaimsPolicy.Language.AttributeLookupIssuanceStatement.BeginEvaluate(IEnumerable1 匹配声明,PolicyContext policyContext,AsyncCallback 回调,对象状态)

System.Data.SqlClient.SqlException (0x80131904):无法打开登录请求的数据库“已编辑”。登录失败。用户“已编辑”登录失败。在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 身份,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionPool 池,字符串 accessToken,布尔 applyTransientFaultHandling,SqlAuthenticationProviderManager sqlAuthProviderManager ) 在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项,DbConnectionPoolKey poolKey,对象 poolGroupProviderInfo,DbConnectionPool 池,DbConnection owningConnection,1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 次重试,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal& 连接)在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 重试)在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SyncQueryExecutor.BeginExecuteQuery(String query, List1 queryParameters,AsyncCallback 回调, 对象状态) ClientConnectionId:a7e6a99c-b3c5-495d-be39-7d700321a5c3 错误号:4060,State:1,Class:11

0 投票
0 回答
20 浏览

single-sign-on - 将声明提供者信任 ID 传递给 ADFS SSO 令牌

我的站点需要区分用户已通过特定 ClaimProviderTrus 登录的事实。我可以在我需要的 ClaimProvider 的声明规则中添加一个标志,我可以依赖我的站点(中继方信任)。但我对以下内容感兴趣:是否有可能以某种方式获取 SSO 令牌以及其他属性,即在 ADFS 中注册的声明提供者的地址或名称,通过该地址或名称来识别用户。这将使我能够在没有特殊规则维护的情况下将它们与我需要的进行比较。