0

当客户端浏览器首次向 Web 应用程序(通过 POST)提供有效的 SAML 令牌时,应用程序会处理该令牌并返回一个身份验证 cookie。

此 cookie 是从表单身份验证返回的标准 ASPXAUTH cookie,还是表示/包含 SAML 令牌?

如果是后者,那么在 IIS 上的 .NET Web 应用程序的标准 ADFS 设置中是否有配置允许在验证初始令牌后切换到 ASPXAUTH?

这样做会有坏处吗?

4

1 回答 1

2

作为登录过程的一部分,一旦令牌被接收并接受,WSFederationAuthenticationModule调用SessionAuthenticationModulesWriteSessionTokenToCookie方法:

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,并将它们存储在一系列形式的 cookie 中FedAuth1FedAuth2等等。

IIS 上的 .NET Web 应用程序的标准 ADFS 设置中是否有配置允许在验证初始令牌后切换到 ASPXAUTH

据我所知不是。

于 2013-09-30T09:38:01.717 回答