Ошибка 404 для / saml2 / idp / после обновления Kentor.AuthServices до Sustainsys.Saml2 - PullRequest
0 голосов
/ 15 января 2019

Работал с Kentor.AuthServices.Owin 0.18.0 и обычно с этим журналом трафика.

200 GET https://some-saml2-idp.com/saml2/idp/SSO_1..39%3D&RelayState=Os..j
302 POST https://demo.local/AuthServices/Acs
200 GET for the set RedirectUri

После обновления до Sustainsys.Saml2.Owin 2.2.0 я получаю этот журнал трафика ...

200 GET https://some-saml2-idp.com/saml2/idp/SSO_1a7f5..sy%2Fh9rebTw%3D%3D&RelayState=1M..3c
302 POST https://demo.local/AuthServices/Acs
303 GET https://demo.local/login?error=access_denied
200 GET https://some-saml2-idp.com/saml2/idp/SSO_1a7f..NfLr6E299uPwE%3D&RelayState=cS..L
302 POST https://demo.local/AuthServices/Acs
404 GET https://demo.local/saml2/idp/SSO_1..39?SAMLRequest=hZ..bTw==&RelayState=1M..c&error=access_denied

Я пытался очистить файлы cookie повсюду и пытался найти какой-либо «собственный» код, отвечающий за ошибку или параметр ошибки.

Я бы предпочел, чтобы все работало на обоихмои ветви без каких-либо изменений на стороне IDP.

Мой Web.config имеет следующую структуру ...

<sustainsys.saml2 entityId="https://demo.local/AuthServices"
        returnUrl="https://demo.local"
        publicOrigin="https://demo.local"
        modulePath="/AuthServices">
    <serviceCertificates>
        <add fileName="~/somename.pfx"
            use="Signing" />
    </serviceCertificates>
    <identityProviders>
        <add entityId="My-IDP"
            allowUnsolicitedAuthnResponse="true"
            loadMetadata="true"
            metadataLocation="https://some-saml2-idp.com/metadata" />
    </identityProviders>
</sustainsys.saml2>

И мой запуск в Оуэн ...

var defaultSignInAsAuthType = "Cookies";

app.SetDefaultSignInAsAuthenticationType(defaultSignInAsAuthType);

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = defaultSignInAsAuthType,
    ReturnUrlParameter  = "returnUrl",
    LoginPath = new PathString("/login"),
    LogoutPath = new PathString("/logout")
});

var saml2Options = new Saml2AuthenticationOptions(true);
app.UseSaml2Authentication(saml2Options);
app.UseStageMarker(PipelineStage.Authenticate);

AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Name;

Чего мне не хватает, чтобы имитировать поведение старой установки пакета?

1 Ответ

0 голосов
/ 15 января 2019

Между этими выпусками существует ряд критических изменений, которые могут вызвать проблемы.

В журнале Katana будут содержаться сообщения об ошибках. Вот некоторые важные вещи:

  1. Минимально принятый алгоритм входящей подписи теперь по умолчанию SHA-256. Может быть установлен через minIncomingSigninAlgorithm config.
  2. Путь к модулю (базовый путь для всех конечных точек) теперь по умолчанию равен /Saml2 вместо /AuthServices. В вопросе, он уже правильно настроен на /AuthServices для обратной совместимости.
  3. ClaimsAuthenticationManager больше не поддерживается в 2.X, поскольку он больше не использует обработчики токенов System.IdentityModel. Вместо этого используйте уведомление AcsCommandResultCreated, чтобы изменить созданную личность.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...