Autenticazione e protezione
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 ?
Attivare l'aggiornamento automatico dei commenti