EinführungUngültige Nachrichtensignatur, wenn sie auf Cluster OpenID-Provider laufen
Wir haben ein OpenID-Provider, die wir mit der DotNetOpenAuth Komponente erstellt. Alles funktioniert gut, wenn wir den Provider auf einem einzigen Knoten ausführen, aber wenn wir den Provider in einen load balanced Cluster verschieben, wo mehrere Server Anfragen für jede Sitzung bearbeiten, bekommen wir das Problem mit der Nachrichtensignierung, da die DotNetOpenAuth-Komponente etwas Einzigartiges zu verwenden scheint von jedem Cluster-Knoten, um die Signatur zu erstellen.
Exception
DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException: Message signature was incorrect.
at DotNetOpenAuth.OpenId.ChannelElements.SigningBindingElement.ProcessIncomingMessage(IProtocolMessage message) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\OpenId\ChannelElements\SigningBindingElement.cs:line 139
at DotNetOpenAuth.Messaging.Channel.ProcessIncomingMessage(IProtocolMessage message) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\Messaging\Channel.cs:line 940
at DotNetOpenAuth.OpenId.ChannelElements.OpenIdChannel.ProcessIncomingMessage(IProtocolMessage message) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\OpenId\ChannelElements\OpenIdChannel.cs:line 172
at DotNetOpenAuth.Messaging.Channel.ReadFromRequest(HttpRequestInfo httpRequest) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\Messaging\Channel.cs:line 378
at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.GetResponse(HttpRequestInfo httpRequestInfo) in c:\BuildAgent\work\7ab20c0d948e028f\src\DotNetOpenAuth\OpenId\RelyingParty\OpenIdRelyingParty.cs:line 493
Setup-
Wir haben die Maschine Config Setup haben die gleiche Maschine Schlüssel auf allen Cluster-Knoten zu verwenden, und wir haben Setup eine Sitzung aus einem Prozess mit SQL Server.
Frage
Wie können wir den Schlüssel, die von DotNetOpenAuth konfigurieren ihre Nachrichten signieren, damit die Client-Antworten von allen Servern im Cluster in der gleichen Sitzung vertrauen?
Ich denke, wir haben das gleiche Problem: http://StackOverflow.com/Questions/2505565/Dotnetopenauth-Message-Signature-Was-incorrect –
Wir hatten ein ähnliches Problem, aber stattdessen entschieden, einen Nonce-Store, der schön war zu erstellen einfach und funktioniert ziemlich gut auf unserem Bauernhof/Garten Setups. Aber das Problem, das wir jetzt haben, ist mit unserem eigenen Provider, den wir versuchen, auf eine Farm zu ziehen, nicht der RP. – Garth