Muito obrigado a todos os colaboradores individuais
* Usa um dos principais projetos da ORY em produção.
Para começar com alguns exemplos fáceis, acesse a documentação de começar.
Vá até a documentação do desenvolvedor de ORY para aprender a instalar o Ory Kratos no Linux, MacOS, Windows e Docker e como construir o Ory Kratos a partir da fonte.
Construímos ory em vários princípios orientadores quando se trata de nosso design de arquitetura:
A arquitetura da ORY foi projetada para ser melhor em um sistema de orquestração de contêineres, como Kubernetes, Cloudfoundry, OpenShift e projetos semelhantes. Os binários são pequenos (5-15 MB) e estão disponíveis para todos os tipos populares de processadores (ARM, AMD64, i386) e sistemas operacionais (FreeBSD, Linux, MacOS, Windows) sem dependências do sistema (Java, Node, Ruby, Libxml, ...).
Ory Kratos é um sistema de gerenciamento de identidade e usuário da API-primeiro que é construído de acordo com as melhores práticas de arquitetura em nuvem. Ele implementa casos de uso principal com os quais quase todo aplicativo de software precisa lidar: login e registro de autoatendimento, autenticação multifatorial (MFA/2FA), recuperação e verificação de contas, perfil e gerenciamento de contas.
O Ory Hydra é um provedor OpenID Certified ™ OAuth2 e OpenID Connect que se conecta facilmente a qualquer sistema de identidade existente, escrevendo um pequeno aplicativo "ponte". Ele fornece controle absoluto sobre a interface do usuário e os fluxos da experiência do usuário.
ORY Oathkeeper é um Proxy de Identidade e Acesso a BeyondCorp/Zero Trust (IAP) com Regras de Autenticação, Autorização e Aceleração Configuráveis para seus Serviços da Web: Autentique JWT, Tokens de Acesso, Keys API, MTLs; Verifique se o assunto contido pode executar a solicitação; Encoda o conteúdo resultante em cabeçalhos personalizados ( X-User-ID ), JSON Web Tokens e muito mais!
Ory Keto é um ponto de decisão político. Ele usa um conjunto de políticas de controle de acesso, semelhantes às políticas da AWS IAM, para determinar se um sujeito (usuário, aplicativo, serviço, carro, ...) está autorizado a executar uma determinada ação em um recurso.
A infraestrutura de identidade em execução requer atenção e conhecimento de modelos de ameaças.
Se você acha que encontrou uma vulnerabilidade de segurança, evite publicá -la publicamente nos fóruns, no bate -papo ou no Github. Você pode encontrar todas as informações para divulgação responsável em nossa segurança.txt.
Os serviços da ORY coletam dados resumidos e anonimizados que podem opcionalmente ser desligados. Clique aqui para saber mais.
O guia está disponível aqui.
A API HTTP está documentada aqui.
Novos lançamentos podem introduzir mudanças de ruptura. Para ajudá -lo a identificar e incorporar essas alterações, documentamos essas alterações no Changelog.md. Para atualizar, visite o guia de atualização.
Execute kratos -h ou kratos help .
Incentivamos todas as contribuições e incentivamos você a ler nossas diretrizes de contribuição
Você precisa ir 1.16+ e (para as suítes de teste):
É possível desenvolver o Ory Kratos no Windows, mas esteja ciente de que todos os guias assumem um shell Unix como Bash ou Zsh.
faça instalar
Você pode formatar todo o código usando make format . Nosso CI verifica se o seu código é formatado corretamente.
Existem três tipos de testes que você pode executar:
Testes curtos funcionam rapidamente. Você pode testar todo o código de uma vez
go test -short -tags sqlite ./...ou teste apenas um módulo específico:
cd client ; go test -tags sqlite -short . Testes regulares requerem um banco de dados configurado. Nosso conjunto de testes é capaz de trabalhar diretamente com o Docker (usando o Ory/Dockertest), mas incentivamos a usar o Makefile. O uso do Dockertest pode inchar o número de imagens do Docker no seu sistema e é bastante lento. Em vez disso, recomendamos fazer:
faça o teste
Esteja ciente de que make test recria os bancos de dados toda vez que você executa make test . Isso pode ser irritante se você estiver tentando corrigir algo muito específico e precisar dos testes de banco de dados o tempo todo. Nesse caso, sugerimos que você inicialize os bancos de dados com:
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 ' Então você pode executar go test com a frequência que quiser:
go test -tags sqlite ./...
# or in a module:
cd client ; go test -tags sqlite . Alguns testes usam acessórios. Se a carga útil mudar, você poderá atualizá -las com:
make test-update-snapshots
Isso atualizará apenas os instantâneos dos testes curtos. Para atualizar todos os instantâneos, execute:
UPDATE_SNAPSHOTS=true go test -p 4 -tags sqlite ./...Você também pode executar este comando de uma sub -pasta.
Usamos o CYPRESS para executar nossos testes E2E.
softwareupdate --install-rosetta --agree-to-license
A maneira mais simples de desenvolver testes E2E é:
./test/e2e/run.sh -Dev Sqlite
Você pode executar todos os testes (com bancos de dados) usando:
faça test-e2e
Para mais detalhes, execute:
./test/e2e/run.sh
Execute apenas um teste singular
Adicione .only o teste que você gostaria de executar.
Por exemplo:
it . only ( 'invalid remote recovery email template' , ( ) => {
...
} )Execute um subconjunto de testes
Isso exigirá a edição do arquivo cypress.json localizado no test/e2e/ pasta.
Adicione a opção testFiles e especifique o teste para ser executado dentro da pasta cypress/integration . Como exemplo, adicionaremos apenas os testes network .
"testFiles" : [ " profiles/network/* " ],Agora inicie os testes novamente usando o script de execução ou makefile.
Você pode construir uma imagem do Docker de desenvolvimento usando:
Faça do Docker
make sdkmake docs/apimake docs/swagger