Autenticação e segurança

Fonte: Pt Ikoula wiki
Ir para navegação Ir para pesquisar
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

fr:Authentification et sécurité en:Authentication and security es:Autenticación y seguridad pt:Autenticação e segurança it:Autenticazione e protezione nl:Verificatie en beveiliging de:Authentifizierung und Sicherheit zh:身份验证和安全 ar:الأمان والمصادقة ja:認証とセキュリティ pl:Uwierzytelniania i zabezpieczeń ru:Проверка подлинности и безопасность ro:Autentificare și securitate he:אבטחה ואימות
Este artigo foi traduzido por um sistema de tradução automática. Você pode visualizar a fonte do artigo aqui.

fr:Authentification et sécurité 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ê ?

0

Catégorie:API



Não tem permissão para colocar comentários.