/SeoulIdentity

O Seoul Identity é um projeto que visa criar um servidor de identidade com múltiplas entradas, permitindo autenticação tanto por linha de comando (CLI) quanto por uma API REST.

Primary LanguageTypeScript

Seoul Identity Project

O Seoul Identity é um projeto que visa criar um servidor de identidade com múltiplas entradas, permitindo autenticação tanto por linha de comando (CLI) quanto por uma API REST. Ele também oferece recursos para geração de token JWT, gerenciamento de recursos e usuários com claims personalizadas, além de outras funcionalidades avançadas.

Funcionalidades

O Seoul Identity tem como objetivo implementar as seguintes 10 funcionalidades de um provedor de identidade:

  • Autenticação de usuários: O Seoul Identity autentica os usuários, verificando suas credenciais de login, como nome de usuário e senha, proporcionando um meio seguro para a autenticação.

  • Gerenciamento de identidades: O servidor de identidade oferece recursos para o gerenciamento centralizado das identidades dos usuários, incluindo o armazenamento seguro das informações do usuário, como nome, e-mail e outras informações relevantes.

  • Single Sign-On (SSO): Com o SSO implementado, os usuários podem fazer login uma única vez no Seoul Identity e ter acesso a vários sistemas e aplicativos, eliminando a necessidade de autenticação repetida em cada serviço.

  • Federated Identity: O Seoul Identity permite a integração com provedores de identidade federados, permitindo que os usuários utilizem suas credenciais de login de outros provedores confiáveis, como Google ou Facebook.

  • Integração com protocolos padrão: O servidor de identidade suporta protocolos de autenticação e autorização padrão, como OAuth 2.0 e OpenID Connect, facilitando a integração com sistemas e aplicativos que utilizam esses protocolos.

  • Provisão de usuários: O Seoul Identity oferece recursos para a criação e gerenciamento de contas de usuário, incluindo o provisionamento de usuários em diferentes sistemas e aplicativos associados.

  • Controle de acesso e autorização: O servidor de identidade fornece recursos avançados de controle de acesso, permitindo gerenciar as permissões e autorizações dos usuários em relação a recursos e funcionalidades específicas.

  • Suporte a autenticação multifator (MFA): O Seoul Identity implementa suporte para autenticação multifator, exigindo que os usuários forneçam múltiplos fatores de autenticação, como códigos enviados por SMS, tokens de segurança ou impressões digitais, para aumentar a segurança das contas dos usuários.

  • Auditoria e registros de atividades: O servidor de identidade registra eventos de autenticação e atividades do usuário para fins de auditoria e rastreamento, fornecendo um registro das ações realizadas pelos usuários.

  • Personalização da experiência do usuário: O Seoul Identity permite a personalização da experiência do usuário durante o processo de autenticação, como o uso de logotipos personalizados, páginas de login personalizadas e fluxos de autenticação personalizados, proporcionando uma experiência única aos usuários.

Configuração e Uso

Para utilizar o Seoul Identity, siga as etapas abaixo:

Faça o clone do repositório do projeto:

git clone https://github.com/seoul-identity/seoulidentity.git

Instale as dependências do projeto:

cd seoul-identity
npm install

Configure as opções do servidor de identidade no arquivo config.json. Certifique-se de ajustar as configurações de acordo com suas necessidades.

Inicie o servidor de identidade:

npm start

O servidor de identidade estará disponível em http://localhost:3000. Você pode acessar a interface por CLI ou fazer requisições para a API REST para autenticação e gerenciamento de recursos.

Para obter mais informações sobre as rotas e funcionalidades disponíveis, consulte a documentação do projeto, localizada em docs/.

Contribuição

Contribuições para o projeto Seoul Identity são bem-vindas! Se você encontrar algum problema, tiver ideias para melhorias ou quiser adicionar novas funcionalidades, sinta-se à vontade para abrir uma issue ou enviar um pull request no repositório oficial.

Antes de contribuir, certifique-se de ler nosso guia de contribuição em CONTRIBUTING.