Consegui resolver. Realmente tive de inspecionar todo o fluxo do VtexID e também usar o serviço cors-anywhere para simular o acesso no vtex, assim liberando a api do VtexID para uso externo.
Para futuras pesquisas, seguem os fluxos:
Passos para cadastro
1. registrar o cliente no Master Data (email, nome, etc)
2. pegar informações do oauth
SUBMIT /api/vtexid/pub/authentication/start
response
armazenar authenticationToken
3. exibir formulário de email
SUBMIT /api/vtexid/pub/authentication/accesskey/send
request
enviar authenticationToken (encodeURIComponent)
enviar email
4. exibir formulário de código e senha
SUBMIT /pub/authentication/classic/setpassword
request
enviar authenticationToken (encodeURIComponent)
enviar newPassword
enviar accessKey
enviar login(email)
-----------------------------------------------------------------
Passos para login
1. pegar informações
SUBMIT /api/vtexid/pub/authentication/start
response
armazenar authenticationToken
2. exibir formulario de login por email e senha
SUBMIT /api/vtexid/pub/authentication/classic/validate?login={email}&authenticationToken={authenticationToken}&password={password}&_=1467835665242
request
enviar authenticationToken (encodeURIComponent)
enviar email
enviar senha
response
pegar authCookie
pegar accountAuthCookie
pegar expiresIn
(armazenar cookie)
-------------------------------------------------------------------------
Para a recuperação de senha basta seguir o mesmo que a criação, porém sem registrar o Master Data.