まず、IsSessionMode = trueを設定して Cookie のサイズを小さくする必要がありました
2 つの RP インスタンスのバランスをとる必要があります。RP インスタンスを持つ 2 つの異なるマシンで次の手順を実行しました。
1) ServiceConfigurationCreated イベントにサブスクライブ
private void WSFederationAuthenticationModule_ServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
{
X509Certificate2 certificate = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, ConfigHelper.FrontendCertificate);
var sessionTransforms = new List<CookieTransform>(new CookieTransform[]
{
new DeflateCookieTransform(),
new RsaEncryptionCookieTransform(certificate),
new RsaSignatureCookieTransform(certificate)
});
SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
}
2) asp.net状態サービスへのセッションを奪いました
問題:
STS にログオンしようとすると、RP から STS への無限のリダイレクトが発生します
理由がわかりません。トークンはセッションに保存されます(IsSessionMode = true)。セッションは、asp.net 状態サービスによって 2 つの異なるホスト間で共有されます。
何が問題ですか?私は何を取りこぼしたか?
私は何か重要なことを理解していないと思います。