1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wangqianlong1993-IdentityServer4

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 05:52 7237a58

IdentityServer4 — система единого авторизации и аутентификации

:smile:

Введение

В процессе изучения систем авторизации и аутентификации была обнаружена платформа IdentityServer4. Большинство официальных примеров основано на локальной или встроенной конфигурации. Не существует полноценного интерфейса администратора. На GitHub есть несколько отличных административных систем, но большинство из них разработано с использованием MPA. Поэтому на основе .NET5 и Vue была разработана эта система управления авторизацией.

Интерфейс

Репозитории

  • Код проекта размещён на Gitee и GitHub.

Демонстрация

  • Адрес API для входа в систему единого входа: http://47.119.119.183:8081/.
  • Адрес клиента (интерфейс пользователя): http://47.119.119.183:8082/.
    • Интерфейс пользователя разработан с помощью Vue.
    • Логин: admin/123456.
    • Облачный сервис в настоящее время не оплачен, планируется покупка для развёртывания.

Документация

Документация находится в стадии разработки.

Архитектура программного обеспечения

  • dotNet5: серверный веб-API.
  • Vue: клиентский интерфейс.
  • Autofac.
  • AutoMapper.
  • IdentityServer4.
  • Swashbuckle.
  • MiniProfiler.

...

Требования к среде

  • Visual Studio 2019 версии 16.9 или выше.
  • .NET 5 SDK.
  • Стандарт .NET версии 2.1 или выше.
  • VUE версии 2.6 или выше.
  • Node версии 12.15 или выше.

Поддерживаемые платформы

  • Операционная среда: Windows, Linux (остальные платформы находятся в стадии тестирования).
  • База данных: SQL Server, MySQL.
  • Развёртывание приложения: Kestrel, Nginx.

График популярности

Stargazers over time

Разработка

Серверная часть

  1. Последние функции разрабатываются в ветке IdentityServer4_v4.0. Для просмотра перейдите в эту ветку.

    git checkout IdentityServer4_v4.0
  2. Восстановление:

    • NuGet автоматически восстановит пакеты.
    • Для восстановления пакетов JavaScript используйте Node. Если необходимо внести изменения, см. инструкции ниже.
        //package.json файл находится в каталоге проекта.
        //Можно настроить сохранение и восстановление пакетов в меню «Инструменты» > «Параметры» > «Управление пакетами в Интернете» > «Восстановление пакетов». VS автоматически загрузит указанную версию.
        {
            "version": "1.0.0",
            "name": "asp.net",
            "private": true,
            "dependencies": {
            "bootstrap": "4.6.0",
            "jquery": "3.6.0"
            },
            "devDependencies": {
            "gulp": "^4.0.2",
            "gulp-watch": "5.0.1",
            "gulp-concat": "2.6.1",
            "gulp-clean-css": "^4.2.0",
            "gulp-concat-css": "^3.1.0",
            "gulp-less": "^4.0.1",
            "gulp-rename": "^2.0.0",
            "gulp-sourcemaps": "^2.6.5",
            "gulp-uglify": "^3.0.2",
            "del": "6.0.0"
            }
        }
    • Пакеты, загруженные с помощью Node, автоматически очищаются, объединяются и минимизируются с помощью gulp. Подробнее о gulp можно узнать на сайте www.gulpjs.com.cn.
  3. Перенос данных: ORM реализован с использованием EF. В настоящее время поддерживается SQL Server и MySQL. Обратите внимание: перед удалением существующей базы данных необходимо удалить уже созданные файлы миграции в папке Migrations. Или обновить существующие файлы Migration один за другим. Перенос базы данных:

    #sqlserver по умолчанию выбирает проект (WQLIdentity.Infra.Data)
    Add-Migration InitialCreate -Context CustomConfigurationDbContext -OutputDir Migrations\Configuration\SqlServer
    Add-Migration InitialCreate -Context CustomPersistedGrantDbContext -OutputDir Migrations\PersistedGrant\SqlServer
    Add-Migration InitialCreate -Context ApplicationDbContext -OutputDir Migrations\Application\SqlServer
    #mysql по умолчанию выбирает проект (WQLIdentity.Infra.Data.Mysql)
    Add-Migration InitialCreate -Context MysqlConfigurationDbContext -OutputDir Migrations\Configuration\Mysql
    Add-Migration InitialCreate -Context MysqlPersistedGrantDbContext -Outputdir Migrations\PersistedGrant\Mysql
    Add-Migration InitialCreate -Context MysqlApplicationDbContext -OutputDir Migrations\Application\Mysql

    Обновление базы данных:

    #sqlserver
    update-database  -context CustomConfigurationDbContext
    update-database  -context CustomPersistedGrantDbContext
    update-database  -context ApplicationDbContext
    #mysql
    update-database  -context MysqlConfigurationDbContext
    update-database  -context MysqlPersistedGrantDbContext
    update-database  -context MysqlApplicationDbContext

    Создание начальных данных:

    dotnet run seed //запустить проект
    dotnet WQLIdentityServerAPI.dll seed //запустить программу **Конфигурация переключения**
{
    "urls": "http://localhost:5001;https://localhost:5002",
    "IdentityServer4": {
        "authUrls": "http://localhost:5001",//адрес аутентификации swagger, если nginx был изменён, необходимо настроить его как адрес публикации сервера
        "Audience": "IdentityServer4"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",

    //переключение адреса базы данных
    "Settings": {
        //mysql или sqlserver
        "DatabaseType": "mysql",

        //строка подключения к базе данных
        "SqlServerConnection": "Server=.;Database=IdentityServer ;Trusted_Connection=True;MultipleActiveResultSets=true",
        //"MySqlConnection": "Server=localhost;Port=3306;Database=IdentityServer;Uid=root;Pwd=xiucaibbx0528;"
        "MySqlConnection": "Server=localhost;Port=3306;Database=IdentityServer;Uid=wql;Pwd=asdfghjkl;",
        "UseMinProfiler": false //включать ли miniprofiler
    }
}

:green_heart: Фронтенд

Фронтенд использует VUE cli3 для сборки

  1. :sweat_drops: Изменить файл конфигурации аутентификации
    {
        "authority": "http://47.119.119.183:8081",//адрес аутентификации
        "clientId": "IdentityServer4", //идентификатор клиента аутентификации
        "redirectUri": "http://localhost:8082/oidc-callback",//обратный адрес
        "popupRedirectUri": "http://localhost:8082/oidc-popup-callback", "responseType": "id_token token", //тип аутентификации
        "scope": "openid profile offline_access IdentityServer.API", "automaticSilentRenew": true,
        "automaticSilentSignin": false, 
        "silentRedirectUri": "http://localhost:8082/silent-renew-oidc.html" , "post_logout_redirect_uri": "http://localhost:8082" //обратный адрес после выхода
    }
  2. :sweat_drops: Запустить
    npm install 
    npm run dev

:heart: Благодарности

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wangqianlong1993-IdentityServer4.git
git@api.gitlife.ru:oschina-mirror/wangqianlong1993-IdentityServer4.git
oschina-mirror
wangqianlong1993-IdentityServer4
wangqianlong1993-IdentityServer4
master