Authentification
Authentification HTTP "Basic"
Cette méthode d'authentification nécessite d'activer l'accès à l'API (elle est désactivée par défaut). Vous devez être le propriétaire du compte iScriba pour activer l'API.
Lorsque vous vous connectez à iScriba avec le propriétaire du compte, vous avez accès à la rubrique "Paramètres de l'API" dans la section "Configuration". A partir de cette rubrique vous pouvez choisir d'activer ou de désactiver l'API.
Avec ce mode d'authentification, toutes les requêtes doivent inclure votre nom d'utilisateur et votre mot de passe encodés en Base64.
Exemple de requête avec cURL :
curl -u #:#{password}'\ -H 'User-Agent: #{user_agent}'\ -X GET https://#{subdomain}.iscriba.com/api/#{arguments}Haut
Authentification avec OAuth 2.0
Si vous développez une application qui se connecte à l’API iScriba, nous vous demandons d’utiliser l’authentification via OAuth 2.0. Cela nous permet de suivre l’utilisation de l’API par vos applications tout en conservant les données de nos utilisateurs en toute sécurité. Il s’agit d’un standard utilisé par de nombreux fournisseurs d’API, comme par exemple l’API Facebook "Graph API". De plus, seule l’authentification via OAuth 2.0 permet d’accèder à l’API même si l’utilisateur n’a pas activé celle-ci.
Si vous avez eu de mauvaises expériences avec OAuth 1.0, rassurez-vous, la nouvelle version est radicalement plus simple à utiliser.
1. Inscription
Commencez par créer un compte développeur et référencez votre application afin d’obtenir votre jeu d’identifiants. Ce jeu d’identifiants est composé de deux clés : "CLIENT ID" et "CLIENT SECRET".
Sachant que chaque jeu d’identifiants est lié à une URL particulière, vous devriez penser à créer deux jeu d’identifiants : un pour votre serveur de développement et un pour votre serveur de production.
2. Obtenir une autorisation d'accès
Il y a trois façons d’obtenir une autorisation d'accès.
Application hébergée sur un serveur
- Redirigez les utilisateurs qui souhaitent s’authentifier sur l’adresse : https://secure.iscriba.com/oauth2/authenticate?client_id=#{client_id}&response_type=code&redirect_uri=#{redirect_uri}
- Si l’utilisateur accepte, il sera rediriger vers l’adresse : https://#{redirect_uri}/?code=#{code}
- Votre serveur fera ensuite la requête suivante : https://secure.iscriba.com/oauth2/access_token?client_id=#{client_id}&client_secret=#{client_secret}&grant_type=authorization_code&redirect_uri=#{redirect_uri}&code=#{code}
- La réponse sera au format JSON : { access_token: #{access_token} }
- Sauvegardez ce jeton d'accès pour l'utilisateur dans votre base de données.
Application purement en AJAX
- Redirigez les utilisateurs qui souhaitent s’authentifier sur l’adresse : https://secure.iscriba.com/oauth2/authenticate?client_id=#{client_id}&response_type=token&redirect_uri=#{redirect_uri}
- Si l’utilisateur accepte il sera redirigé vers l’adresse : https://#{redirect_uri}/#code=#{code}
Application mobile ou côté client
(Android Java, iOS, Objective-C, etc...)
- Si vous avez un serveur qui communique avec votre application, nous vous recommandons fortement d’utiliser la méthode « Application hebergée sur un serveur » décrite ci-dessus, par exemple dans un navigateur intégré. Vous obtiendrez automatiquement l’interface mobile.
- Si vous n’avez pas de code côté serveur, vous pouvez intégrer un navigateur Web et utiliser la méthode « Application purement en AJAX » décrite ci-dessus. Vous pouvez alors récupérer le code d’autorisation dans le navigateur et fermer celui-ci.
- Une alternative à ce qui précède est d’utiliser la méthode « Application hebergée sur un serveur » et un navigateur externe, mais rediriger vers un gestionnaire d’URI personnaliser qui ramène l’utilisateur vers votre application.
3. Faire des requêtes
Une fois que vous avez un jeton d’accès, vous avez trois possibilités pour authentifier vos requêtes :
- inclure la chaîne : ?access_token=#{access_token} dans toutes vos requêtes sur l’API. Par exemple :
curl -H 'User-Agent: #{user_agent}'\ -X GET https://#{subdomain}.iscriba.com/api/#{arguments}?access_token=#{access_token}
- inclure un champ "access_token" que vous transmettez via POST
- inclure l'entête HTTP "Authorization" sous la forme : "Authorization: OAuth2 #{access_token}". Par exemple :
curl -H 'User-Agent: #{user_agent}'\ -H "Authorization: OAuth2 #{access_token}"\ -X GET https://#{subdomain}.iscriba.com/api/#{arguments}
Notes
Vous pouvez rencontrer un problème en développant une application sous Android car nous utilisons un certificat SSL de type Wildcard. Pour plus d’informations consultez la réponse Stack Overflow suivante : http://stackoverflow.com/questions/3135679/android-httpclient-hostname-in-certificate-didnt-match-example-com-exa
Bien qu’actuellement nous ne faisons pas expirer les jetons d’accès OAuth, vous devriez vous préparer pour cette possibilité dans le futur. Vous devez également développer en gardant en tête le fait que l’utilisateur peut révoquer le jeton d’accès à tout moment depuis l’interface Web.
Haut