MK-AUTH

Bom dia pessoal, tive uma demanda de um colega e estou começando o desenvolvimento de uma camada de segurança para o acesso à API RESTful do mk-auth. E o melhor, pretendo disponibilizá-la em um projeto Open Source no Github para que vcs possam usar livremente!

Não sei se todos aqui tem o conhecimento em desenvolvimento para Web, mas o nosso colega Pedro Filho com certeza tem! O que tenho em mente é criar um serviço a parte, que possa rodar até mesmo em outro servidor, que dê mais segurança e privacidade aos dados dos clientes do provedor.

Como farei isso? Bom, estou pensando em utilizar um sistema de autenticação OAuth2, ou seja, uma api_key individual para cada cliente, juntamente com o protocolo TSL 1.2 pra criptografar os dados. Pretendo usar a linguagem Python pois ela roda facilmente em qualquer SO e é bastante suportada na comunidade.

Não sou um desenvolvedor Web nato, eu sou programador de firmware e software utilizando C/C++, então se alguém tiver mais alguma ideia pra colaborar ou mesmo quiser ajudar no desenvolvimento, sinta-se à vontade em conversar comigo!

Abraços!

Exibições: 436

Responder agora

Respostas a este tópico

legal, ela funciona na 4.109 pois alterei para a key da API ser a senha em uma autenticação HTTP e não mais ser passada na url como anteriormente, mais o chrome não aceita isso no javascript, ocorre um erro, veja como ficou:

http://www.mk-auth.com.br/arquivos/api_teste.zip

Opa, eu desenvolvi para a versão 4.109 mesmo. Pra alterar para funcionar com as versões anteriores é tranquilo também, dá pra otimizar e colocar como parâmetro qual a versão da API que está rodando.

Vou criar uma wiki no GitHub para colocar um exemplo de uso pra ficar mais fácil de visualizar.

Eu usei o Postman pra realizar os testes, lá dá pra passar tranquilamente a autenticação.

Pedro Filho disse:

legal, ela funciona na 4.109 pois alterei para a key da API ser a senha em uma autenticação HTTP e não mais ser passada na url como anteriormente, mais o chrome não aceita isso no javascript, ocorre um erro, veja como ficou:

http://www.mk-auth.com.br/arquivos/api_teste.zip

Ótimo isso acompanhando novidades aqui!

Pessoal, já está disponível uma versão para testes.

https://github.com/bviecelli/mk-auth-api-secure

Qualquer dúvida/sugestão/melhoria vcs podem mandar lá no GitHub mesmo ou pro meu e-mail bviecelli@gmail.com

Se alguém aqui for desenvolvedor e quiser contribuir com o código, fique à vontade!

Abraços

Pedro como retorno os dados de ramais na API ?

Você quer listar os ramais de um cliente ou quer todos os ramais?

Nos detalhes do cliente vc consegue pegar o ramal dele.

Creio que não tenha como listar todos os ramais pela API.

João Luiz disse:

Pedro como retorno os dados de ramais na API ?

verdade, tem muita coisa para colocar mais estou muito sem tempo, mais João cria o arquivo joao.api.class.php e coloca ele dentro de /opt/mk-auth/api/ amigo com o conteúdo que irei colar abaixo e depois para acessar usa a url´s:

http://api:keyapiqueficanosdadosdaempresa@172.31.255.2/api/joao/listALL

para pegar todos ramais.

http://api:keyapiqueficanosdadosdaempresa@172.31.255.2/api/joao/list/172.31.255.1

para pegar um pelo ip de um ramal que no exemplo é 172.31.255.1 amigo.

e Bruno obrigado pela ajuda, é incrível o que vc criou amigo...


Bruno Viecelli disse:

Você quer listar os ramais de um cliente ou quer todos os ramais?

Nos detalhes do cliente vc consegue pegar o ramal dele.

Creio que não tenha como listar todos os ramais pela API.

João Luiz disse:

Pedro como retorno os dados de ramais na API ?

Conteúdo do arquivo joao.api.class.php

<?php
class joao {

function get_listAll() {
$queryAPI = "SELECT id, nasname, shortname, secret FROM nas";
$statement = DB::prepare($queryAPI);
$statement -> execute();
$row_rsAPI = $statement -> fetchAll();
$totalRows = count($row_rsAPI);

if ($totalRows == 0) {
echo json_encode('NULL');
exit();
}

echo "{\"JoaoRamais\":";
echo json_encode($row_rsAPI);
echo "}";
}

function get_list($valor) {
$queryAPI = "SELECT * FROM nas WHERE nasname = :nasname LIMIT 1";
$statement = DB::prepare($queryAPI);
$statement -> bindParam('nasname', $valor);
$statement -> execute();
$row_rsAPI = $statement -> fetch();
$totalRows = count($row_rsAPI);

if ($totalRows == 0) {
echo json_encode('NULL');
exit();
}

echo json_encode($row_rsAPI);
}

}

?>

Anexos

Por nada, isso vai facilitar a vida de um amigo que usa seu software pois ele precisa de um APP Android pra fornecer pros clientes dele, e com essa API eu deixo o ambiente dele seguro e consigo desenvolver o aplicativo pra ele.

:)

Também daria pra usar a base da API para o cliente final pra desenvolver uma outra pra administração. Não seria muito complicado.
Pedro Filho disse:

verdade, tem muita coisa para colocar mais estou muito sem tempo, mais João cria o arquivo joao.api.class.php e coloca ele dentro de /opt/mk-auth/api/ amigo com o conteúdo que irei colar abaixo e depois para acessar usa a url´s:

http://api:keyapiqueficanosdadosdaempresa@172.31.255.2/api/joao/listALL

para pegar todos ramais.

http://api:keyapiqueficanosdadosdaempresa@172.31.255.2/api/joao/list/172.31.255.1

para pegar um pelo ip de um ramal que no exemplo é 172.31.255.1 amigo.

e Bruno obrigado pela ajuda, é incrível o que vc criou amigo..

funcionou, obrigado pedro.

Pedro Filho disse:

Conteúdo do arquivo joao.api.class.php

<?php
class joao {

function get_listAll() {
$queryAPI = "SELECT id, nasname, shortname, secret FROM nas";
$statement = DB::prepare($queryAPI);
$statement -> execute();
$row_rsAPI = $statement -> fetchAll();
$totalRows = count($row_rsAPI);

if ($totalRows == 0) {
echo json_encode('NULL');
exit();
}

echo "{\"JoaoRamais\":";
echo json_encode($row_rsAPI);
echo "}";
}

function get_list($valor) {
$queryAPI = "SELECT * FROM nas WHERE nasname = :nasname LIMIT 1";
$statement = DB::prepare($queryAPI);
$statement -> bindParam('nasname', $valor);
$statement -> execute();
$row_rsAPI = $statement -> fetch();
$totalRows = count($row_rsAPI);

if ($totalRows == 0) {
echo json_encode('NULL');
exit();
}

echo json_encode($row_rsAPI);
}

}

?>

vlw o feedback e muito legal o trabalho do Bruno...

João Luiz disse:

funcionou, obrigado pedro.

Acompanhando, ainda estou tentado entender esta api!

Responder à discussão

RSS

Parceiros

© 2018   Criado por Pedro Filho.   Ativado por

Badges - Divulgar  |  Relatar erro no site  |  Termos de serviço