当客户端浏览器首次向Web应用程序提供有效的SAML令牌时(通过POST),应用程序将处理令牌并返回身份验证cookie。
此cookie是否是从表单身份验证返回的标准ASPXAUTH cookie,还是表示/包含SAML令牌?
如果是后者,那么IIS上的.NET Web应用程序的标准ADFS设置中是否有配置允许在验证初始令牌后切换到ASPXAUTH?
这样做会有不利之处吗?
答案 0 :(得分:2)
作为登录过程的一部分,一旦收到并接受了令牌,WSFederationAuthenticationModule
就会调用SessionAuthenticationModule
s WriteSessionTokenToCookie
方法:
public void WriteSessionTokenToCookie(SessionSecurityToken sessionToken)
{
//Error checking omitted
byte[] buffer = handler.WriteToken(sessionToken);
SessionSecurityTokenCacheKey key = new SessionSecurityTokenCacheKey(this.CookieHandler.Path, sessionToken.ContextId, sessionToken.KeyGeneration);
DateTime expiryTime = DateTimeUtil.Add(sessionToken.ValidTo, base.FederationConfiguration.IdentityConfiguration.MaxClockSkew);
handler.Configuration.Caches.SessionSecurityTokenCache.AddOrUpdate(key, sessionToken, expiryTime);
this.CookieHandler.Write(buffer, sessionToken.IsPersistent, sessionToken.ValidTo);
}
正如您所看到的那样,正在编写某种形式的令牌(适当地序列化)作为cookie。确切地说,这取决于某些选项 - 例如,SaveBootstrapContext
可能会影响存储的内容。如果启用此选项,则是,我相信SAML令牌存储在cookie中。
那么,存储什么cookie?这取决于this.CookieHandler
正在做什么。默认情况下,这是ChunkedCookieHandler
,最终(再次,默认情况下)将上述方法调用的二进制blob分成多个较小的blob,并将其存储在{{1}形式的一系列cookie中},FedAuth1
等
IIS上的.NET Web应用程序的标准ADFS设置中是否有配置,以便在验证初始令牌后允许切换到ASPXAUTH
我不知道。