iOS上实现单点登录(SSO)

苹果移动设备iPhone,iPad等从iOS 7.0以后支持企业级SSO。根据测试情况,有如下要点信息:

1. iOS Enterprise SSO基于Kerberos登录认证。iOS内置有Kerberos客户端,可以实现从KDC(Key Distribution Center)获取TGT(Ticket Granting Ticket)。内置Kerberos客户端目前采用了Heimdal的代码;

2. iOS的SSO实现需要安装配置描述文件(Profile),该Profile须配置名为com.apple.sso的PayloadType,具体可参见苹果官网的技术文档:Configuration Profile Key Reference,另外这篇文章对此也有较好的解释。安装此配置文件后,例如通过Safari浏览器访问配置了Kerberos认证的站点,则系统会弹出如下窗口:

iOS-Kerberos-SSO

在上述窗口输入正确密码后,iOS系统可从KDC获取TGT票据,从而实现登录认证。随后打开其他基于同一Realm的站点,或者在Hybrid App(App的Bundle Identifier须添加在前述Profile的AppIdentifierMatches中)的WebView中访问同一Realm内的站点,均可以实现SSO。

3. iOS也可实现跨App的SSO(Cross App SSO),对此需要打通App实现登录信息共享。目前市场上主流的EMM产品如MobileIron, AirWatch, Fiberlink(An IBM Company) Maas360等,可以利用打包App的安全Container实现此功能。

Google的图像识别API—Cloud Vision API

Google刚出了图像识别的API(Cloud Vision API),主要实现如下需求(详见此链接):

  1. 给图片打标签
  2. 文字识别OCR
  3. Safe Search Detection(不好翻译,不翻了)
  4. 人脸识别
  5. 地标识别
  6. Logo检测

很残忍地用12306的验证码图片测试了一下,结果发现此API还比较强大,识别效果不错。

测试挑了这个图片:
zebra-12306-CAPTCHA把上图中的斑马扣出来作为输入:

zebra-12306-CAPTCHA-1
调用的方法是给图片打标签,返回结果如下:

vision-response

上面结果中quagga很生僻,指”白氏斑马”,评分是0.53256464,有点儿拿不准。wildlife则是很确定,分值0.95606762。可见,结果很靠谱。

移动互联网时代,企业级软件咋整?

做企业级软件的传统软件企业一直都蛮拼的,咋就不受待见了呢?以前是IBM、Microsoft等巨头喊着“电子商务、随需应变、智慧地球”等高大上的口号引领潮流,现在的明星则是Google, Facebook和BAT。

互联网不仅让传统软件企业陷入转型挣扎,也让通讯和设备的IT大佬费思量。华为任正非提出要区分“宝马”和“特斯拉”,联想杨元庆强调“互联网并不能代替一起”,是“解放生产力的工具”。两位大佬的观点很快就受到“互联网思维”的批判。

雷军说“台风来了,猪都可以飞”,传统软件企业被此类潮人潮语撩拨得每天都在琢磨该从哪个档口切入风口飞起来。

看看这些时髦的拽词吧:移动化、IT消费化、社交网络化、产业互联,企业级软件迷失在这些花哨的概念中不知所措。

无论如何,企业级软件真正要做的是走出迷惘,拥抱变化,认真考虑一下如下问题:

  1. 一切皆扁平,地域、组织、渠道都被移动互联网拉平。流程已不是那么重要,要素之间的连接最重要。如何让企业级软件成为连接生产要素、市场要素的利器?
  2. 客户重要,客户的用户更重要。客户的用户是员工,是客户的客户。企业级软件该如何为客户的用户创造价值,而不是闭门造车的伪价值?
  3. 软件服务于人,但“工作人”与“生活人”不同,二者的应用场景不同,有些场景甚至互斥。企业级软件该如何对待人性的共性,又处理好“工作人”与“生活人”的不同

P.S.:如果乔布斯还在世,有人给他发邮件问他如何看“互联网思维”,他会如何回复?乔爷可能会回复:Shit。—有感于“互联网思维”的庸俗化。“互联网思维”是个筐,茄子辣椒一起装。:D

物联网概念

前几天在外地出差,与多位朋友聊到物联网。我的观点:

