问题标签 [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.
asp.net-mvc - 使用 Thinktecture IdentityServer v2 实现联合安全
基础设施布局
蓝色线发起登录请求。
红线是登录成功后的响应。我从 idp(janie-pc/ofsidentityservice) 到 fp(janie-pc/federationservice) 遇到了 404。
配置
我需要做什么才能使此流程正常工作?
我正在使用最新版本(v2.3):https ://github.com/thinktecture/Thinktecture.IdentityServer.v2/releases
看起来我可能需要指定一个重定向 url,但是 thinktecture 需要这个 url 是什么?
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 联合客户端从断言中剥离签名,我怎样才能让它不这样做?
authentication - WS-TRUST 和 WS-FED 的实时使用情况是什么
我阅读了 2 个 WS* 协议,WS-TRUST 和 WS-FED。但我对如何使用这些协议的实时场景感到困惑。谁能告诉我在哪些情况下我可以使用 WS-TRUST 和 WS-FED ?如果有人能分辨出这两种协议中哪一个最好用于保护 REST 服务和 normal.ASPX 页面,那将非常有帮助。
asp.net-mvc - 使用 WSFederationAuthenticationModule 时如何在会话过期后正确处理注销请求?
我正在使用 WSFederationAuthenticationModule 进行身份验证。当用户未通过身份验证时,它会将他们相应地重定向到 ADFS Web 代理。ADFS cookie 的持续时间比应用会话长,因此有时它们会直接循环回应用程序。
几乎每次这是我想要的,用户尝试做某事,如果会话过期并且他们回来(在再次登录或发现 cookie 仍然很好之后),它会重定向他们,然后他们可以做他们想做的事。但是,如果他们单击“注销”,我希望他们被注销。但是模块正在拦截并将它们发送回来,然后一旦会话恢复,它们就必须再次单击“注销”。
注销是一个 MVC api 控制器操作。我不确定我是否想从安全性后面取出它,因为它还会触发应用程序的一些清理工作(我意识到这也是一个问题,因为如果他们从不点击注销,这些事情可能不会发生,但是是一个不同的问题)。
我觉得我必须在 WSFederationAuthenticationModule 和 ADFS 中遗漏一些东西......将注销操作设为匿名/公共操作感觉有些不对劲。在 WSFederationAuthenticationModule 的意图中必须对此进行一些考虑,但我似乎无法确定它。
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 失败并出现以下异常:
azure - microsoft wsfed 通用端点到 login.microsoftonline.com 的查询参数
我正在使用 OwinwsFederation
包在 Windows azure 上进行 WAAD 登录。
我的问题是我想传递id=501358
给https://login.microsoftonline.com/login.srf
,但我不知道这是否可能。我正在将用户https://login.windows.net/common/wsfed
重定向到再次重定向到的用户,login.microsoftonline.com
但它不会传递查询字符串。只是为了更清楚:
我正在重定向到:
基于wsFederationMessage
被重定向到:
我想&site_id=501358
添加到login.microsoftonline.com/login.srf
我的理解wctx
是在状态返回到我的站点时传递状态。
c# - 使用联合安全性保护服务器应用程序之间的 WCF 服务调用
我有两个使用相同 STS 进行身份验证的 MVC 站点。我需要创建一个 WCF 服务作为允许另一个站点检索数据的站点之一的一部分。
这些站点可能位于可通过 Internet 访问的不同计算机上(尽管目前它们位于同一台计算机上),并且 WCF 服务应该只能从客户端站点访问。用于登录客户端站点的身份验证令牌应传递给 WCF 服务。
我一直在研究可用的不同 WS-Security 选项(传输、消息等),但它并没有完全下降 100%,我觉得我最终会实现一些看起来安全但实际上并不安全的东西,因为缺乏理解。非常感谢任何帮助。
编辑:
我的第一次尝试是使用传输层安全性并在 IIS 中使用需要 SSL 设置 WCF 服务虚拟目录。然而,这给我留下了一个错误:
“根据验证程序,远程证书无效。”
而且我无法确保特定客户端正在连接到服务,只能确保客户端拥有来自受信任 CA 的证书。至少据我所知。我可能在这里遗漏了一些重要的东西。
identity - 在 ThinkTecture IdentityServer 中与 hrd 一起使用的本地 wsfed 端点
我正试图在 ThinkTecture IdentityServer 中设置 Home Realm Discovery。我有两个外部身份提供者,但也想从同一屏幕链接到本地 wsfed 端点。我在GitHub 上看到了 Brock对这个问题的回应,但我无法理解这个概念。我已将 IdSrv wsfed 端点注册为身份提供者,但如何将 IdSrv hrd 配置为 RP?目前我收到服务器错误:无效领域。领域实际上等于常规配置中的站点 ID?
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 证书,因为这是一个行为配置,并且似乎没有任何方法可以为颁发者端点设置行为。
acs - 在 WSFed 登录后将来自身份提供者的参数传递回依赖方
登录后有没有办法将值传递回依赖方?例如在querystring
?
背景:
我们要做的是通知依赖方用户采取了哪些操作,例如登录或注册,以便依赖方可以向用户显示适当的确认消息。因为依赖方可能会链接到注册页面,但随后用户登录而不是注册,因此依赖方不应显示“感谢加入我们”通知面板。
我尝试添加&lastaction=signup
,returnUrl
但是当通过 Azure ACS 发布表单时,它会丢失。
下一次尝试是尝试添加lastaction
到wreply
,如下所示:
在 Fiddler 中,我可以看到下一个 POST 到 ACS 发布到https://xxxxx.accesscontrol.windows.net/v2/wsfederation?lastaction=hello 但是最后一个操作没有传递给我的依赖方。