Blazor WebAssembly - лучшие практики для учетных записей пользователей и сервера идентификации

Я пытаюсь создать базовый модуль управления пользователями в своем программном обеспечении, и я следовал этому руководству, чтобы создать модуль:

https://docs.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/hosted-with-identity-server?view=aspnetcore-5.0&tabs=visual-studio

Я полагаю, что это лучшая практика, рекомендованная Microsoft. Однако я не понимаю следующего:

  1. Обрабатываются ли части авторизации на стороне сервера? Я хочу убедиться, что никакие части (или минимум) не отображаются на стороне сервера, а авторизация в основном должна происходить в вызовах API, поскольку я использую Blazor WebAssembly. Поэтому мне интересно, почему мы можем указывать файлы .cshtml и т. Д., Поскольку я думал, что это код, отрисованный на стороне сервера.
  2. В руководстве они делают несколько ссылок на IdentityServer (похоже, это сторонний программный компонент). Приложение, которое я создаю, является коммерческим. Обязан ли я покупать лицензию на IdentityServer? Если да, существует ли рекомендуемый Microsoft бесплатный способ сделать то же самое?
  3. В чем разница между IdentityServer и IdentityServer4?
  4. В конечном итоге я пытаюсь создать модуль передовой практики Microsoft, который позволяет администратору создавать и обрабатывать пользователей с разными ролями и доступом к разным частям проекта Blazor WebAssembly. Может быть, есть какой-нибудь другой способ сделать это? Какая сегодня лучшая практика?

person Smith5727    schedule 30.03.2021    source источник
comment
Вы можете сосредоточиться на одном вопросе за раз.   -  person gunr2171    schedule 30.03.2021


Ответы (1)


  1. Аутентификация и авторизация всегда должны выполняться серверной частью, потому что интерфейс всегда можно манипулировать или эмулировать. Если вы будете следовать этим инструкциям, авторизация будет полностью выполняться на стороне сервера. Функции входа и выхода перенаправят вас на страницы Razor, запущенные на сервере. Когда пользователь аутентифицируется, JWT создается и отправляется в ваше приложение Blazor. Затем этот токен можно использовать для отправки информации аутентификации вместе с последующими HTTP-запросами. Реализовать этот подход немного сложно, но он работает хорошо.

  2. Сервер идентификации, используемый в этих примерах, является частью ASP.NET.

  3. IdentityServer и IdentityServer4 относятся к IdentityServer, включенному в ASP.NET.

  4. Вы также можете использовать аутентификацию на основе файлов cookie и создать веб-API для обработки входа / выхода и предоставления информации о пользователе. Его легко настроить и предоставить пользовательские интерфейсы Blazor для аутентификации. При использовании этого подхода убедитесь, что у вас есть зашифрованное соединение, потому что вам нужно отправить информацию для входа через HTTP-запрос.

    В любом случае, я бы лично придерживался рекомендаций Microsoft и использовал JWT.

person Thomas Erdösi    schedule 30.03.2021