Проверка подлинности и безопасность

Материал из Ru 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:אבטחה ואימות
Эта статья является результатом автоматического перевода, выполняемого программного обеспечения. Вы можете посмотреть исходный статьи здесь.

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


Введение

Как проверить подлинность API Ikoula и политики Безопасность ?

Пояснения

Pour des raisons évidentes de Безопасность, l'API Ikoula exige une authentification. Celle-ci est basée sur un identifiant, un mot de passe et une подпись :

  • Идентификатор является адрес электронной почты, используемый для подключения вашей учетной записи Ikoula или экстрасети. Имя параметра для передачи всегда является Логин ;
  • Пароль может быть, предоставляется в виде открытого текста (параметр password), шифруется через конкретную функцию, используя открытый ключ, предоставляемый Ikoula (параметр crypted_password) и база64_encode ;
  • Подпись создается на основе параметров, указанных при вызове API (Просмотреть процесс генерации подписи ==> Génération de la signature).


Эти параметры всегда должны передаваться в GET API !

ВНИМАНИЕ :
Прохождение пароля открытым текстом предоставляется для облегчения обработки API и служит в качестве debug. Для тестов к API можно, например, использовать временный пользователь, посвященный тесты и проверки подлинности пользователя с паролем в ясной (смотрите вики для создания Су utilisateur: https://support.ikoula.com/index-1-2-2835.html).

Использование шифрования пароля с открытым ключом Ikoula имеет важное значение в любой производственной среде или срок без суда.
Если вызовы API обречены использовать через сценарий или программу, мы рекомендуем создать пользователя, выделенный для этой цели, а не использовать экстрасети пользователя classic.
Есть два варианта :

  • Обратитесь в нашу службу поддержки для создания экстрасети пользователя ;
  • Создание Су utilisateur прямо с главной страницы учетной записи экстрасети (Смотрите вики для создания Су utilisateur: https://support.ikoula.com/index-1-2-2835.html).

Attention à ne pas oublier de lui mettre les droits sur les prestations souhaitées.

Шифрование открытого ключа пароля доступен по следующему адресу
https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem

Примеры

Для этого примера будет логин "ikoulasupport".
Чтобы зашифровать пароль, Вот пример функции, с помощью открытого ключа 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é

Заключение

После того, как пароль шифруется и зашифрованные подписи, мы можем сделать вызов API с параметрами (Если мы следуем выше пример) :

  • login = ikoulasupport ;
  • crypted_password = База64_encode($password_crypt) ;
  • signature = подпись создается (Просмотреть процесс генерации подписи ==> Génération de la signature).


NB : Не забывайте каждый параметр, переданный url_encoder !



Эта статья представляется полезным для вас ?

0

Catégorie:API



Вы не можете оставлять комментарии.