dados-abertos
dados-abertos copied to clipboard
Erro de permissão 403
Trabalhoo no Banco Central do Brasil e o sistema Dados Abertos está bloqueando o nosso acesso à URL de atualização de dados dos deputados. Está dando erro de permissão 403.
"Forbidden You don't have permission to access /SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request."
Segue um exemplo de URL: http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=194259&numLegislatura=
Não é só esta URL que dá erro de permissão na Câmara. Existem outras URLs da câmara que às vezes dão erro de permissão 403.
Confirmo que há alguns dias este endpoint está constantemente retornando status 403
Algo transitório que já se resolveu. Confirma @urbanobm ?
Caro Raphael, Obrigado pelo retorno. Infelizmente o problema ainda persiste, veja:
URL: http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=73535&numLegislatura
Erro: javax.ws.rs.ForbiddenException: HTTP 403 Forbidden
Favor verificar novamente.
A impressão que dá é que se eu chamar as URLs algumas vezes seguidas o problema começa a acontecer. Hoje de manhã aconteceu novamente. Seguem alguns exemplos de URLs de retornaram o erro:
http://www.camara.leg.br/SitCamaraWS/Orgaos.asmx/ObterMembrosOrgao?IDOrgao=537230
http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=146788&numLegislatura
@urbanobm nas urls de parlamentares está faltando um =
após o parâmetro numLegislatura
Quanto ao endpoint de Orgãos, o id solicitado não existe - veja aqui os órgãos disponívies.
Raphael, Os órgãos que eu estou pesquisando dados são os mesmos que consulto diariamente e são retornados através de uma outra URL dos dados abertos. Segue um exemplo:
http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=73666&numLegislatura=
Pela URL acima consultei os dados de um parlamentar que me retornou os órgãos que o mesmo participa. Um dos órgãos retornados na consulta é o 526076. VEja o trecho da resposta da primeira consulta:
Com base nesta resposta consulta a segunda URL passando o código do órgão "idOrgaoLegislativoCD" igual a "526076".
URL: http://www.camara.leg.br/SitCamaraWS/Orgaos.asmx/ObterMembrosOrgao?IDOrgao=526076
Aí recebo a resposta que o órgão não existe.
Você está consultando o node Deputado
em outra Legislatura - no caso, 52. Ele foi membro deste órgão à época, mas o órgão não existe mais.
A questão da URL do parlamentar foi resolvida?
Sobre o símbolo "=" na URL, foi somente um lapso meu na hora de escrever aqui. Tenho vários exemplos da URLs que deram erro de permissão agora de manhã. Por exemplo:
http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=73531&numLegislatura=
http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=151208&numLegislatura=
http://www.camara.leg.br/SitCamaraWS/Deputados.asmx/ObterDetalhesDeputado?ideCadastro=146788&numLegislatura=
Tenho um processo que executa diariamente carregando os dados da Câmara para um sistema interno aqui do Banco Central do Brasil. Aparentemente, começa a dar erros de permissão quando chamo seguidamente algumas URLs da Câmara.
As URLs que tem o padrão conforme a que coloquei aqui abaixo também costumam dar erro 403 se chamadas com certa frequência:
http://www.camara.leg.br/SitCamaraWS/SessoesReunioes.asmx/obterInteiroTeorDiscursosPlenario?codSessao=018.3.55.O&numOrador=2&numQuarto=5&numInsercao=0
Infelizmente não consigo reproduzir @urbanobm
Raphael, se a questão de restringir acessos constantes a um padrão de URL não for dentro da aplicação dos Dados Abertos sugiro uma verificação com a equipe de rede/segurança para saber se existe algum firewal interno de vocês fazendo este bloqueio.
Aqui todos abriram. Será que não é algo na rede de vocês? Tente pegar o resultado de um curl -vv
(Aliás galera da cdep, o varnish de vocês está retornando X-Cache-Action: MISS
. Eu fiz várias requisições para o mesmo endereço agora, para testar, e ele deu esse header ai... deve ter algum problema no setup ...
Inclusive porque tem Cache-Control: private, max-age=0
tbm...
@urbanobm não sou da CD - só tentando ajudar 👍 @diraol valeu pela confirmação!
Raphael, Aqui não dá erro 403 se eu chamar a URL pelo browser e der F5 várias vezes. Mas o processo batch que tenho aqui começa a receber este tipo de erro no decorrer do tempo que executa. Coloquei um "delay" entre as chamadas aqui pra testar. O problema parecia ter se resolvido mas na verdade houve apenas uma melhora. Por isso estou insistindo nessa questão.
Sendo mais objetivo, não existe do lado de vocês algum mecanismo de proteção contra ataques que está dando este erro 403 para nós?
@rapcal e @diraol, vocês sabem quem poderia verificar este problema?
Olá, pessoal!
Desculpem a demora na resposta. Por alguma razão só recebemos hoje os e-mails de aviso sobre a movimentação na thread.
Houve uma migração do sistema de banco de dados da Câmara no último fim de semana e isso vem causando uma série de problemas diversos em todos os serviços ligados a ele, como o Dados Abertos. às vezes problemas por conta de mudanças nas colunas de uma tabela, às vezes por permissão de acesso à base por alguns serviços, e às vezes por pura e simples instabilidade causada pelas necessidades de reiniciar serviços. Mais uma vez, peço desculpas.
Junto a isso, houve também uma recente reconfiguração dos servidores porque pelo menos alguns dos endpoints do Dados Abertos estavam trabalhando igualmente com GET e POST sem necessidade. Se a requisição causadora do problema for feita com POST, por favor faça um teste com GET.
Assim como diraol, consegui testar todos esses endpoints sem qualquer problema (usando a rede da própria Câmara, é verdade). Se você perceber alguma mudança, por favor avise!
Abraços!
Fabricio Rocha Equipe de Dados Abertos Centro de Informática da Câmara (CENIN)
Caro @CeninCD , alguns endpoints só dão problema de erro 403 após algumas chamadas em sequencia a partir do Banco Central. Por isso insisto que você não conseguirá reproduzir o erro da sua rede interna e mesmo de uma rede externa com apenas uma chamada. Para solucionar o problema o pessoal aí dos Dados Abertos responsável pelas redes e pela segurança precisaria ser inserido na nossa conversa. Você consegue envolvê-los? Obrigado,
@urbanobm
Vc está fazendo muitas chamadas, de forma repetitiva em muito pouco tempo. Tenta criar um controle de chamadas.
Saiba mais sobre esse problema: https://api.stackexchange.com/docs/throttle
@DaniloOliveira28 , coloquei um intervalo de 1 segundo entre uma requisição e outra e mesmo assim, ás vezes, o problema acontece.
@urbanobm tenta usar um algoritmo de Throttling. http://krishnaprasadas.blogspot.com.br/2012/05/throttling-algorithm.html
O mesmo erro aconteceu aqui, mas atrasando meio segundo consegui fazer o que queria... Abaixo uma imagem retornada no navegador
@EquipeDadosAbertosCD @CeninCD, existe algum tipo de "rate limit" (por segundo, por minuto, por hora, por dia) no Webservice (não API REST) de vocês?
Seria legal ter essa informação publicizada para que possamos adequar nossos serviços às especificações do sistema de vocês, acho que todo mundo sai ganhando. =)
Estamos, no RadarParlamentar, fazendo um revert do uso da API Rest para o Webservice (porque alguns dos recursos que precisamos e haviam sido migrados foram "deprecados" na API REST), e ai estamos recebendo esses erros (403) novamente.
Salve, Diego!
A limitação de acessos foi feita em janeiro, anunciada na issue #208 . O pessoal da área de segurança dos servidores me informou que os webservices estão atualmente configurados com os seguintes limites por IP:
- Máximo de 80 conexões simultâneas
- Máximo de 20 requisições por segundo
Por favor verifique se a forma de consulta de vocês bate em algum desses limites. Há outras configurações de servidor usadas para proteção contra denial of service que podem causar esse erro 403, e talvez mesmo adequando a consulta para esses limites o problema ainda pode ocorrer. Se isso acontecer, nos envie por e-mail o IP usado por vocês para verificarmos pelo log as causas.
Abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Salve Fabrício!
Muito obrigado pelo rápido feedback!
Já encaminhei a mensagem ao pessoal que está trabalhando nessa integração, vamos tentar gerenciar as conexões/requisições e ver se isso resolve o problema. Se não resolver, avisamos por aqui. =) [se resolver avisamos também!]
Abraços!