【发布时间】:2012-10-04 20:58:01
【问题描述】:
所以这里是设置。我有一个 STS 提供程序和 2 个 ASP.NET MVC 站点都信任同一个 STS 提供程序。用户来到站点 A 并被重定向到 STS 提供者被动登录,正确地进行身份验证,并按预期重定向回站点“A”。这一切都很好。我可以使用以下命令在站点“A”的代码中查看令牌和身份:
IClaimsPrincipal claimsPrincipal = Thread.CurrentPrincipal as IClaimsPrincipal;
IClaimsIdentity claimsIdentity = (IClaimsIdentity)claimsPrincipal.Identity;
现在站点“A”上有一个指向站点“B”的链接,该链接信任 same STS 提供者。问题是当我导航到站点“B”时,声明信息不存在,并且用户未自动进行身份验证。根据 STS 和 WIF 文档,应发生以下情况:
“流程像往常一样开始,用户在站点 A 上向 B 请求页面并被重定向到 STS 以获取令牌。但是,这一次用户已经通过了身份验证 STS 站点,因为存在由 STS 表示的活动会话 曲奇饼。这意味着对 STS 页面的请求直接导致执行 未向用户显示的 SecurityTokenService 发布序列 任何用于凭据收集的 UI。 令牌是静默发行的 并按照通常的顺序转发给 B。来自 当用户点击指向 B 的链接时,浏览器会显示 从 B 请求的页面,只有地址栏的一些闪烁 浏览器将放弃发生某些身份验证的事实 在引擎盖下。这几乎就是单点登录 (SSO) 的含义: 用户经历了仅登录一次的体验,并且从 系统上的那一刻能够访问更多的可靠方 无需再次提示用户输入凭据。”
有谁知道在 STS 提供者、站点 A 或站点 B 中明确需要发生什么以使其正常工作?请记住 STS 和站点“A”运行良好;只是站点“B”没有获得 SSO 功能。
谢谢!
【问题讨论】:
-
那么当用户导航到 B 时会发生什么?
标签: c# asp.net wif sts-securitytokenservice