问题标签 [ws-federation]

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 回答
892 浏览

asp.net-mvc - 使用 Thinktecture IdentityServer v2 实现联合安全

基础设施布局

蓝色线发起登录请求。

红线是登录成功后的响应。我从 idp(janie-pc/ofsidentityservice) 到 fp(janie-pc/federationservice) 遇到了 404。

基础设施布局

配置

thinktecture 身份服务器 v2 配置

我需要做什么才能使此流程正常工作?

我正在使用最新版本(v2.3):https ://github.com/thinktecture/Thinktecture.IdentityServer.v2/releases

看起来我可能需要指定一个重定向 url,但是 thinktecture 需要这个 url 是什么?

0 投票
0 回答
502 浏览

wcf - 具有已颁发令牌的 WCF 联合客户端不发送 SAML 断言签名

我有一个直接针对 WIF/WCF 活动 STS 进行身份验证的应用程序。该应用程序也是一个被动 STS,充当网站依赖方的 WS-Federation 端点。

当用户登录网站 RP 时,他们被重定向到被动 STS 进行身份验证(用户名和密码),并且在两步过程中,被动 STS(充当主动 RP)向 STS 发送问题 RST,并收到一个签名的 SAML 令牌作为回报。对于第二步,被动 STS 向 STS 发送第二个 Issue RST,使用上一步中收到的令牌进行身份验证。

问题在于,在第二步中,WCF 客户端在将<Signature>元素发送回 SOAP 标头中的 STS 之前从 SAML 断言中剥离元素。我已经验证(通过测试序列化传递给的令牌)当我调用生成的通道ChannelFactory<TChannel>.CreateChannelWithIssuedToken时,令牌仍然存在签名。IWSTrustContract.Issue

这是应该提供给 STS 的断言 XML:

根据服务跟踪查看器,这就是 STS 收到的内容:

当然,STS 无法验证断言的签名,因为它已被剥离,它无法验证客户端并为网站 RP 颁发不记名令牌。

为什么 WCF 联合客户端从断言中剥离签名,我怎样才能让它不这样做?

0 投票
1 回答
129 浏览

authentication - WS-TRUST 和 WS-FED 的实时使用情况是什么

我阅读了 2 个 WS* 协议,WS-TRUST 和 WS-FED。但我对如何使用这些协议的实时场景感到困惑。谁能告诉我在哪些情况下我可以使用 WS-TRUST 和 WS-FED ?如果有人能分辨出这两种协议中哪一个最好用于保护 REST 服务和 normal.ASPX 页面,那将非常有帮助。

0 投票
1 回答
1429 浏览

asp.net-mvc - 使用 WSFederationAuthenticationModule 时如何在会话过期后正确处理注销请求?

我正在使用 WSFederationAuthenticationModule 进行身份验证。当用户未通过身份验证时,它会将他们相应地重定向到 ADFS Web 代理。ADFS cookie 的持续时间比应用会话长,因此有时它们会直接循环回应用程序。

几乎每次这是我想要的,用户尝试做某事,如果会话过期并且他们回来(在再次登录或发现 cookie 仍然很好之后),它会重定向他们,然后他们可以做他们想做的事。但是,如果他们单击“注销”,我希望他们被注销。但是模块正在拦截并将它们发送回来,然后一旦会话恢复,它们就必须再次单击“注销”。

注销是一个 MVC api 控制器操作。我不确定我是否想从安全性后面取出它,因为它还会触发应用程序的一些清理工作(我意识到这也是一个问题,因为如果他们从不点击注销,这些事情可能不会发生,但是是一个不同的问题)。

我觉得我必须在 WSFederationAuthenticationModule 和 ADFS 中遗漏一些东西......将注销操作设为匿名/公共操作感觉有些不对劲。在 WSFederationAuthenticationModule 的意图中必须对此进行一些考虑,但我似乎无法确定它。

0 投票
2 回答
1622 浏览

ws-federation - 为什么 `IdSrv` 在 WS Federation 响应 POST 到 issue/hrd 时会抛出 `EncryptedTokenDecryptionFailedException` 异常?

我正在尝试使用Thinktecture.IdentityServer V. 2.

我有一个网站设置为依赖方,并且该网站设置为将身份验证推迟到/issue/hrd身份服务器。这似乎按预期工作。

此外,我还通过 IdSrv 管理页面向身份服务器添加了身份提供程序(ADFS)。身份提供者配置为

  • 标识符
  • 显示名称
  • 它已启用
  • 家庭领域发现已启用
  • WSStar 被选为类型
  • 填充了 WS-Federation 端点
  • 发行人指纹已填写

身份提供者配置为信任我的身份服务器。

