在SSO情况下处理应用程序初始化的位置?

时间:2016-09-16 19:48:52

标签: single-sign-on http-redirect identityserver3 owin-middleware

我有App1和App2,使用带有Active Directory的IdentityServer3进行SSO。

每个应用都有自己的用户和角色。我创建了一个ClaimsTransformation OWIN中间件,获取用户/角色,序列化为cookie,然后恢复后续调用。这很有效。

但我在哪里处理初始用户注册?我无法在身份验证中执行此操作,因为如果App1用户登录,则转到App2作为新用户,他将跳过身份验证。

如果我在中间件中执行此操作,当我尝试将用户重定向到注册/配置文件页面时,该重定向会再次被中间件命中,从而导致重定向循环。

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

没关系,这一切都错了。对于使用Owin.Security.OpenIdConnect的.NET,应该在SecurityTokenValidated中完成应用程序初始化。跳过身份验证问题是因为我没有设置cookie名称。

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOption
  {
     SignInAsAuthenticationType = "Cookies",
     Notifications = new OpenIdConnectAuthenticationNotification 
     {
         SecurityTokenValidated = n => { ... }