objective-c - iOS 应用程序使用 Windows Azure 服务管理 API 的可行性?

标签 objective-c ios ssl azure https

我一直在努力设置一个利用服务管理 API 的 iOS (Objective-C) 应用程序。我已经成功地使存储 API 调用正常工作,但从我所读到的内容来看,两个 Azure API 之间的一个很大的区别似乎是身份验证问题。作为引用,我理想中想做的是设置一个简单的 API 调用来列出应用程序中的托管服务帐户(最终适合公共(public)部署)。

根据 API Azure 文档,服务管理 API 需要上传管理证书 (.cer),然后客户端才能利用该证书对请求进行身份验证。我的预感是,这将阻止像我想创建的应用程序以任何方式变得可行,因为拥有包含下载的应用程序的设备的公共(public)用户将不具有该证书或无法以编程方式将其附加到 Objective-c 中代码。

我的预感正确吗?这是一个不应该追求的绝望想法吗?我认为要实现这一点,用户需要以某种方式将其设备的证书文件上传到 Azure,然后以某种方式让应用程序使用此证书进行身份验证。即使有可能,我也有点不知道从哪里开始。 :(

任何有用的信息将不胜感激。我在 iOS 方面有很多经验,但不幸的是,特别是在这种类型的身份验证/证书方面,我的经验很少。

提前致谢!! -文森特

最佳答案

实际上,我有一个应用程序可以完全实现您所说的功能。 CloudTools for Windows Azure是一个使用 Azure 管理服务 API 执行 Azure 管理的 iOS 应用程序。它已在 iTunes 上发布一年多了。

您的问题有点宽泛,但我可以告诉您,证书问题是迄今为止设计/开发应用程序中最大的问题。您不能将证书存储在 keychain 中,因为 keychain 的工作方式如下: a) 您请求需要证书的远程 url; b) 该 url 告诉您它需要一个证书,并且 c) 钥匙串(keychain)提供了适当的证书。这是一个多请求过程。这对于 Azure 来说不起作用,因为 Azure 服务管理 API 期望初始调用包含证书。

我要求用户通过 iTunes 文件共享 (steps here) 添加证书。当然,他们必须将公钥部分上传到Azure。然后,我为每个请求提供证书和私钥。我使用 HTTP 库 ASIHttpRequest ,尽管我相信最新的(iOS 5.x)Apple 库具有类似的功能。

如果您有任何后续问题,我很乐意提供任何进一步的详细信息。

关于objective-c - iOS 应用程序使用 Windows Azure 服务管理 API 的可行性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11017390/

相关文章:

ios - 由于未捕获的异常 'NSRangeException' 而终止应用程序,原因 : '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array

iOS - UIWebview 在滚动时部分消失

Qt SSL : Handshake failed for requests made from QML

ios - 字典不允许我将字符串附加到它的值

ssl - JSSEHelper 不提供正确的 SSLSocketFactory 用于在 Websphere 8.0 中建立安全连接

ssl - 等待关闭时出现异常 javax.net.ssl.SSLHandshakeException :

objective-c - 如何串联多个NSData?

iphone - 来自 AppDelegate 的共享 ADBannerView - 如何从代表处获取广告

ios - 获取粗体属性文本的 uilabel 高度

ios - 在文本字段中快速添加逗号作为用户输入