Un grand merci à tous les contributeurs individuels
* Utilise l'un des principaux projets d'Ory en production.
Rendez-vous sur la documentation pour en savoir plus sur les façons d'installer Ory Keto.
Nous construisons ORY sur plusieurs principes directeurs en ce qui concerne notre conception d'architecture:
L'architecture d'Ory est conçue pour fonctionner le mieux sur un système d'orchestration de conteneurs tels que Kubernetes, CloudFoundry, OpenShift et des projets similaires. Les binaires sont petits (5-15 Mo) et disponibles pour tous les types de processeurs populaires (ARM, AMD64, I386) et les systèmes d'exploitation (FreeBSD, Linux, MacOS, Windows) sans dépendances du système (Java, Node, Ruby, LibXML, ...).
Ory Kratos est un système d'identité et de gestion des utilisateurs API-First qui est construit en fonction des meilleures pratiques d'architecture cloud. Il met en œuvre des cas d'utilisation de base que presque toutes les applications logicielles doivent traiter: Connexion et enregistrement en libre-service, authentification multi-facteurs (MFA / 2FA), récupération et vérification des comptes, profil et gestion des comptes.
Ory Hydra est un fournisseur OpenID Certified ™ OAuth2 et OpenID Connect qui se connecte facilement à tout système d'identité existant en écrivant une petite application "Bridge". Il donne un contrôle absolu sur l'interface utilisateur et les flux d'expérience utilisateur.
Ory Oathkeeper est un proxy de l'identité et d'accès au-delà de la confiance (IAP) avec des règles de mutation d'authentification, d'autorisation et de demande configurables pour vos services Web: authentification JWT, jetons d'accès, touches API, MTLS; Vérifiez si le sujet contenu est autorisé à effectuer la demande; Encoder le contenu résultant dans des en-têtes personnalisés ( X-User-ID ), des jetons Web JSON et plus encore!
Ory Keto est un point de décision politique. Il utilise un ensemble de politiques de contrôle d'accès, similaires aux politiques AWS IAM, afin de déterminer si un sujet (utilisateur, application, service, voiture, ...) est autorisé à effectuer une certaine action sur une ressource.
Si vous pensez avoir trouvé une vulnérabilité de sécurité, veuillez vous abstenir de le publier publiquement sur les forums, le chat ou le github. Vous pouvez trouver toutes les informations pour la divulgation responsable dans notre sécurité.txt.
Nos services collectent des données anonymisées résumées qui peuvent éventuellement être désactivées. Cliquez ici pour en savoir plus.
Le guide est disponible ici.
L'API HTTP est documentée ici.
Les nouvelles versions pourraient introduire des changements de rupture. Pour vous aider à identifier et à intégrer ces modifications, nous documentons ces modifications dans la mise à niveau.md et le changelog.md.
Exécutez une aide keto -h ou keto help .
Nous encourageons toutes les contributions et vous recommandons de lire nos directives de contribution.
Vous avez besoin de aller 1.19+ et (pour les suites de test):
Il est possible de développer Ory Keto sur Windows, mais sachez que tous les guides supposent une coquille Unix comme Bash ou Zsh.
faire l'installation
Vous pouvez formater tout le code à l'aide make format . Notre CI vérifie si votre code est correctement formaté.
Il existe deux types de tests que vous pouvez exécuter:
Les tests courts se déroulent assez rapidement. Vous pouvez soit tester tout le code à la fois:
go test -short -tags sqlite ./...ou testez juste un module spécifique:
go test -tags sqlite -short ./internal/check/...Les tests réguliers nécessitent une configuration de base de données. Notre suite de tests est capable de travailler directement avec Docker (en utilisant Ory / DockerTest), mais nous encourageons à utiliser le script à la place. L'utilisation de DockerTest peut gonfler le nombre d'images Docker sur votre système et les démarrer à chaque exécution est assez lente. Au lieu de cela, nous vous recommandons de faire:
source ./scripts/test-resetdb.sh
go test -tags sqlite ./... Les tests E2E font partie du go test normal. Pour exécuter uniquement le test E2E, utilisez:
source ./scripts/test-resetdb.sh
go test -tags sqlite ./internal/e2e/... ou ajoutez la balise -short pour tester uniquement contre SQLite en mémoire.
Vous pouvez créer une image de docker de développement en utilisant:
faire docker