Formas de entrar
E-mail, telefone, usuário ou login social, com senha ou código de uso único
Infraestrutura de identidade para SaaS
Tudo que seu SaaS precisa para gerenciar identidade, acesso e ciclo de vida de usuários.
Autenticação
Verificação, sessões, papéis e recuperação sobem como um sistema só, inspecionáveis até a requisição
E-mail, telefone, usuário ou login social, com senha ou código de uso único
Um segundo fator por app ou SMS, com códigos de recuperação para o dia em que alguém perde o celular
Veja cada dispositivo em que alguém está logado e derrube qualquer um deles, sem mexer nos outros
O mesmo papel pode significar coisas diferentes por cliente, então você para de escrever uma camada de permissão por tenant
Coloque papel, tenant ou plano dentro do access token, e veja o resultado num usuário real antes de subir
"email": "{{ user.email }}","role": "{{ grants.0.role }}","tenant": "{{ org.slug }}","plan": "{{ billing.plan }}",
Mais uma confirmação antes de uma ação destrutiva — só para aquela ação, nunca para a sessão inteira
Ações sensíveis
uso único · 5m
Limites de taxa e checagem de bot na frente do login, recuperação e consultas — os endpoints que apanham primeiro
Entradas, cadastros e verificações no mesmo relógio, para você ver quando seus usuários realmente aparecem
pico dia útil 10:00 · 1.284 eventos
Cada um destes é uma configuração, não um deploy — definido por ambiente e promovido com um diff
Seis requisições que um produto faz, e os sistemas que cada uma acorda no caminho
Este é o console que seu time recebe no primeiro dia — as telas que você gastaria um trimestre construindo, para cada parte de identidade que seu produto encosta
Everyone who has an identity in this project.
| User | Status | Created | Last sign in |
|---|---|---|---|
| ALAda Lovelace[email protected] | Active | 4 months ago | 2 minutes ago |
| GHGrace Hopper[email protected] | Active | 3 months ago | 18 minutes ago |
| ATAlan Turing[email protected] | Active | 2 months ago | 3 hours ago |
| KJKatherine Johnson[email protected] | Not confirmed | 6 days ago | never |
| RPRadia Perlman[email protected] | Banned | 1 year ago | 9 days ago |
A maioria dos times de SaaS acaba integrando vários fornecedores só para gerenciar usuários, permissões, convites, comunicações e logs de auditoria
5 fornecedores · 10 integrações para manter
1 fornecedor · 0 integrações
Uma plataforma
O custo não são os fornecedores. São as costuras entre eles
O que você precisava fazer
Escrever cola no issuer para cada claim que você precisa.
Um template de claims com preview num usuário real.
O fluxo mora num fornecedor, o template em outro.
Um template, por canal e por idioma.
Juntar trilhas de auditoria de cinco sistemas que discordam no horário.
Uma trilha com autor, alvo e categoria.
Repetir na mão em cada fornecedor e torcer para nada ter divergido.
Comparar dois ambientes e aplicar o diff.
Construído como um sistema só, não montado a partir de cinco
Seis camadas que sobem juntas, em vez de seis fornecedores para integrar
Login por e-mail, telefone ou username, com fluxos multifator e os provedores sociais que seus usuários já têm
Papéis são delimitados por organização, então uma permissão significa algo específico para cada cliente
Todo projeto é um issuer em conformidade, com discovery, JWKS e registro dinâmico de clients
Edge functions em runtime Deno com suporte a npm, editor no browser e deploys versionados
E-mail e SMS ligados aos eventos de identidade, com templates por canal e por idioma
Tráfego e performance de um lado, histórico de requisições pesquisável e trilha de auditoria do outro
Crie aplicações, gerencie fluxos de consentimento, autorize integrações de terceiros e opere seu próprio servidor OAuth
/.well-known/openid-configuration{"issuer": "https://acme.nulvless.app","authorization_endpoint": "/oauth/authorize","token_endpoint": "/oauth/token","userinfo_endpoint": "/oauth/userinfo","jwks_uri": "/.well-known/jwks.json","scopes_supported": ["openid", "profile", "email", "offline_access"],"code_challenge_methods_supported": ["S256"],}
Todo projeto é um issuer desde o primeiro minuto — qualquer cliente em conformidade descobre sozinho, sem uma linha de cola
Não como as pessoas entram — como você prova o que aconteceu depois. Toda mudança e toda requisição carrega autor, alvo e horário
Who changed what, in which environment, and when.
| Action | Actor | Category | When | Target |
|---|---|---|---|---|
| Rotated secret key | AdAda Lovelace[email protected] | security | yesterday at 14:02 | api_keysk-a91c07d5 |
| Promoted development to production | AdAda Lovelace[email protected] | environments | yesterday at 11:41 | environmentmain |
| Granted role admin | GrGrace Hopper[email protected] | permissions | 2 days ago | userusr_9de2b710 |
| Enabled provider apple | AlAlan Turing[email protected] | auth | 3 days ago | projectacme-web |
| Deleted environment preview/checkout | AlAlan Turing[email protected] | environments | 4 days ago | environmentpreview-checkout |
| Added redirect URL | GrGrace Hopper[email protected] | settings | 6 days ago | projectacme-web |
Cada mudança de configuração registrada com autor, alvo e categoria
Uma trilha pesquisável de requisições individuais, não só totais agregados
Uma chave de API pertence a um ambiente, então uma chave de teste não alcança produção
O login só retorna para as URLs listadas naquele ambiente
Tráfego e taxa de erro em gráfico, ao lado das requisições que os geraram
Staging e produção nunca compartilham estado, usuários ou chaves
SDKs tipados, um código de erro para cada falha, e quickstarts por framework que terminam com um usuário logado
const { data: verified } = await nulvless.auth.verify({
resource: "proj_16tbwq34",
roles: ["owner", "admin"],
});{
"data": {
"user": { "id": "usr_4c81f0a2" },
"session": {
"id": "ses_7b31d0",
"amr": [{ "method": "password" }, { "method": "totp" }],
"scopes": ["projects:write"]
}
},
"error": null
}Organizações contêm projetos, projetos contêm ambientes, e toda decisão de identidade é inspecionável até a requisição individual
Initialize
188ms
Promote authentication
653ms
Promote communications
285ms
Clientes e times
Membros · Billing · Uso · Logs de auditoria · Configurações
Identidade e acesso
Usuários · Papéis · Provedores · Proteção · Rate limits · Claims
Ambientes e releases
Ambientes · Comparação · Deployments · Redirects · API keys
Tráfego e histórico
Tráfego · Performance · Rede · Audiência · Serviços · Query de logs
Foque no seu produto. A infraestrutura de identidade é com a gente
O que você teria construído
Seis áreas, e cada uma delas é um projeto por si só.