Autenticazione e protezione

Da It Ikoula wiki.
Jump to navigation Jump to search
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:אבטחה ואימות
Il presente articolo è stato tradotto tramite un software di traduzione automatica. È possibile visualizzare l'origine articolo qui.

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


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.