Autenticação e segurança
Este artigo foi traduzido por um sistema de tradução automática. Você pode visualizar a fonte do artigo aqui.
he:אבטחה ואימות
ro:Autentificare și securitate
ru:Проверка подлинности и безопасность
pl:Uwierzytelniania i zabezpieczeń
ja:認証とセキュリティ
ar:الأمان والمصادقة
zh:身份验证和安全
de:Authentifizierung und Sicherheit
nl:Verificatie en beveiliging
it:Autenticazione e protezione
pt:Autenticação e segurança
es:Autenticación y seguridad
en:Authentication and security
Introdução
Como autenticar o API Ikoula e condições de Segurança ?
Explicações
Pour des raisons évidentes de Segurança, l'API Ikoula exige une authentification. Celle-ci est basée sur un identifiant, un mot de passe et une assinatura :
- O ID é o endereço de e-mail usado para se conectar a sua conta de Ikoula ou para a extranet. O nome do parâmetro para passar é sempre login ;
- A senha pode ser, é fornecida em texto não criptografado (parâmetro password), é encriptado através de uma função específica usando uma chave pública fornecida pelo Ikoula (parâmetro crypted_password) e Base64_encode ;
- A assinatura é gerada com base nos parâmetros fornecidos ao chamar o API (Ver o processo de geração de assinatura ==> Génération de la signature).
Essas configurações sempre devem ser passadas em GET para a API !
ATENÇÃO :
A passagem da senha em texto não criptografado é fornecida para facilitar o manuseio da API e serve como uma depuração. Para os testes para a API, você pode, por exemplo, usar um usuário temporário dedicado a estes testes e autenticá-lo com a senha no clear (consulte o Wiki para a criação de sous-utilisateur: https://support.ikoula.com/index-1-2-2835.html).
O uso de criptografia de senha com a chave pública Ikoula é essencial em qualquer ambiente de produção ou o tribunal não-termo.
Se as chamadas de API estão destinadas a ser utilizados através de um script ou um programa, podemos recomendar a criação de um usuário dedicado para esta finalidade em vez de usar seu clássico de extranet usuário.
Você tem duas opções :
- Entrar em contato com nosso suporte para a criação de um usuário da extranet ;
- Criar um sous-utilisateur diretamente da página inicial da sua conta extranet (Consulte o WIKI para a criação de sous-utilisateur: https://support.ikoula.com/index-1-2-2835.html).
Attention à ne pas oublier de lui mettre les droits sur les prestations souhaitées.
- Criptografia de chave pública da senha está disponível no seguinte endereço
- https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem
Exemplos
Para este exemplo, o login será "ikoulasupport".
Para criptografar a senha, aqui está um exemplo de uma função usando a chave pública ikoula :
// Chemin local vers la clef publique téléchargée à http://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem
define('API_PUB_KEY_PATH', dirname(__FILE__) . '/Ikoula.API.RSAKeyPub.pem');
// Fonction de cryptage du mot de passe via la clef publique Ikoula
function opensslEncryptPublic($password)
{
// Vérification de la présence de la clef publique
if(file_exists(API_PUB_KEY_PATH))
{
if(!empty($password))
{
// on récupére la clef public
$publicKey = openssl_pkey_get_public('file://'.realpath(API_PUB_KEY_PATH));
// Si il n'y a pas eu d'erreur lors de la récupération de la clef publique on continue
if ($publicKey !== FALSE)
{
// Si chiffrement clef publique OK
if(openssl_public_encrypt($password, $crypted, $publicKey) === TRUE)
{
// Renvoie du passe crypté
return $crypted;
}
else
{
return NULL;
}
}
else
return NULL;
}
else
return NULL;
}
else
{
echo("Erreur la clée public n'est pas présente.\n");
return NULL;
}
}
// Utilisation de la fonction de cryptage
$password_crypt = opensslEncryptPublic("Mot de passe non crypté");
if($password_crypt != NULL)
echo "OK Mot de passe crypté: ".$password_crypt;
else
echo "Erreur lors du cryptage du mot de passe.";
// ==> $password_crypt contient donc le mot de passe crypté
Conclusão
Uma vez que a senha criptografada e criptografado assinatura, podemos fazer a chamada de API com parâmetros (Se seguirmos o exemplo acima) :
- login = ikoulasupport ;
- crypted_password = base64_encode($password_crypt) ;
- signature = assinatura gerada (Ver o processo de geração de assinatura ==> Génération de la signature).
NB : Não se esqueça de url_encoder cada parâmetro passado !
Este artigo parece útil para você ?
Ativar a atualização automática de comentários