Modelo de Autenticação na Loja - Python
Aqui você encontra um programa de modelo, escrito na linguagem Python
para servir de referência na implementação da autenticação da loja com suas credenciais e certificado digital eCNPJ padrão ICP Brasil exportado para o formato PFX ou P12.
Aviso importante
O Consumer Key e Consumer Secret identificam seu usuário e seu contrato com o SERPRO. Mantenha essas informações protegidas.
Aplicação de Exibição
import base64
import json
from requests_pkcs12 import post
def serpro_componentes_autenticacaoLoja():
url = "https://autenticacao.sapi.serpro.gov.br/authenticate"
# arquivo exportado em formato PFX ou P12 com a chave privada e senha
# certificado eCNPJ ICP Brasil do contratante na loja Serpro
caminho_arquivo = 'caminho_do_arquivo'
certificado = caminho_arquivo + 'certificado.pfx'
senha = 'sEnha_do_certificado'
# credenciais loja Serpro para autenticação
consumer_key = "sua_customer_key"
consumer_secret = "sua_customer_secret"
# converte as credenciais para base64
def converter_base64(credenciais):
return base64.b64encode(credenciais.encode("utf8")).decode("utf8")
# autenticar na loja com o certificado digital do contratante
def autenticar(ck, cs, certificado, senha):
headers = {
"Authorization": "Basic " + converter_base64(ck + ":" + cs),
"role-type": "TERCEIROS",
"content-type": "application/x-www-form-urlencoded"
}
body = {'grant_type': 'client_credentials'}
return post(url,
data=body,
headers=headers,
verify=True,
pkcs12_filename=certificado,
pkcs12_password=senha)
return autenticar(consumer_key, consumer_secret, certificado, senha)
response = serpro_componentes_autenticacaoLoja()
print(response.status_code)
print(json.dumps(json.loads(response.content.decode("utf-8")), indent=4, separators=(',', ': '), sort_keys=True))
#
# Output:
# 200
# {
# "access_token": "05e658b6-212e-3f0e-b068-9d125a3ea479",
# "expires_in": 3032,
# "jwt_pucomex": null,
# "jwt_token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzMzY4MzExMTxj...",
# "scope": "am_application_scope default",
# "token_type": "Bearer"
# }
#
Linguagem de programação
Python 3
Versão | Autor | Código-fonte |
---|---|---|
1.0.0 | SERPRO | Serpro.Componentes.AutenticacaoLoja.Python.zip |
Certificado Digital
Utilizar o certificado digital de contratante eCNPJ padrão ICP Brasil.
Dependências
Pacotes importados via pip install
:
- requests_pkcs12
- base64
- json
Créditos e Licença
Esse componente foi criado pelas equipes do SERPRO.
E foi utilizado licença MIT.