Большое спасибо всем отдельным участникам
* Использует один из основных проектов Ори в производстве.
Чтобы начать с некоторых простых примеров, перейдите к документации «Начало работы».
Зайдите в документацию по разработчику ORY, чтобы узнать, как установить Ory Kratos на Linux, MacOS, Windows и Docker, и как создать Ory Kratos из Source.
Мы строим ORY на нескольких руководящих принципах, когда дело доходит до нашего дизайна архитектуры:
Архитектура ORY предназначена для лучшего использования в системе оркестровки контейнеров, такой как Kubernetes, CloudFoundry, OpenShift и аналогичные проекты. Двоичные файлы небольшие (5-15 МБ) и доступны для всех популярных типов процессоров (ARM, AMD64, I386) и операционных систем (FreeBSD, Linux, MacOS, Windows) без системных зависимостей (Java, Node, Ruby, Libxml, ...).
Ory Kratos-это система личности и управления пользователями API, которая создается в соответствии с лучшими практиками облачной архитектуры. Он реализует основные варианты использования, с которыми требуется почти каждое программное приложение для борьбы с: самообслуживанием и регистрацией, многофакторной аутентификацией (MFA/2FA), восстановлением и проверкой учетной записи, профилем и управлением учетными записями.
Ory Hydra - это провайдер OpenID Certified ™ OAuth2 и OpenID Connect, который легко подключается к любой существующей системе идентификации, написав крошечное приложение «мост». Это дает абсолютный контроль над пользовательским интерфейсом и потоками пользовательского опыта.
Ory Capkeekeeper - это прокси -сервер идентификатор и доступа к доверительному доверию (IAP) с настраиваемой аутентификацией, авторизацией и запросами правил мутации для ваших веб -сервисов: аутентификация JWT, доступые токены, API -ключи, MTLS; Проверьте, разрешается ли содержащий субъект для выполнения запроса; Кодируйте, в результате чего контент в пользовательские заголовки ( X-User-ID ), JSON Web токены и многое другое!
Ори Кето является политическим решением. Он использует набор политик контроля доступа, аналогично политикам AWS IAM, чтобы определить, является ли субъект (пользователь, приложение, сервис, автомобиль, ...) разрешено выполнять определенное действие на ресурс.
Инфраструктура управления идентификацией требует внимания и знания моделей угроз.
Если вы думаете, что нашли уязвимость безопасности, пожалуйста, воздержитесь от публичного размещения на форумах, чате или GitHub. Вы можете найти всю информацию для ответственного раскрытия в нашем Security.txt.
Услуги ORY собирают суммированные, анонимные данные, которые можно отключить. Нажмите здесь, чтобы узнать больше.
Руководство доступно здесь.
HTTP API задокументирован здесь.
Новые выпуски могут ввести нарушающие изменения. Чтобы помочь вам определить и включить эти изменения, мы документируем эти изменения в Changelog.md. Для обновления, пожалуйста, посетите руководство по обновлению.
Запустите kratos -h или kratos help .
Мы поощряем все вклад и призываем вас прочитать наши руководящие принципы взносов
Вам нужно GO 1.16+ и (для тестовых люксов):
Можно разработать Ory Kratos в Windows, но имейте в виду, что все гиды предполагают оболочку Unix, такую как Bash или ZSH.
сделать установку
Вы можете отформатировать весь код, используя make format . Наш CI проверяет, если ваш код правильно отформатирован.
Есть три типа тестов, которые вы можете запустить:
Короткие тесты проходят довольно быстро. Вы можете либо проверить весь код одновременно
go test -short -tags sqlite ./...или протестируйте только конкретный модуль:
cd client ; go test -tags sqlite -short . Регулярные тесты требуют настройки базы данных. Наш тестовый набор может работать напрямую с Docker (используя ORY/Dockertest), но вместо этого мы рекомендуем использовать MakeFile. Использование Dockertest может разбить количество изображений Docker в вашей системе и довольно медленно. Вместо этого мы рекомендуем сделать:
сделать тест
Имейте в виду, что make test воссоздает базы данных каждый раз, когда вы запускаете make test . Это может быть раздражающим, если вы пытаетесь исправить что -то очень специфическое и все время нуждаетесь в тестах базы данных. В этом случае мы предлагаем инициализировать базы данных с помощью:
make test-resetdb
export TEST_DATABASE_MYSQL= ' mysql://root:secret@(127.0.0.1:3444)/mysql?parseTime=true '
export TEST_DATABASE_POSTGRESQL= ' postgres://postgres:[email protected]:3445/kratos?sslmode=disable '
export TEST_DATABASE_COCKROACHDB= ' cockroach://[email protected]:3446/defaultdb?sslmode=disable ' Тогда вы можете запустить go test так часто, как хотите:
go test -tags sqlite ./...
# or in a module:
cd client ; go test -tags sqlite . Некоторые тесты используют светильники. Если полезные нагрузки изменяются, вы можете обновить их с помощью:
make test-update-snapshots
Это обновит только снимки коротких тестов. Чтобы обновить все снимки, запустите:
UPDATE_SNAPSHOTS=true go test -p 4 -tags sqlite ./...Вы также можете запустить эту команду из под папки.
Мы используем Cypress для запуска наших тестов E2E.
softwareupdate --install-rosetta --agree-to-license 2.
Самый простой способ разработки тестов E2E - это:
./test/e2e/run.sh -dev sqlite
Вы можете запустить все тесты (с базами данных), используя:
Сделать тест-e2e
Для получения более подробной информации, запустите:
./test/e2e/run.sh
Запустить только единственный тест
Добавьте .only в тест, который вы хотели бы запустить.
Например:
it . only ( 'invalid remote recovery email template' , ( ) => {
...
} )Запустить подмножество тестов
Это потребует редактирования файла cypress.json , расположенного в папке test/e2e/ .
Добавьте опцию testFiles и укажите тест для запуска внутри папки cypress/integration . В качестве примера мы добавим только network тесты.
"testFiles" : [ " profiles/network/* " ],Теперь запустите тесты снова, используя сценарий запуска или Makefile.
Вы можете создать изображение Docker разработки, используя:
Сделать докер
make sdkmake docs/apimake docs/swagger