Criar de níveis de acesso para as chaves de api da Vtex

Alguém já teve sucesso em criar níveis de acesso, ou seja, restrições sobre o que acada app key de api criada na Vtex pode acessar?

Hoje, me parece que cada chave dá acesso total a todas as APIS. Existe um modelo extremamente confuso e genérico de associação de app keys a acessos e usuário no admin, que para mim não faz o menor sentido.

Em uma era de LGPD e tanta preocupação com segurança de dados, me parece que a Vtex não possui uma arquitetura de niveis de acesso bem detalhados. Qualquer empresa grande teria isso, autenticação de api via oauth, rotação de chaves de api.

Alguem diz que estou errado?

O que os desenvolvedores preocupados com segurança pensam?

Hoje, por exemplo, não existe qualquer método objetivo de se dar acesso somente às apis do escopo de integração de seller, por exemplo, quando o seller é não vtex (integração de seller não vtex com marketplace vtex). Mais ainda, não é possível filtrar os dados por seller no acesso as apis. Ou acessa todos os sellers, ou não acessa nada... é o que me parece

Não tem acesso total se você criar um perfil exclusivo para cada AppKey... é o mesmo processo de criação de perfil e vincular em um email específico.

Cada Appkey você vincula em um perfil =)

https://help.vtex.com/tutorial/visao-geral-do-modulo-license-manager?locale=pt

Ok, Nathan, mas como sei quais niveis se referem a estas apis por exemplo:

CATALOG API

CHECKOUT API

ORDERS API

SEARCH API

SUGGESTIONS API

Me parece tudo muito genérico

Como por exemplo restrinjo somente às apis desta documentação?

https://help.vtex.com/tutorial/integration-guide-for-marketplaces-seller-non-vtex--yMji0ow0rQuYgQsg26Kus

Quando se cria um perfil, ele é separado por módulos... então se a appkey vai ter acesso ao catalogo, lá dentro você tem as opções que se referem a este modulo como cadastrar produtos, editar, e por aí vai.

Não existe hoje uma documentação citando quais tipos de acesso cada opção faz, até porque no nível de crescimento de módulos/funcionalidades da VTEX seria difícil manter essa documentação atualizada 100% toda vez que é atualizada.

Aconselho a abrir um ticket na VTEX e solicitar a informação de quais opções você precisa adicionar neste perfil criado para conseguir rodar essa integração!

Espero ter ajudado.

Olá Nathan

É que todos os niveis de acesso descritos fazem sentido para o acesso de um ser humano no admin, mas não faz o menor sentido para o acesso de outro sistema/integração via api.

Eu me refiro exclusivamente à restrição de acesso via chamadas de API. Não me interessa o acesso ao admin, esse é 100% vetado. Me refiro a autenticação entre outros sistemas web e a minha Vtex.

Porém o único perfil que parece existir é o de webservice e mesmo assim é somente para integração de ERP. Sendo que webservice hoje em dia nem é mais um padrão muito utilizado.

Entendo que seria difícil manter a documentação, mas mais dificil ainda é gerenciar segurança de dados com níveis de acesso tão amplos e irrestritos.

Hoje eu gero uma app key para um serviço de email marketing por exemplo e ele tem acesso a todos os meus pedidos, todo meu catalogo, absolutamente tudo...

Então você está criando appkey errado! Pois quando se cria uma nova appkey, ela vai aparecer para você vincular qualquer perfil que você quiser.

Se hoje uma ferramenta de email mkt está com acesso total, você liberou este acesso.

Uma ferramenta desse tipo, talvez tenha que ter acesso aos seus pedidos, catalogo e master data.

Se verificar a documentação que enviei verá que é possível criar um perfil seu, customizado para as suas necessidades, você não é obrigado a utilizar apenas os que existem na sua plataforma.

Nathan, me refiro a acesso somente por APIs

A ferramenta de email marketing vai acessar meus dados por APIS, 100% via requisições de API. Ela não vai entrar no meu admin e esse nem é minha preocupação. O problema é ela ter acesso a todas as minhas APIS, sem qualquer restrição ou restrições que são muito difíceis de entender.....

É neste momento em que eu não consigo definir exatamente quais APIS da minha loja vtex o serviço vai acessar, entende? Ela pode simular carrinho, ela pode criar pedidos, atualizar pedidos, enviar skus para os sugestions, mudar configuração de promoção, tudo isso via api, entende?

Appkey e apptoken pelo que entendi são cartas brancas para acessar todas as apis do meu sistema vtex.

Eu tento muito que me provem o contrário, mas parece que não é possivel.. gostaria muito. Porque não adianta ter niveis de acesso se eles são totalmente genéricos

o controle tanto do admin quanto api fica na mesma área... você já chegou a criar um perfil novo?

novamente alexandre.... ter uma appkey não quer dizer que vai conseguir acessar toda a loja pois você vincula um perfil nessa chave.

Nathan, vou te dar um exemplo. Vamos pensar em niveis de acesso ao Catalog

O que o perfil me oferece:

11q

Estrututura da API CATALOG:

qqa

Veja como são estruturas totalmente diferentes? Como consigo definir num perfil de usuário o acesso a uma API cuja arquitetura é completamente diferente?

Por que um appkey que deveria pura e somente autenticar requisições a uma api dá acesso a um admin? Em qualquer sistema robusto, isso seria completamente separado.

Além disso, qual a lógica de perfis de usuários humanos no admin serem administrados da exata mesma forma que requisições via api feita por sistemas? Não faz o menor sentido isso...

A VTEX utiliza as mesmas apis disponibilizadas na documentação para realizar alguma função no admin, é claro que uma ou outra configuração você vai ter apenas por API por questões de segurança ou o inverso.

Cada caso será um caso, não há como eu especificar o que você vai ter que adicionar de acesso para deixar toda a api do catalogo livre.

Ex: No perfil temos o item "Category Management", este concede acesso para realizar as configurações de categoria...

Entendo sua frustração sobre essa parte, por isso aconselhei a abrir um ticket na VTEX caso tenha a necessidade de liberar acesso somente aos itens da documentação que enviou sobre marketplace.

Olá Nathan

Agradeço bastante o empenho em ajudar. Tenho um tiquet na vtex sim, espero que consigamos definir estes perfis