Authentification à l'aide d'un mot de passe
Bonjour à tous,
Je suis en train de développer une application métier qui devra être sécurisée et dont certaines options ne seront accessible qu'à une liste de personnes bien définie. La liste de ces personnes sera assez réduite, et n'évoluera pas (une trentaine de noms/matricules fixées à l'avance parmi les 900 utilisateurs au total) et je peux donc la gérer facilement.
Par contre, mon problème est de vérifier que ce sont les bonnes personnes qui utilisent l'option " sécurisée ", car il serait facile de connaitre le matricule d'une personne autorisée, ou même de se tromper sur son propre matricule et de tomber au hasard sur un matricule " autorisé ". Je dois donc utiliser un mot de passe et il est hors de question de stocker les mots de passe dans l'application.
Pour m'assurer qu'il s'agit bien des bonnes personnes, il m'est demandé d'utiliser leurs identifiants de connexion à notre compte " planning ". Cette connexion doit se faire en saisissant un matricule, et un mot de passe. Ce qui m'intéresse ce n'est pas d'accéder au compte mais uniquement de savoir si le serveur a répondu positivement au couple Identifiant/Password. J'ai l'URL d'accès au compte qui présente une page avec Identifiant/pwd. Existe-t-il un framework qui me permet d'envoyer une requête du genre https://monurlsuivi des infos d'identification (user=toto password=xxxxx et qui me retournerait une réponse " Valide " ou " non valide " me permettant alors d'autoriser ou non l'accès à l'option en question.
Merci d'avance
Réponses
Il me semble qu'il y a deux options:
- se connecter avec identifiant/mdp et ensuite appeler une API pour connaà®tre les autorisations d'accès
- ou offrir une API pour connaà®tre les autorisations selon identifiant/mdp
Personnellement, je partirais sur la première solution, car ça permet d'avoir le même cheminement dans tous les cas.
Tout d'abord, merci de t'intéresser à mon problème Céroce, qui plus est un jour férié...
Et bien précisément, mon problème est que je suis complètement nulle en serveurs. Je n'y comprends pas grand chose !
Tu parles d'utiliser une API. Aurais tu un nom, ou une référence de documentation sur le sujet ? ou encore un exemple de code sur lequel je pourrais me baser (objective C) ? J'ai recherché sur la documentation Apple, et je suis tombée sur "NSURLAuthenticationChallenge", mais je ne suis pas sûre d'être sur la bonne voie ! À vrai dire, je ne sais pas trop dans quelle direction aller !
Merci d'avance pour vos lumières...
Pour revenir à ta question, je pense que tu as déjà vu ici le terme "webservice".
Rien de très sorcier dans le principe, puisque c'est un site web, auquel on se connecte en HTTPS.
Je parle d'API puisqu'il va falloir formaliser la manière d'échanger avec le serveur. Par exemple, si tu veux te connecter, il te faut au moins une URL. ex. https://monsite.com/user?login=Toto&password=sdk54op
Tu peux utiliser NSURLSession pour ce genre de choses, c'est plutôt simple. Pour moi la difficulté n'est pas tant de communiquer avec le serveur que de gérer tous les retours qui sont asynchrones. Par exemple, tu vas chercher une liste pour l'afficher dans une UITableView. Comme le serveur met un peu de temps à répondre, il faut l'indiquer à l'utilisateur, et gérer le cas où le serveur ne répond pas. ça devient vite complexe.
NSURLConnection est l'ancêtre de NSURLSession. ça fonctionne toujours, tu trouveras plus d'exemples, mais, c'est moins pratique et moins évolutif.
J'ai vu ce bouquin ce matin, je pense qu'il est justement intéressant pour un débutant sur le sujet:
https://leanpub.com/iosappswithrest
Je ne l'ai pas lu. Et pour info, REST est une manière de formaliser une API.
Une challenge accessible est d'utiliser les API de Stack Overflow pour commencer:
https://api.stackexchange.com/docs
Par exemple, essaie de lister les questions en rapport avec iOS.
C'est intéressant parce que tu peux tester les API directement sur le site web; c'est lui qui compose la requête. Ensuite, tu n'as qu'à répliquer dans ton appli.
Aà¯e, tu as prononcé un truc qui m'a donné la migraine !!! >:D
Merci, Céroce, je vais étudier tout çà , histoire de me coucher un peu moins bête !!!