Сделайте tnet Core Saml2 аутентификацию через powershell - PullRequest
0 голосов
/ 19 июня 2020

У меня есть приложение do tnet core, которое использует пакет Sustainsys Saml2 для аутентификации. Доступ к приложению работает нормально, если выполняется через браузер. Пользователь запрашивает приложение, и если он не аутентифицирован, он перенаправляется на страницу входа в федерацию. После входа они возвращаются в приложение. В приложении есть API, к которому я хотел бы получить доступ через PowerShell, но у меня возникают проблемы с входом в приложение после аутентификации. У моего IdP есть API, который я могу вызвать с помощью Invoke-RestMethod, который возвращает файлы cookie аутентификации, и я сохраняю их в переменной сеанса как часть команды. Затем я бы сделал еще один Invoke-RestMethod в своем API с включенным сеансом. Проблема в том, что мое приложение не видит, что мой сеанс аутентифицирован, и перенаправляет меня обратно на страницу входа в федерацию, где видит, что я аутентифицирован, и отправляет меня обратно в приложение, и цикл повторяется.

Заголовок местоположения при перенаправлении - https://..../error?access_denied, который, я думаю, устанавливается, когда приложение пытается вызвать await AuthenticationManager.GetExternalLoginInfoAsync(). В моем вызове .addSaml2(... в Startup я устанавливаю для AllowUnsoliciedAuthnResponse значение true в параметрах Identity Provider. Есть ли какая-то другая конфигурация, которую нужно выполнить в приложении, или что-то другое в моей команде PowerShell для аутентификации в приложении?

Startup.cs
services.addAuthentication(sharedOptions => {
    sharedOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    sharedOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    sharedOptions.DefaultChallengeScheme = Saml2Defaults.Scheme;
    sharedOptions.DefaultForbinScheme = CookieAuthenticationDefaults.AuthenticationScheme;
powershell commands
> invoke-restmethod -Uri "<idp api url>" -SessionVariable login -CertificateThumbprint $cert.thumbprint -Method Post -Body @body
> invoke-restmethod -Uri "<app url>" -WebSession $login -Method Get
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...