Единый вход в систему (SSO) в iOS 7
У меня есть вопрос об одной из новых функций в iOS 7 - Single Sign On.
Есть ли подробная информация об этом? Кто-то уже пробовал это для реализации? Я искал много статей и документов, но не нашел ничего полезного. Я также не нашел подробной информации о ресурсах Apple и разработчиков Apple. Нет визуальной настройки для SSO в версии iOS 7 GM (я не уверен, что она должна быть там).
Итак, мой вопрос: кого-то уже исследовали, и может быть, кто-то может поделиться некоторыми ссылками и полезной информацией? Существуют ли какие-либо технические описания этой функции и существует ли она как в iOS 7 GM?
Спасибо заранее.
Ответы
Ответ 1
Я бы порекомендовал смотреть WWDC 2013 Session 301 "Расширение приложений для корпоративного и образовательного использования"
Кроме того, для обзора реализации этой функции этот сайт помогает.
Наконец, здесь Документация Apple (доступна для разработчиков). Найдите заголовок: Единая учетная запись учетной записи.
Настройка SSO на устройстве потребует от Apple Configurator установки профиля или решения MDM для доставки SSO-профиля OTA.
Ответ 2
Чтобы сделать SSO (Kerberos), работающую на iOS7, вам нужно 3 вещи:
-
На стороне сервера: настроена среда Kerberos + HTTP-аутентификация SPNego/Kerberos. SSO в iOS работает только для HTTP (S).
-
Профиль конфигурации, содержащий:
- [Обязательно] Ваша область Kerberos.
- [Обязательно] Ваш главный администратор Kerberos (обычно имя пользователя), это может быть пустым - в этом случае пользователю будет предложено указать его во время установки профиля.
- [Обязательный] Список префиксов URL-адресов страниц, которым разрешено использовать SSO. Подстановочные знаки нельзя использовать здесь, если префикс не заканчивается символом косой черты, он будет автоматически добавлен к нему.
- [Необязательно] Список идентификаторов пакетов, разрешенных для использования SSO, если пустые все приложения разрешены. Можно использовать подстановочные знаки в идентификаторах пакетов.
-
Приложение, поддерживающее его, Safari и WebKit (класс UIWebView). Как описано в видеороликах WWDC 2013 Session 301, вы должны использовать либо NSURLConnection, либо класс NSURLSession. Это упрощенный пример HTTP-трафика при аутентификации с использованием схемы SPNego:
Клиент: GET https://login.example.com/adfs/ls/auth/integrated/?data1=aa&data2=...
Сервер: 401 Unathorized
+ заголовок WWW-Authentificate: Negotiate
Клиент: GET https://login.example.com/adfs/ls/auth/integrated/?data1=aa&data2=...
+ заголовок Авторизация: Переговоры [SPNegotInitToken]
Сервер: 200 OK
+ заголовок Авторизация: Переговоры [SpnegoTargToken]
+ header set-cookie [SESSIONID]
После получения "WWW-Authentificate" появится диалоговое окно с запросом пароля Kerberos (если билет Kerberos еще не предоставлен/истек). Obj-C классы будут обрабатывать автоматически все процессы переадресации и аутентификации, поэтому вам нужно только сделать запрос на URL-адрес входа и разрешить этот URL-адрес в профиле.
Ответ 3
Enterprise Single Sign On позволяет пользователю один раз войти на свое устройство и позволить всем приложениям на устройстве использовать его для проверки подлинности. В случае твиттера ссылки ниже будут вам полезны,
https://dev.twitter.com/discussions/8231.
http://eflorenzano.com/blog/2012/04/18/using-twitter-ios5-integration-single-sign-on/