我有App1和App2,使用带有Active Directory的IdentityServer3进行SSO。
每个应用都有自己的用户和角色。我创建了一个ClaimsTransformation OWIN中间件,获取用户/角色,序列化为cookie,然后恢复后续调用。这很有效。
但我在哪里处理初始用户注册?我无法在身份验证中执行此操作,因为如果App1用户登录,则转到App2作为新用户,他将跳过身份验证。
如果我在中间件中执行此操作,当我尝试将用户重定向到注册/配置文件页面时,该重定向会再次被中间件命中,从而导致重定向循环。
有什么建议吗?感谢。
答案 0 :(得分:0)
没关系,这一切都错了。对于使用Owin.Security.OpenIdConnect的.NET,应该在SecurityTokenValidated中完成应用程序初始化。跳过身份验证问题是因为我没有设置cookie名称。
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOption
{
SignInAsAuthenticationType = "Cookies",
Notifications = new OpenIdConnectAuthenticationNotification
{
SecurityTokenValidated = n => { ... }