Skip to content

gm-soft/IdentityServerForAll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IdentityServerForAll

How to start apps

  1. Install Docker, .netcore3.1 sdk, .net6 sdk
  2. Open the /src/IdentityServer.sln with Visual Studio or Rider
  3. Set up multiple project launch with your IDE. You should start all 2 apps: IdentityServer and WebApi

How to setup IS4 in your project (ru)

Настройка IS4

  1. Добавить себе в солюшн проект IS4
  2. Настроить ресурс api в конфиге IS4
  • core.api - это идентификатор скоупа. Здесь может быть название модуля либо добенной области проекта. Если деления на разные API нет, то допустимо оставить любой идентификатор
  1. Добавить клиентов - SPA, m2m, etc - здесь
  • В качестве секрета здесь, здесь и здесь можно использовать любую строку. Ее же нужно будет упомянуть в настройках самого клиента.
  • Не забыть указать идентификатор скоупа API, а также другие необходимые скоупы
  • Не забыть указать урлы-коллбеки клиента на логин и логаут. Например, здесь и здесь. Для фронтового клиента нужно сделать то же самое. По урлу-логину нужно будет написать механизм сохранения переданного бирер-токена, по логауту - удаление
  1. При необходимости добавляем внешние провайдеры авторизации здесь. Здесь упоминается гугл, но добавлять можно любые: Active Directory, Github, Gitlab, Facebook, etc. Нужно смотреть существующие библиотеки
  • Не забыть создать серкеты в гугл-консоли для использования гугловой авторизации. Есть туториалы
  1. Прописать настройку IS4 в веб-приложении здесь
  2. Optional При необходимости написать/добавить здесь свою логику аутентификации пользователя, который переходит после автоизации с помощью внешнего провайдера (например, гугла)
  3. Optional Для кастомизации выдачи клеймов сервером можно добавить свою реализацию сервиса IProfileService. В Startup-файле использование этого сервиса настраивается тут и тут.

Настройка WebApi

  1. Добавляем использование аутентификации с помощью стороннего сервиса здесь
  2. Добавляем адентификатор скоупа здесь
  3. Не забываем указать использование правила авторизации скоупа тут

Если к Web API сделает обращение клиент, у которого нет указанного скоупа в настройках IS4, то ему будет выдан ответ 403 самой библиотекой авторизации/аутентификации

Настройка Machine-2-machine (m2m) клиента

  1. Получаем информацию об аутентифицирующем сервисе так. Здесь происходит обращение к урлу .well-known/openid-configuration
  2. Настройка аутентифицирущих данных клиента тут. Не забываем о скоупе здесь
  3. Здесь же из свойства AccessToken получаем бирер-токен, который будем использовать для обращения к Web API

Настройка Angular SPA

  1. Скачиваем пакет angular-auth-oidc-client
  2. Здесь написан класс-обертка над авторизационным сервисом из библиотеки
  3. Здесь написан класс, который работает с сессией текущего юзера и сохраняет ее в localStorage и дает возможность выдать другим компонентам инфу о текущем юзере
  4. Здесь написан класс, который дает возможность выдать другим компонентам инфу о текущем юзере
  5. Здесь код компонента, который обрабатываем сохранение бирер-токена после всего цикла аутентификации. Этот урл мы указываем как RedirectUris здесь
  6. Добавляем в произвольное место кнопку Логаута на фронте: панель навигации, меню профиля, up to your decision, а в обработчике клика по кнопке пишем код вызова библиотечного кода SignOut

Настройка тестового веб-клиента oauthdebugger.com

  1. Добавляем клиент авторизации
  2. Переходим по ссылке
  3. После автризации будет показана страница с расшифровкой переданного Bearer-токена

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors