Uwierzytelniania i zabezpieczeń
Artykuł ten jest wynikiem translacji automatycznej wykonywane przez oprogramowanie. Możesz przeglądać źródła artykułu tutaj.
Wprowadzenie
Jak do uwierzytelniania interfejsu API Ikoula i zabezpieczeń Zasady działalności ?
Wyjaśnienia
Z oczywistych względów bezpieczeństwa Ikoula API wymaga uwierzytelniania. Opiera się na nazwę użytkownika, hasło i podpis :
- ID to adres e-mail używany do połączenia z kontem Ikoula lub ekstranecie. Nazwę parametru, aby przejść jest zawsze Zaloguj się .
- Hasło to może być, jest dostarczane w postaci zwykłego tekstu (parametr password), jest szyfrowany za pomocą specjalnych funkcji przy użyciu klucza publicznego przez Ikoula (parametr crypted_password) i podstawa 64_encode
- Podpis jest generowany na podstawie parametrów podczas wywoływania funkcji API (Zobacz procedury generowania podpis ==> Generowanie podpisu)
Te ustawienia zawsze powinny być przekazywane w aby API !
UWAGĘ :
Przejście hasła w postaci zwykłego tekstu jest ułatwienie uchwytu API i służy jako debugowania. Do testowania API, można na przykład użyć tymczasowe user dedykowane do tych testów i uwierzytelniania Ciebie has│o (Zobacz WIKI dla stworzenia sous-utilisateur : https://support.ikoula.com/index-1-2-2835.html).
Wykorzystanie szyfrowania hasła przy użyciu klucza publicznego Ikoula jest niezbędna w każdym kontekście produkcji lub termin-sąd.
Jeśli wywołania interfejsu API są skazane na używane przez skrypt lub program, zaleca się tworzenie użytkownika dedykowanym do tego celu zamiast regularnych użytkowników ekstranetu.
Dostępne są dwie opcje :
- Kontakt z supportem dla tworzenia użytkowników ekstranetu
- Utworzyć sous-utilisateur bezpośrednio ze strony głównej konta ekstranetu (Zobacz WIKI dla stworzenia sous-utilisateur : https://support.ikoula.com/index-1-2-2835.html) szczególnie nie zapominając wprowadzenie prawa pożądane korzyści .
- Klucz publiczny z szyfrowania hasła jest dostępny pod następującym adresem
- https://api.ikoula.com/downloads/Ikoula.API.RSAKeyPub.pem
Przykłady
Na przykład, będzie logowania "ikoulasupport ".
Do szyfrowania hasła, Oto przykład funkcji przy użyciu klucza publicznego 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é
Zawarcia
Po zaszyfrowane hasło i zaszyfrowany podpis, więc może być wywołanie API z jako parametry (Jeśli pójdziemy do powyższego przykładu ) :
- login = ikoulasupport
- crypted_password = Base 64_encode($password_crypt)
- signature = generowane podpis (Zobacz procedury generowania podpis ==> Generowanie podpisu)
NB : Nie zapomnij url_encoder każdy parametr przekazany !
W tym artykule wydawało ci się przyda ?
Włącz automatyczne odświeżanie komentarzy