Как реализовать неявный поток грантов AWS Cognito в приложении веб-форм .NET Framework?C#

Место общения программистов C#
Ответить
Anonymous
 Как реализовать неявный поток грантов AWS Cognito в приложении веб-форм .NET Framework?

Сообщение Anonymous »

Я защищаю приложение .NET Framework Web Forms с помощью AWS Cognito. Первоначально я использовал поток кода авторизации с размещенным пользовательским интерфейсом, и он работал нормально. Вот моя конфигурация:

Код: Выделить всё

public void ConfigureCodeFlowAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());

var openIdConnectConfiguration = GetConfiguration();

var oidcOptions = new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
RedirectUri = redirectUri,
ResponseType = OpenIdConnectResponseType.Code,
Scope = OpenIdConnectScope.OpenIdProfile,
Configuration = openIdConnectConfiguration,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = n =>
{
n.AuthenticationTicket.Identity.AddClaim(new Claim("refresh_token", n.ProtocolMessage.RefreshToken));
n.AuthenticationTicket.Identity.AddClaim(new Claim("access_token", n.ProtocolMessage.AccessToken));
n.AuthenticationTicket.Properties.AllowRefresh = true;

return Task.FromResult(0);
}
},
};

app.UseOpenIdConnectAuthentication(oidcOptions);
}
Однако из-за ограничений размещенного пользовательского интерфейса нам необходимо создать пользовательскую страницу входа в качестве отдельного приложения, которое будет обслуживать несколько других приложений. Для этого я планирую использовать библиотеку amazon-cognito-identity-js или AWS Amplify.
Насколько я понимаю, нам нужно переключиться нашему клиентскому приложению использовать поток неявного гранта (я знаю, что это менее безопасно и не рекомендуется, но в данном случае это кажется необходимым). После того, как я переключился, прежде чем разрабатывать собственную страницу входа, я хотел проверить, как она работает с размещенным пользовательским интерфейсом, но мне не удалось заставить ее работать.
В моей существующей конфигурации Я изменил ResponseType на OpenIdConnectResponseType.Token, затем OpenIdConnectResponseType.IdToken и OpenIdConnectResponseType.IdTokenToken. Кажется, ни один из них не работает правильно.
Я знаю, что токены в потоке неявного гранта передаются как фрагменты URL-адреса (например, https://my-page.com#id_token=... ). Похоже, мне придется анализировать эти токены вручную в Page.aspx.cs, но это похоже на беспорядочное решение, требующее большого количества ручной обработки. Я надеюсь, что есть более чистый и эффективный способ справиться с этой проблемой, сохранив при этом большую часть моей предыдущей конфигурации.
Вопросы:
  • Как правильно настроить поток неявного гранта в моем приложении .NET
    Framework Web Forms без ручного анализа токенов из
    фрагмента URL-адреса?
  • Любой ресурсы, примеры или предложения по настройке неявного
    потока грантов в этом сценарии?
Я ценю любые советы и рекомендации, которые вы можете предоставить. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -forms-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»