Arhn - архитектура программирования

Архитектура проекта IdentityServer4

Во-первых, извините за мой английский.

Я потратил некоторое время на изучение IS4, .NET Core, Identity, Auth, Auth, Claims и так далее. Сегодня я начинаю работать над своим собственным веб-проектом, чтобы эти части работали вместе. Мое решение включает в себя 3 клиента (React, Admin-Razor, Mobile), сервер IS4 и WebAPI (React и Mobile будут взаимодействовать с API).

  1. Поскольку клиенты React и Admin имеют две разные страницы входа, должны ли они обе использовать IS4 для авторизации и аутентификации?

  2. Проект администратора будет проектом ASP.NET MVC и не будет вызывать API из другого проекта, поэтому какие GrantTypes я должен использовать и должен использовать для него IS4?

Я не ищу примеры кода, просто нужна помощь по архитектуре проекта с IS4.

Спасибо!


Ответы:


1

Сервер идентификации - это провайдер идентификации OpenID Connect. (openidConnect построен поверх OAuth2). Это означает, что приложение сервера идентификации будет обрабатывать все, что связано с доступом и токенами идентификации, различными потоками, федеративной идентификацией и делегированием полномочий, другими словами, выполняя все операции, связанные с аутентификацией и авторизацией. Подход OpenId connect и OAuth2 идеально подходит при работе с распределенными системами, требующими централизованной безопасности. Это означает, что использование IS4 гарантирует, что все ваше приложение, которое доверяет вашему серверу идентификации, будет обрабатывать аутентификацию и авторизацию консолидированным образом.

Для самой вашей архитектуры IS4 кажется хорошей отправной точкой, но:

  1. Поскольку клиенты React и Admin имеют две разные страницы входа, должны ли они обе использовать IS4 для авторизации и аутентификации?

IS4 - это отдельное приложение, которое будет выпускать, проверять и управлять токенами клиентов ypu и, в конечном итоге, токенами. Так что, скорее всего, процесс аутентификации будет выполняться на стороне IS4. Это очень похоже на сторонних поставщиков удостоверений (например, facebook или google. Помните кнопки «войти с помощью google»?), Но в вашем случае у вас есть собственная служба идентификации - IS4, размещенная как приложение. Таким образом, страница входа должна быть на стороне IS4, но вы можете настроить макет.

  1. Проект администратора будет проектом ASP.NET MVC и не будет вызывать API из другого проекта, поэтому какие GrantTypes я должен использовать и должен использовать для него IS4?

Ответ, как всегда, зависит от вас. Если вам требуется некоторая идентификация в вашем приложении (а не анонимный доступ), тогда использование IS возможно и даже предпочтительнее. Однако, если ваша административная часть является приложением на стороне сервера, наилучшим подходящим потоком предоставления является «код авторизации» (связь сервер-сервер от имени пользователя).

13.04.2017
  • Спасибо за ответ. Я буду использовать IS4 для реагирующего и мобильного клиентов, но можно ли иметь две разные страницы входа? 13.04.2017
  • Вероятно, придется проверить, какой клиент сделал запрос, а затем показать страницу входа для него. 13.04.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..