Code Monkey home page Code Monkey logo

tutorial.authentificationauthrization's Introduction

Tutorial.Authentification

Аутентификация отвечает на вопрос "кто пришёл?"

За аутентификцию отвечает AuthentificationMiddleware. Для его добавления применяется метод UseAuthentication(). Он должен добавляться до любых других компонентов, которые используют аутентификацию.

Для выполнения аутентификации этот компонент использует сервисы аутентификации такой как IAuthenticationService, регистрируется он с помощью метода AddAuthentication(). Для него необходимо установить схему аутентификации, самые ходовые "Coockies" и "Bearer", на основе куки и jwt-токенов соответственно. Вместо строковых значений можно использовать CookieAuthenticationDefaults.AuthenticationScheme и JwtBearerDefaults.AuthenticationScheme. Обработчик аутентификации выполняет непосредственную аутентификацию пользователей на основе данных в запросах и схемы аутентификации.

Авторизация отвечает на вопрос "что он может делать?". К каким ресурсам пользователь имеет право доступа и какие права имеет.

Для применения авторизации необходим компонент AuthorizationMiddleware. Его можно подключить методом UseAuthorization(). Так же необходимо зарегестрировать методы авторизации с помощью метода AddAuthorization().

Аттрибуты

Ограничить доступ к ресурсам можно с помощью атрибута AuthorizeAttribute. Если мы попробуем зайти не авторизованными на страницу с атрибутом [Authorize], то страница выдаст ошибку.


Аутентификация с помощью Jwt Jwt-токен - это веб-стандарт определяющий способ передачи данных о пользователе в формате JSON в зашифрованном виде.

Jwt-токен состоит из

  • Header - JSON содержащий информацию о типе токена и алгоритме шифрования
  • Payload - JSON содержащий данных для авторизации пользователя (логин пароль)
  • Signature - строка для верификации токена, создаётся с помощью секретного кода Header и Payload

Для создания токена применяется конструктор JwtSecurityToken. Одним из параметров служит список объектов Claim. Объекты Claim служат для хранения некоторых данных о пользователе, описывают пользователя. Затем эти данные можно применять для аутентификации.

Для доступа к ресурсам в header запросов нужно добавлять "Authorization": "Bearer " + token // token - полученный ранее jwt-токен

Авторизация с помощью jwt

ClaimPrincipal, ClaimsIdentity, HttpContext.User

Данные, которые идентифицируют пользователя хранятся в свойстве Identity класса ClaimPrincipal.

Claim - это информация о пользователе и его правах, которая утверждается веб-приложением. Claim объект содержит свойства: Issuer - название системы, которая выдала этот claim Subject - возвразщает информацию о пользователе в виде объекта ClaimsIdentity Type - возвращает тип объекта claim Value - возвращает значение объекта claim

tutorial.authentificationauthrization's People

Contributors

gnil000 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.