Différences entre versions de « Authentification et sécurité »
m |
|||
Ligne 21 : | Ligne 21 : | ||
==Explications== <!--T:2--> | ==Explications== <!--T:2--> | ||
Pour des raisons évidentes de {{Template:Sécurité}}, l'API Ikoula exige une authentification. Celle-ci est basée sur un identifiant, un mot de passe et une signature :<br /> | Pour des raisons évidentes de {{Template:Sécurité}}, l'API Ikoula exige une authentification. Celle-ci est basée sur un identifiant, un mot de passe et une signature :<br /> | ||
− | * L'identifiant est l'adresse mail utilisée pour la connexion à votre compte Ikoula ou à l'extranet. Le nom du paramètre pour le transmettre est toujours <span class="notranslate">'''login'''</span> | + | * L'identifiant est l'adresse e-mail utilisée pour la connexion à votre compte Ikoula ou à l'extranet. Le nom du paramètre pour le transmettre est toujours <span class="notranslate">'''login'''</span> ; |
− | * Le mot de passe quant à lui peut être, soit fourni en texte clair (paramètre <span class="notranslate">'''password'''</span>), soit chiffré via une fonction spécifique utilisant une clé publique fournie par Ikoula (paramètre <span class="notranslate">'''crypted_password'''</span>) et base64_encode | + | * Le mot de passe quant à lui peut être, soit fourni en texte clair (paramètre <span class="notranslate">'''password'''</span>), soit chiffré via une fonction spécifique utilisant une clé publique fournie par Ikoula (paramètre <span class="notranslate">'''crypted_password'''</span>) et base64_encode ; |
− | * La signature est générée en fonction des paramètres fournis lors de l'appel à l'API (voir la procédure de génération de la signature ==> [[Génération_de_la_signature|Génération de la signature]]) | + | * La signature est générée en fonction des paramètres fournis lors de l'appel à l'API (voir la procédure de génération de la signature ==> [[Génération_de_la_signature|Génération de la signature]]). |
<br /> | <br /> | ||
'''Ces paramètres doivent toujours être passés en GET à l'API !''' | '''Ces paramètres doivent toujours être passés en GET à l'API !''' | ||
− | <br /><br />ATTENTION:<br /> | + | <br /><br />ATTENTION :<br /> |
− | Le passage du mot de passe en texte clair est fourni pour faciliter la prise en main de l'API et fait office de debug. Pour vos tests de l'API, vous pouvez par exemple utiliser un utilisateur temporaire dédié à ces tests et vous authentifier avec son mot de passe en clair ( | + | Le passage du mot de passe en texte clair est fourni pour faciliter la prise en main de l'API et fait office de debug. Pour vos tests de l'API, vous pouvez, par exemple, utiliser un utilisateur temporaire dédié à ces tests et vous authentifier avec son mot de passe en clair (voir le Wiki ci-après pour la création de sous-utilisateur: https://support.ikoula.com/index-1-2-2835.html).<br /><br /> |
L'utilisation du chiffrement de mot de passe avec la clé publique Ikoula est indispensable dans tout contexte de production ou non-court terme.<br /> | L'utilisation du chiffrement de mot de passe avec la clé publique Ikoula est indispensable dans tout contexte de production ou non-court terme.<br /> | ||
Si les appels API sont voués à être utilisés via un script ou un programme, nous vous recommandons la création d'un utilisateur dédié à cet effet plutôt que d'utiliser votre utilisateur extranet classique.<br /> | Si les appels API sont voués à être utilisés via un script ou un programme, nous vous recommandons la création d'un utilisateur dédié à cet effet plutôt que d'utiliser votre utilisateur extranet classique.<br /> | ||
Deux possibilités s'offrent à vous :<br /> | Deux possibilités s'offrent à vous :<br /> | ||
− | * Contacter notre support pour la création d'un utilisateur extranet | + | * Contacter notre support pour la création d'un utilisateur extranet ; |
* Créer un sous-utilisateur directement depuis la page d'accueil de votre compte extranet (Voir le WIKI ci-après pour la création de sous-utilisateur: https://support.ikoula.com/index-1-2-2835.html). | * Créer un sous-utilisateur directement depuis la page d'accueil de votre compte extranet (Voir le WIKI ci-après pour la création 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'''. | Attention à ne pas oublier '''de lui mettre les droits sur les prestations souhaitées'''. | ||
Ligne 96 : | Ligne 96 : | ||
==Conclusion== <!--T:5--> | ==Conclusion== <!--T:5--> | ||
Une fois le mot de passe crypté et la signature cryptée, on peut donc faire l'appel API avec comme paramètres (si on suit l'exemple ci-dessus) :<br /> | Une fois le mot de passe crypté et la signature cryptée, on peut donc faire l'appel API avec comme paramètres (si on suit l'exemple ci-dessus) :<br /> | ||
− | * login = ikoulasupport | + | * login = ikoulasupport ; |
− | * crypted_password = base64_encode($password_crypt) | + | * crypted_password = base64_encode($password_crypt) ; |
− | * signature = signature générée (voir la procédure de génération de la signature ==> [[Génération_de_la_signature|Génération de la signature]]) | + | * signature = signature générée (voir la procédure de génération de la signature ==> [[Génération_de_la_signature|Génération de la signature]]). |
<br /> | <br /> | ||
'''NB : N'oubliez pas d'url_encoder chaque paramètre passé !''' | '''NB : N'oubliez pas d'url_encoder chaque paramètre passé !''' |
Version du 2 mai 2016 à 11:48
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
Introduction
Comment s'authentifier à l'API Ikoula et les politiques de sécurité ?
Explications
Pour des raisons évidentes de sécurité, l'API Ikoula exige une authentification. Celle-ci est basée sur un identifiant, un mot de passe et une signature :
- L'identifiant est l'adresse e-mail utilisée pour la connexion à votre compte Ikoula ou à l'extranet. Le nom du paramètre pour le transmettre est toujours login ;
- Le mot de passe quant à lui peut être, soit fourni en texte clair (paramètre password), soit chiffré via une fonction spécifique utilisant une clé publique fournie par Ikoula (paramètre crypted_password) et base64_encode ;
- La signature est générée en fonction des paramètres fournis lors de l'appel à l'API (voir la procédure de génération de la signature ==> Génération de la signature).
Ces paramètres doivent toujours être passés en GET à l'API !
ATTENTION :
Le passage du mot de passe en texte clair est fourni pour faciliter la prise en main de l'API et fait office de debug. Pour vos tests de l'API, vous pouvez, par exemple, utiliser un utilisateur temporaire dédié à ces tests et vous authentifier avec son mot de passe en clair (voir le Wiki ci-après pour la création de sous-utilisateur: https://support.ikoula.com/index-1-2-2835.html).
L'utilisation du chiffrement de mot de passe avec la clé publique Ikoula est indispensable dans tout contexte de production ou non-court terme.
Si les appels API sont voués à être utilisés via un script ou un programme, nous vous recommandons la création d'un utilisateur dédié à cet effet plutôt que d'utiliser votre utilisateur extranet classique.
Deux possibilités s'offrent à vous :
- Contacter notre support pour la création d'un utilisateur extranet ;
- Créer un sous-utilisateur directement depuis la page d'accueil de votre compte extranet (Voir le WIKI ci-après pour la création 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.
- La clé publique de chiffrement du mot de passe est disponible à l'adresse suivante
- https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem
Exemples
Pour cet exemple, le login sera "ikoulasupport".
Pour crypter le mot de passe, voici un exemple de fonction utilisant la clé publique 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.";
<!--T:4-->
// ==> $password_crypt contient donc le mot de passe crypté
Conclusion
Une fois le mot de passe crypté et la signature cryptée, on peut donc faire l'appel API avec comme paramètres (si on suit l'exemple ci-dessus) :
- login = ikoulasupport ;
- crypted_password = base64_encode($password_crypt) ;
- signature = signature générée (voir la procédure de génération de la signature ==> Génération de la signature).
NB : N'oubliez pas d'url_encoder chaque paramètre passé !
Cet article vous a semblé utile ?
Activer l'actualisation automatique des commentaires