0

WS-FED を使用してユーザーを認証する ThinkTecture ソフトウェアを実行する 2 つの IDP サーバーを備えた ASP.NET Web サイトがあります。

IDP サーバー #1 でログインすると、正常にログインでき、IDP が Web サイトにトークンを発行し、期待どおりにセッション トークンを取得し、Web サイトに完全にアクセスできます。

IDP サーバー #2 にログインすると、正常にログインでき、IDP はおそらくセッション トークンに変換しようとする SAML トークンを使用して、Web サイトにリダイレクトします。残念ながら、この時点で、私のウェブサイトから次のエラーが表示されます。

Specified argument was out of the range of valid values.
Parameter name: validFrom

およびスタック トレース:

System.IdentityModel.Tokens.SessionSecurityToken..ctor(ClaimsPrincipal claimsPrincipal, UniqueId contextId, String id, String context, Byte[] key, String endpointId, Nullable`1 validFrom, Nullable`1 validTo, UniqueId keyGeneration, Nullable`1 keyEffectiveTime, Nullable`1 keyExpirationTime, SctAuthorizationPolicy sctAuthorizationPolicy, Uri securityContextSecurityTokenWrapperSecureConversationVersion) +1011230
System.IdentityModel.Tokens.SessionSecurityToken..ctor(ClaimsPrincipal claimsPrincipal, UniqueId contextId, String context, String endpointId, Nullable`1 validFrom, Nullable`1 validTo, SymmetricSecurityKey key) +317
System.IdentityModel.Tokens.SessionSecurityTokenHandler.CreateSessionSecurityToken(ClaimsPrincipal principal, String context, String endpointId, DateTime validFrom, DateTime validTo) +306
System.IdentityModel.Services.SessionAuthenticationModule.CreateSessionSecurityToken(ClaimsPrincipal principal, String context, DateTime validFrom, DateTime validTo, Boolean isPersistent) +313
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase request) +1079
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +123940
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

しばらくすると (約 10 分)、次のエラーが表示され始めます。

ID4148: The Saml2SecurityToken is rejected because the SAML2:Assertion's NotOnOrAfter condition is not satisfied.
NotOnOrAfter: '17/07/2014 17:01:07'
Current time: '17/07/2014 17:10:08' 

ThinkTecture の連中によって提案されたスライディング セッション コードを使用しています。

protected void Application_Start()
{
    PassiveModuleConfiguration.EnableSlidingSessionExpirations();
}

ページを更新しても、NotOnOrAfter は数時間同じままです。

1 つの IDP サーバーは正常に動作し、もう 1 つの IDP サーバーは動作しないため、2 番目の IDP サーバーの構成が何らかの形で異なっているとしか考えられません。2 番目の IDP のトークンの有効期間は 10 時間に設定されています。

3つのサーバーすべてが同じ時間です。

SAML アサーションは、Web サーバー (IIS) ではなく、IDP によって設定されたと思いましたか?

何か案は?

4

0 に答える 0