vsql_oauth2 permite que uma conta faça login com um JWT em vez de uma
senha. A extensão verifica a assinatura do token, com chaves obtidas de um
endpoint JWKS ou com uma única chave pública estática, verifica se o token não
expirou e mapeia uma claim dentro dele para uma conta do VillageSQL. O seu
provedor de identidade continua sendo o único lugar que emite credenciais.
Instalar
Ovsql_oauth2.veb já está no diretório lib/veb/ do servidor se você
instalou o VillageSQL com o script de instalação, a imagem Docker ou um tarball
de release. Instale-o no servidor com uma única instrução:
O que ela adiciona
Ela adiciona um plugin de autenticação, e não funções SQL. Nomeie o plugin ao criar a conta, e essa conta passa a se autenticar apresentando um token:username_claim, sub por padrão, fornece esse nome.
Quando o seu valor é analyst, a instrução acima é tudo de que você precisa.
Quando ela nomeia outra coisa, como um endereço de e-mail, crie essa conta
também e deixe a conta que se conecta atuar como proxy dela:
ACCOUNT LOCK impede que alguém faça login como alice@example.com
diretamente, e a concessão de proxy continua funcionando para uma conta
bloqueada. Um servidor que executa o validate_password se recusa a criar uma
conta sem senha, bloqueada ou não, respondendo
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements. Onde isso se aplica, dê à conta uma senha que ninguém possui.
Sem a concessão de proxy, o login é recusado com
ERROR 6126 (HY000): Access denied for user 'oidc_user'@'localhost', missing proxy privilege.
Todo o resto é configuração.
Assinaturas RSA são aceitas como RS256, RS384 e RS512, e ECDSA como ES256,
ES384 e ES512.
Uma configuração gravada com
SET PERSIST sobrevive a uma reinicialização,
mas UNINSTALL EXTENSION a apaga. Após desinstalar e reinstalar, toda
configuração volta ao seu padrão, e nenhuma reinicialização traz o valor
antigo de volta.Variáveis de status
Veja também
- Autenticação JWT no MySQL — um login completo, mapeamento de claims e por que um token rejeitado parece uma senha errada
- Gerenciando extensões — como as configurações de extensão são lidas e gravadas
- Capabilities Preview — o que o flag de preview ativa e o que ele promete
- Extensões disponíveis — o catálogo completo
- villagesql/vsql-oauth2 — código-fonte, uma configuração completa de provedor e as limitações conhecidas