一.物联网是个大概念,大到能够涵盖第一、二、三产业中的几乎所有行业,能够与几乎所有IT技术都扯上关系。两类主体会很喜欢这样的大概念,一是政府,可籍此发展产业、招商引资。既是高科技,又是调结构,时髦而且诱人;二是某些巨型企业,如中国移动、IBM等。这些巨型企业的业务范围往往横向覆盖所有行业客户,纵向可以影响产业链上中下各个环节,物联网概念自然可以成为这些公司自身战略的组成部分。

二.对于中小企业而言,玩大概念则往往意味着没概念(Too big to make sense),当然,靠炒大概念要政策,要资助则另当别论。此时,更有意义的事情在于:
1)明确在物联网中的具体行业定位,或者使企业能够具体定位于产业链中的某一环节;
2)解决具体问题,诸如状态传感、数据采集、数据传输、数据处理的技术和工程问题。
3)找到有潜力的商业模式。

Android3.1的新增特性

Google已经放出Android 3.1的开发包。

Android 3.1开发包的新增特性有:
1.USB APIs:Android 3.1提供了整合联接外设的全新USB API。
2.MTP/PTP API:新增MTP/PTP(媒体传输协议/图片传输协议) API
3.Support for new input devices and motion events:扩展了对其他输入设备的支持及新的交互方式。除键盘和触屏外,可支持鼠标、轨迹球、游戏杆等。
4.RTP API:新增了RTP(实时传送协议)API。VOIP, push-to-talk, conferencing, audio等应用可使用该API处理数据流。
5.Resizable app widgets:widgets的大小可以调整了。
6.Animation framework:动画框架新增了诸如ViewPropertyAnimator等类。
7.UI framework:新增了不少特性。
8.Graphics:1)新增了一些用以管理和操作位图(bitmap)的方法;2)相机操作新增了rotate和setLocation()方法控制相机位置,可用于3D转换。
9.Network:1)支持高性能Wi-Fi锁定,即使屏幕显示关闭,高性能的Wi-Fi联接还可以保持;2)使用TrafficStats中的新增方法,可以对网络使用进行统计;3)新增方法用以读取和设定SIP认证用户名。
10.Download Manager:APP可以调用下载管理器处理已完成的下载,可以调用addCompletedDownload()方法在下载数据库中添加文件,可以按文件大小排序的方式启动下载管理器。
11.IME framework:可以处理输入法中的扩展value key。
12.Media:除支持FLAC音频格式外,新增对ADTS AAC音频流的支持。
13.Launch controls on stopped applications:应用包管理器可以对停用的APP实行跟踪管理,应用包的首次使用及更新状态都可以跟踪。
14.Core utilities:1)新增LruCache类(Least-Recently-Used(LRU)缓存类);2)新增getFd()和detachFd()方法,用以获取整型(int)的File descriptor。
15.WebKit:1)新增对使用URI scheme文件的cookies的支持;2)新增的onReceivedLoginRequest()方法用以处理自动登录;3)去除了部分类和接口。
16.Browser:新增对HTML5 <video>标签的支持。
上述新增特性的详情参见:http://developer.android.com/sdk/android-3.1.html

Hoccer, 酷!

Hoccer, 酷!
Hoccer的网址:http://hoccer.com/
Hoccer目前实现如下很酷的用户体验:
1.用手指可将图片或其它数据从一台移动设备拖到另外一个移动设备;
2.可把图片或其它数据从一台移动设备甩出,由另外一个移动设备接住。

对于上述效果我测试过,效果还是不错的。当把一张图片drag到另外一台设备时,其体验就像把一块玻璃上的一张实际的图片滑到另一块玻璃上,超酷。当网速较慢时,drag过去时首先出来的是一个轮廓,然后逐步展现出来。
根据其API介绍,设备在共享了Geo环境信息后产生连接并传输。Hoccer的API取名为Linccer,其说明摘要如下:
The Linccer API is intended to connect arbitrary devices on the same location. The devices do not need to be in the same local network or use a common connection type, they just need to share the same (geo) environment. Our server uses environment informations, like gps coordinates to detect the devices that should be grouped:

另外我对此技术有如下估计:
1.今后类似体验的技术可能不仅体现在应用层面,应该会做得更加底层,从而成为一种通用/标准的用户体验;
2.传输方式可能会把NFC等也整合进来。