Autenticazione e protezione

Da It Ikoula wiki.
Jump to navigation Jump to search


Il presente articolo è stato tradotto tramite un software di traduzione automatica. È possibile visualizzare l'origine articolo qui.

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


Introduzione

Come autenticare le API Ikoula e condizioni Sicurezza ?

Spiegazioni

Pour des raisons évidentes de Sicurezza, l'API Ikoula exige une authentification. Celle-ci est basée sur un identifiant, un mot de passe et une firma :

  • L'ID è l'indirizzo email utilizzato per collegare l'account Ikoula o extranet. Il nome del parametro da passare è sempre account di accesso ;
  • Viene fornita la password come può essere, in testo non crittografato (parametro password), viene crittografato tramite una funzione specifica utilizzando una chiave pubblica fornita da Ikoula (parametro crypted_password) e Base64_encode ;
  • La firma viene generata in base ai parametri forniti quando si chiama l'API (vedere il processo di generazione della firma ==> Génération de la signature).


Queste impostazioni devono essere passate sempre in GET all'API !

ATTENZIONE :
Il passaggio della password in testo non crittografato viene fornito per facilitare la gestione dell'API e serve come un debug. Per i test all'API, è possibile, ad esempio, utilizzare un utente temporaneo dedicato a questi test e autenticare l'utente con la password in chiaro (vedere il Wiki per la creazione di sous-utilisateur: https://support.ikoula.com/index-1-2-2835.html).

L'utilizzo della crittografia della password con la chiave pubblica Ikoula è essenziale in qualsiasi ambiente di produzione o il termine non-Corte.
Se le chiamate API sono destinate a essere utilizzati tramite uno script o un programma, noi consigliamo di creare un utente dedicato a questo scopo anziché utilizzare il classico utente extranet.
Avete due opzioni :

  • Contatta il nostro supporto per la creazione di un utente extranet ;
  • Creare un sous-utilisateur direttamente dalla homepage del tuo account extranet (Vedere il WIKI per la creazione di 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.

Crittografia a chiave pubblica della password è disponibile al seguente indirizzo
https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem

Esempi

Per questo esempio, l'account di accesso sarà "ikoulasupport".
Per crittografare la password, ecco un esempio di una funzione utilizzando la chiave pubblica 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é

Conclusione

Una volta che la password e crittografati firma, possiamo fare la chiamata all'API con parametri (Se seguiamo l'esempio di cui sopra) :

  • login = ikoulasupport ;
  • crypted_password = base64_encode($password_crypt) ;
  • signature = firma generata (vedere il processo di generazione della firma ==> Génération de la signature).


NB : Non dimenticate di url_encoder ogni parametro passato !



Questo articolo sembra utile a voi ?

0

Catégorie:API



Non si dispone dei permessi necessari per inviare commenti.