0

クライアント ブラウザが最初に (POST によって) 有効な SAML トークンを Web アプリケーションに提供すると、アプリケーションはトークンを処理し、認証 Cookie を返します。

この Cookie は、フォーム認証から返される標準の ASPXAUTH Cookie ですか、それとも SAML トークンを表している/含んでいますか?

後者の場合、初期トークンが検証されたら ASPXAUTH に切り替えることができるように、IIS 上の .NET Web アプリケーションの標準 ADFS セットアップに構成がありますか?

これを行うことのデメリットはありますか?

4

1 に答える 1

2

ログイン プロセスの一環として、トークンが受信されて受け入れられると、はsメソッドWSFederationAuthenticationModuleを呼び出します。SessionAuthenticationModuleWriteSessionTokenToCookie

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 に格納しFedAuth1ますFedAuth2

初期トークンが検証されたら ASPXAUTH に切り替えることができるように、IIS 上の .NET Web アプリケーションの標準 ADFS セットアップに構成がありますか?

私の知る限りではありません。

于 2013-09-30T09:38:01.717 に答える