当网站 (RP) 需要身份验证时,它重定向到身份服务器,该服务器进一步重定向到身份提供者,我得到身份提供者的登录屏幕并且能够登录,但是返回到/issue/hrd身份服务器上的 HTTP POST 失败并出现以下异常:

0 投票
0 回答
1532 浏览

azure - microsoft wsfed 通用端点到 login.microsoftonline.com 的查询参数

我正在使用 OwinwsFederation包在 Windows azure 上进行 WAAD 登录。

我的问题是我想传递id=501358https://login.microsoftonline.com/login.srf,但我不知道这是否可能。我正在将用户https://login.windows.net/common/wsfed重定向到再次重定向到的用户,login.microsoftonline.com但它不会传递查询字符串。只是为了更清楚:

我正在重定向到:

基于wsFederationMessage

被重定向到:

我想&site_id=501358添加到login.microsoftonline.com/login.srf我的理解wctx是在状态返回到我的站点时传递状态。

0 投票
1 回答
417 浏览

c# - 使用联合安全性保护服务器应用程序之间的 WCF 服务调用

我有两个使用相同 STS 进行身份验证的 MVC 站点。我需要创建一个 WCF 服务作为允许另一个站点检索数据的站点之一的一部分。

这些站点可能位于可通过 Internet 访问的不同计算机上(尽管目前它们位于同一台计算机上),并且 WCF 服务应该只能从客户端站点访问。用于登录客户端站点的身份验证令牌应传递给 WCF 服务。

我一直在研究可用的不同 WS-Security 选项(传输、消息等),但它并没有完全下降 100%,我觉得我最终会实现一些看起来安全但实际上并不安全的东西,因为缺乏理解。非常感谢任何帮助。

编辑:

我的第一次尝试是使用传输层安全性并在 IIS 中使用需要 SSL 设置 WCF 服务虚拟目录。然而,这给我留下了一个错误:

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

而且我无法确保特定客户端正在连接到服务,只能确保客户端拥有来自受信任 CA 的证书。至少据我所知。我可能在这里遗漏了一些重要的东西。

0 投票
0 回答
794 浏览

identity - 在 ThinkTecture IdentityServer 中与 hrd 一起使用的本地 wsfed 端点

我正试图在 ThinkTecture IdentityServer 中设置 Home Realm Discovery。我有两个外部身份提供者,但也想从同一屏幕链接到本地​​ wsfed 端点。我在GitHub 上看到了 Brock对这个问题的回应,但我无法理解这个概念。我已将 IdSrv wsfed 端点注册为身份提供者,但如何将 IdSrv hrd 配置为 RP?目前我收到服务器错误:无效领域。领域实际上等于常规配置中的站点 ID?

0 投票
2 回答
1176 浏览

ws-federation - App.Config for Federated Security 与 Thinktecture IdentityServer 中的客户端证书

目前,我可以通过首先通过 WS-Trust 端点使用证书凭证从 STS 建立安全令牌,然后在通道工厂上调用 CreateChannelWithIssuedToken() 来建立带有 IssuedToken 的 WCF 通道。请参阅如何使用 Thinktecture IdentityServer 指定证书作为 wsTrustChannel 的凭据

但是,不要这样做:

理想情况下,我只想这样做(并让安全令牌的颁发者根据传递的证书自动颁发令牌)。

我的问题是 - 可以像下面这样配置绑定来指定 ThinkTecture IdentityServer STS 是安全令牌的颁发者吗?

如果是这样 - 我在配置这部分绑定时遇到了很多麻烦:

我的主要困惑是:issuer config 元素似乎将绑定、行为和端点都封装在一个元素中。可以配置绑定 - 显然必须配置,因为上面的 issuer 元素抱怨没有配置绑定。但是如何为颁发者通道指定 SSL 证书,因为这是一个行为配置,并且似乎没有任何方法可以为颁发者端点设置行为。

0 投票
1 回答
299 浏览

acs - 在 WSFed 登录后将来自身份提供者的参数传递回依赖方

登录后有没有办法将值传递回依赖方?例如在querystring

背景:

我们要做的是通知依赖方用户采取了哪些操作,例如登录或注册,以便依赖方可以向用户显示适当的确认消息。因为依赖方可能会链接到注册页面,但随后用户登录而不是注册,因此依赖方不应显示“感谢加入我们”通知面板。

我尝试添加&lastaction=signupreturnUrl但是当通过 Azure ACS 发布表单时,它会丢失。

下一次尝试是尝试添加lastactionwreply,如下所示:

在 Fiddler 中,我可以看到下一个 POST 到 ACS 发布到https://xxxxx.accesscontrol.windows.net/v2/wsfederation?lastaction=hello 但是最后一个操作没有传递给我的依赖方。