Muchas gracias a todos los contribuyentes individuales
* Utiliza uno de los principales proyectos de Ory en producción.
Para comenzar con algunos ejemplos fáciles, diríjase a la documentación Get Start.
Dirígete a la documentación del desarrollador de Ory para aprender a instalar Ory Kratos en Linux, MacOS, Windows y Docker y cómo construir Ory Kratos a partir de la fuente.
Construimos ory sobre varios principios rectores cuando se trata de nuestro diseño de arquitectura:
La arquitectura de Ory está diseñada para funcionar mejor en un sistema de orquestación de contenedores como Kubernetes, CloudFoundry, OpenShift y proyectos similares. Los binarios son pequeños (5-15 MB) y están disponibles para todos los tipos de procesadores populares (ARM, AMD64, I386) y sistemas operativos (FreeBSD, Linux, MacOS, Windows) sin dependencias del sistema (Java, Node, Ruby, LibXML, ...).
Ory Kratos es un sistema de identidad y gestión de usuarios API que se construye de acuerdo con las mejores prácticas de la arquitectura en la nube. Implementa casos de uso central con los que casi todas las aplicaciones de software deben tratar con: inicio de sesión y registro de autoservicio, autenticación multifactor (MFA/2FA), recuperación y verificación de cuentas, perfil y administración de cuentas.
Ory Hydra es un proveedor OpenID Certified ™ OAuth2 y OpenID Connect que se conecta fácilmente a cualquier sistema de identidad existente escribiendo una pequeña aplicación de "puente". Proporciona un control absoluto sobre la interfaz de usuario y los flujos de experiencia del usuario.
Ory Oathkeeper es un proxy de identidad y acceso de fideicomiso de BeyondCorp/Zero (IAP) con autenticación configurable, autorización y reglas de mutación para sus servicios web: autenticar JWT, tokens de acceso, claves API, MTLS; Verifique si el sujeto contenido puede realizar la solicitud; ¡Codifique el contenido resultante en encabezados personalizados ( X-User-ID ), JSON Web Tokens y más!
Ory Keto es un punto de decisión de política. Utiliza un conjunto de políticas de control de acceso, similares a las políticas de AWS IAM, para determinar si un sujeto (usuario, aplicación, servicio, automóvil, ...) está autorizado para realizar una cierta acción en un recurso.
La ejecución de la infraestructura de identidad requiere atención y conocimiento de los modelos de amenazas.
Si cree que encontró una vulnerabilidad de seguridad, abstenerse de publicarla públicamente en los foros, el chat o GitHub. Puede encontrar toda la información para la divulgación responsable en nuestro Security.txt.
Los servicios de Ory recopilan datos anónimos resumidos que opcionalmente se pueden desactivar. Haga clic aquí para obtener más información.
La guía está disponible aquí.
La API HTTP está documentada aquí.
Los nuevos lanzamientos pueden introducir cambios de ruptura. Para ayudarlo a identificar e incorporar esos cambios, documentamos estos cambios en ChangeLog.md. Para actualizar, visite la Guía de actualización.
Ejecute kratos -h o kratos help .
Alentamos todas las contribuciones y lo alentamos a leer nuestras pautas de contribución.
Necesita GO 1.16+ y (para las suites de prueba):
Es posible desarrollar Ory Kratos en Windows, pero tenga en cuenta que todas las guías asumen un shell Unix como Bash o ZSH.
hacer instalar
Puede formatear todo el código utilizando make format . Nuestro CI verifica si su código está formateado correctamente.
Hay tres tipos de pruebas que puede ejecutar:
Las pruebas cortas funcionan con bastante rapidez. Puede probar todo el código a la vez
go test -short -tags sqlite ./...o probar solo un módulo específico:
cd client ; go test -tags sqlite -short . Las pruebas regulares requieren una configuración de base de datos. Nuestra suite de prueba puede trabajar directamente con Docker directamente (usando Ory/Dockertest), pero alentamos a usar el File Make. El uso de DockerTest puede hinchar la cantidad de imágenes de Docker en su sistema y son bastante lentos. En su lugar, recomendamos hacer:
hacer prueba
Tenga en cuenta que make test recrea las bases de datos cada vez que ejecuta make test . Esto puede ser molesto si está tratando de arreglar algo muy específico y necesita las pruebas de la base de datos todo el tiempo. En ese caso, le sugerimos que inicialice las bases de datos con:
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 ' Entonces puedes ejecutar go test tan a menudo como quieras:
go test -tags sqlite ./...
# or in a module:
cd client ; go test -tags sqlite . Algunas pruebas usan accesorios. Si las cargas útiles cambian, puede actualizarlas con:
make test-update-snapshots
Esto solo actualizará las instantáneas de las pruebas cortas. Para actualizar todas las instantáneas, ejecute:
UPDATE_SNAPSHOTS=true go test -p 4 -tags sqlite ./...También puede ejecutar este comando desde una carpeta.
Usamos Cypress para ejecutar nuestras pruebas E2E.
softwareupdate --install-rosetta --agree-to-license
La forma más sencilla de desarrollar pruebas E2E es:
./test/e2e/run.sh --dev sqlite
Puede ejecutar todas las pruebas (con bases de datos) usando:
hacer test-e2e
Para más detalles, ejecute:
./test/e2e/run.sh
Ejecutar solo una prueba singular
Agregue .only a la prueba que le gustaría ejecutar.
Por ejemplo:
it . only ( 'invalid remote recovery email template' , ( ) => {
...
} )Ejecutar un subconjunto de pruebas
Esto requerirá editar el archivo cypress.json ubicado en la carpeta test/e2e/ .
Agregue la opción testFiles y especifique la prueba para ejecutar dentro de la carpeta cypress/integration . Como ejemplo, agregaremos solo las pruebas network .
"testFiles" : [ " profiles/network/* " ],Ahora comience las pruebas nuevamente usando el script o makefile Ejecutar.
Puede construir una imagen de Docker de desarrollo usando:
hacer Docker
make sdkmake docs/apimake docs/swagger