25

我对 iOS 7 中的一项新功能有疑问 - 单点登录。

有没有关于它的详细信息?有人已经尝试过实施吗?我搜索了很多文章和文档 - 但没有发现任何有用的。我也没有找到任何有关 Apple 和 Developers Apple 资源的详细信息。iOS 7 GM 版本中没有 SSO 的视觉设置(我不确定它是否应该在那里)。

所以我的问题是 - 是否有人已经对其进行了调查,并且可能有人可以分享一些链接和有用的信息?是否有此功能的任何技术描述,它是否存在于 iOS 7 GM 中?

提前致谢。

4

3 回答 3

14

我建议观看WWDC 2013 Session 301 “Extending Your Apps for Enterprise and Education Use”

此外,有关此功能的实现的概述,此站点提供帮助。

最后,这是Apple 的文档(可供开发人员使用)。查找标题:单点登录帐户有效负载。

在设备上配置 SSO 将需要 Apple Configurator 安装配置文件或 MDM 解决方案以 OTA 交付 SSO 配置文件。

于 2014-01-06T21:46:31.257 回答
10

要使 SSO (Kerberos) 在 iOS7 上运行,您需要 3 件事:

  1. 在服务器端:配置了 Kerberos 环境 + HTTP SPNego/Kerberos 身份验证。iOS 中的 SSO 仅适用于 HTTP(S)。

  2. 配置文件包含:

    • [强制性] 你的 Kerberos 领域。
    • [强制性] 您的 Kerberos 主体(通常是用户名),可以留空 - 在这种情况下,用户将被要求在配置文件安装期间指定它。
    • [必填] 允许使用 SSO 的页面的 URL 前缀列表。此处不能使用通配符,如果前缀不以斜线字符结尾,则会自动附加到它后面。
    • [可选] 允许使用 SSO 的捆绑 ID 列表,如果为空,则允许所有应用程序。可以使用包 ID 中的通配符。
  3. 支持它的应用程序,Safari 和 WebKit(UIWebView 类)可以。如 WWDC 2013 会议视频编号 301 中所述,您必须使用 NSURLConnection 或 NSURLSession 类。这是使用 SPNego 方案进行身份验证时 HTTP 流量的简化示例:

客户端:获取https://login.example.com/adfs/ls/auth/integrated/?data1=aa&data2= ...

服务器:401 未经授权

+header WWW-Authentificate: 协商

客户端:获取https://login.example.com/adfs/ls/auth/integrated/?data1=aa&data2= ...

+header 授权:协商 [SPNegotInitToken]

服务器:200 OK

+header 授权:协商 [SpnegoTargToken]

+header 设置 cookie [SESSIONID]

收到“WWW-Authentificate”后,将出现提示输入 Kerberos 密码的对话框(如果 Kerberos 票证尚未被授予/过期)。Obj-C 类将自动处理所有重定向和身份验证过程,因此您唯一需要做的就是向登录 URL 发出请求并在配置文件中允许该 URL。

于 2014-03-10T09:12:15.393 回答
2

Enterprise Single Sign On 允许用户在其设备上登录一次,并让设备上的所有应用程序都使用它进行身份验证。如果是 twitter,下面的链接将对您有用,

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

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

于 2013-09-25T06:28:08.893 回答