使用WIFI实施SSO

时间:2014-11-07 13:05:27

标签: single-sign-on wif

我想使用WIF和STS(声明基本身份验证)在我的MVC应用程序中实现SSO

  1. 我有单个数据库,其中包含用户可以访问的用户和应用程序(MVC应用程序条目)?

  2. 用户可以访问一个或多个MVC应用程序。

  3. 每个应用程序都有指向其他应用程序的链接。

  4. 如果用户登录到1个应用程序并且他有权访问2个应用程序,则必须直接对2个应用程序进行身份验证(SSO应该注意)

  5. 我已经实现了Identity manger和SecurityTokenService类。

    我正在通过以下代码创建令牌

    ClaimsIdentity identity = new ClaimsIdentity(AuthenticationTypes.Federation);
            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userId.ToString()));
            identity.AddClaim(new Claim(ClaimTypes.Name, userName));
            foreach (var role in roles)
            {
                identity.AddClaim(new Claim(ClaimTypes.Role, role));
            }
            ClaimsPrincipal principal = new ClaimsPrincipal(identity);
    
            var token = new System.IdentityModel.Tokens.SessionSecurityToken(principal);
            System.IdentityModel.Services.FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(token);
    

    现在有人能告诉我如何为2个网站验证用户身份,当他点击2个网站链接时,如果他有权访问该网站,则不应该要求他登录。

0 个答案:

没有答案