web-dev-qa-db-fra.com

Authentification unique (SSO) dans iOS 7

J'ai une question sur l'une des nouvelles fonctionnalités d'iOS 7 - Single Sign On.

Y a-t-il des informations détaillées à ce sujet? Quelqu'un l'a-t-il déjà essayé pour la mise en œuvre? J'ai cherché beaucoup d'articles et de documents - mais je n'en ai trouvé aucun utile. Je n'ai également trouvé aucune information détaillée sur Apple et les développeurs Apple. Il n'y a pas de paramètre visuel pour l'authentification unique dans iOS 7 GM version (je ne sais pas si elle devrait être là).

Donc ma question est - quelqu'un a-t-il déjà enquêté et peut-être que quelqu'un peut partager des liens et des informations utiles? Existe-t-il des descriptions techniques de cette fonctionnalité et existe-t-elle en quelque sorte dans iOS 7 GM?

Merci d'avance.

25
Anton Holub

Je recommanderais de regarder WWDC 2013 Session 301 "Extension de vos applications pour les entreprises et l'enseignement"

Aussi, pour un aperçu d'une implémentation de cette fonctionnalité ce site aide.

Enfin, voici la documentation d'Apple (disponible pour les développeurs) . Recherchez l'en-tête: Charge utile du compte Single Sign-On.

La configuration de l'authentification unique sur un appareil nécessite Apple Configurator pour installer le profil ou une solution MDM pour la livraison OTA du profil SSO.

14
james_fuller

Pour que SSO (Kerberos) fonctionne sur iOS7, vous avez besoin de 3 choses:

  1. Côté serveur: environnement Kerberos + authentification HTTP SPNego/Kerberos configurée. SSO dans iOS ne fonctionne que pour HTTP (S).

  2. Profil de configuration contenant:

    • [Obligatoire] Votre domaine Kerberos.
    • [Obligatoire] Votre principal Kerberos (généralement le nom d'utilisateur), celui-ci peut être laissé vide - dans ce cas, l'utilisateur sera invité à le spécifier lors de l'installation du profil.
    • [Obligatoire] Liste des préfixes d'URL des pages autorisées à utiliser SSO. Les caractères génériques ne peuvent pas être utilisés ici, si le préfixe ne se termine pas par une barre oblique, il y sera automatiquement ajouté.
    • [Facultatif] Liste des ID de bundle autorisés à utiliser l'authentification unique, si vides, toutes les applications sont autorisées. Les caractères génériques dans les ID de bundle peuvent être utilisés.
  3. Application qui le prend en charge, Safari et WebKit (classe UIWebView) le font. Comme décrit dans les vidéos de session WWDC 2013 numéro 301, vous devez utiliser la classe NSURLConnection ou NSURLSession. Il s'agit d'un exemple simplifié du trafic HTTP lors de l'authentification à l'aide du schéma SPNego:

Client: GET https://login.example.com/adfs/ls/auth/integrated/?data1=aadata2= ...

Serveur: 401 non autorisé

+ en-tête WWW-Authentificate: Négocier

Client: GET https://login.example.com/adfs/ls/auth/integrated/?data1=aadata2= ...

+ en-tête Autorisation: Négocier [SPNegotInitToken]

Serveur: 200 OK

+ en-tête Autorisation: Négocier [SpnegoTargToken]

+ en-tête set-cookie [SESSIONID]

La boîte de dialogue avec Demander le mot de passe Kerberos (si le ticket Kerberos n'a pas encore été accordé/expiré) apparaîtra après réception de "WWW-Authentificate". Les classes Obj-C géreront automatiquement toutes les redirections et le processus d'authentification, donc la seule chose dont vous avez besoin est de faire une demande à l'URL de connexion et d'autoriser cette URL dans le profil.

10
Mathias M

Enterprise Single Sign On permet à l'utilisateur de se connecter une fois sur son appareil et de laisser toutes les applications sur l'appareil l'utiliser pour l'authentification. Dans le cas de Twitter, les liens ci-dessous vous seront utiles,

https://dev.Twitter.com/discussions/8231 .

http://eflorenzano.com/blog/2012/04/18/using-Twitter-ios5-integration-single-sign-on/

2
Bhushan