Proposta de Feature: AiCredentials para Gerenciamento de Credenciais
Descrição:
A funcionalidade AiCredentials é uma feature que auxilia no gerenciamento das credenciais. Ela permite criar e salvar várias credenciais que podem ser acessadas pelos providers. Você pode salvar múltiplas credenciais, com diferentes propósitos e formatos.
Como funciona:
Fluxo de Uso:
Usuário -> *AiCredential -> Provider
Usuário -> Cmdlet específico de credencial do Provider -> Cmdlets internos de AiCredential
O usuário invoca um dos comandos do AiCredential. Estes comandos são padronizados e independentes do provider. Eles operam em uma estrutura de dados que tem uma definição e é independente do provider.
Os providers, quando precisam de credenciais, utilizam essa mesma estrutura, através de cmdlets internos que permitem acesso às credenciais do usuário.
Principais Operações:
Existem quatro principais operações que o usuário pode fazer:
Cadastrar uma nova credencial
Buscar credenciais
Ativar credenciais
Usar a credencial para autenticação
1. Cadastro de Credencial
Esta operação é feita com o cmdlet Set-AiCredential.
Este comando provê duas informações independentes do provider: Nome e Descrição.
O PowerShAI vai criar um objeto chamado AiCredential, que representa a credencial.
Ele é uma hashtable que contém, pelo menos, os campos: nome, descrição e credential.
Além dessas keys, o provider pode adicionar mais informações ao objeto criado.
Quando o usuário invoca esse comando, o cmdlet repassa ao provider o pedido de credencial através da interface SetCredential.
Isto é, o provider deve implementar essa função. Caso não seja implementado, o PowerShAI usa a interface padrão, que é solicitar ao usuário o Get-Credential.
SetCredential pode disparar exceções para, por exemplo, informar que as credenciais não são válidas.
Se ela retornar com sucesso (ou não retornar), o PowerShAI então armazena essa credencial na credential store do provider. Isto permite que essas credenciais sejam salvas e posteriormente referenciadas pelo nome.
2. Listagem de Credenciais
O usuário pode, a qualquer momento, listar suas credenciais usando o comando Get-AiCredentials.
Isso deve retornar um array de objetos contendo nome, descrição, credential e um campo com a hashtable contendo os dados customizados pelos providers.
3. Ativar Credencial
O comando Set-AiCredential pode ser usado para definir qual é a credencial ativa.
A credencial ativa deve ser usada pelo provider para se autenticar.
4. Obter Credencial Ativa
O comando interno GetProviderActiveCredential deve ser usado pelos providers para obter o objeto com a credencial ativa atual.
Ele pode receber o nome de um provider específico ou usar o provider atual (ou do contexto atual).
Os providers devem usar esse mecanismo sempre que precisarem das credenciais do usuário.
Opcionalmente, neste momento, eles podem solicitar ao usuário validações adicionais, como TOTP.
Resumo:
A proposta é implementar uma funcionalidade que permita o gerenciamento centralizado de credenciais através de comandos padronizados, facilitando a interação entre o usuário e os providers, e proporcionando flexibilidade para múltiplas credenciais com diferentes propósitos e formatos.
Observações:
Garantir que os providers implementem a interface SetCredential para melhor integração.
Considerar mecanismos de validação adicionais conforme a necessidade de segurança.
Os providers podem adicionar informações customizadas ao objeto AiCredential conforme necessário.
Conclusão:
Esta feature irá melhorar a experiência do usuário ao gerenciar credenciais, proporcionando um meio padronizado e flexível de interação com diferentes providers.
Proposta de Feature: AiCredentials para Gerenciamento de Credenciais
Descrição:
A funcionalidade AiCredentials é uma feature que auxilia no gerenciamento das credenciais. Ela permite criar e salvar várias credenciais que podem ser acessadas pelos providers. Você pode salvar múltiplas credenciais, com diferentes propósitos e formatos.
Como funciona:
Fluxo de Uso:
O usuário invoca um dos comandos do AiCredential. Estes comandos são padronizados e independentes do provider. Eles operam em uma estrutura de dados que tem uma definição e é independente do provider.
Os providers, quando precisam de credenciais, utilizam essa mesma estrutura, através de cmdlets internos que permitem acesso às credenciais do usuário.
Principais Operações:
Existem quatro principais operações que o usuário pode fazer:
1. Cadastro de Credencial
Esta operação é feita com o cmdlet
Set-AiCredential
.Este comando provê duas informações independentes do provider: Nome e Descrição.
O PowerShAI vai criar um objeto chamado
AiCredential
, que representa a credencial.Ele é uma hashtable que contém, pelo menos, os campos:
nome
,descrição
ecredential
.Além dessas keys, o provider pode adicionar mais informações ao objeto criado.
Quando o usuário invoca esse comando, o cmdlet repassa ao provider o pedido de credencial através da interface
SetCredential
.Get-Credential
.SetCredential
pode disparar exceções para, por exemplo, informar que as credenciais não são válidas.Se ela retornar com sucesso (ou não retornar), o PowerShAI então armazena essa credencial na credential store do provider. Isto permite que essas credenciais sejam salvas e posteriormente referenciadas pelo nome.
2. Listagem de Credenciais
Get-AiCredentials
.nome
,descrição
,credential
e um campo com a hashtable contendo os dados customizados pelos providers.3. Ativar Credencial
Set-AiCredential
pode ser usado para definir qual é a credencial ativa.4. Obter Credencial Ativa
O comando interno
GetProviderActiveCredential
deve ser usado pelos providers para obter o objeto com a credencial ativa atual.Ele pode receber o nome de um provider específico ou usar o provider atual (ou do contexto atual).
Os providers devem usar esse mecanismo sempre que precisarem das credenciais do usuário.
Opcionalmente, neste momento, eles podem solicitar ao usuário validações adicionais, como TOTP.
Resumo:
A proposta é implementar uma funcionalidade que permita o gerenciamento centralizado de credenciais através de comandos padronizados, facilitando a interação entre o usuário e os providers, e proporcionando flexibilidade para múltiplas credenciais com diferentes propósitos e formatos.
Observações:
SetCredential
para melhor integração.AiCredential
conforme necessário.Conclusão:
Esta feature irá melhorar a experiência do usuário ao gerenciar credenciais, proporcionando um meio padronizado e flexível de interação com diferentes providers.
Referências:
Set-AiCredential
,Get-AiCredentials
,GetProviderActiveCredential
SetCredential
Sugestões Adicionais: