你能在 iPhone 应用中使用 OpenID 作为单点登录吗?

11

我想在本机iOS应用程序中实现单点登录,通过使用此单点登录进行登录,移动设备可以以类似于oauth的方式访问我们的私有服务,实现经过身份验证的访问。

openid.net上的营销文本建议“OpenID是登录网站的安全、更快捷和更简便的方法。”强调是针对网站的。

因此问题是:在本机移动应用程序上实现openID是否合理,或者openID仅适用于网站?

我一直在搜索网络,但没有找到将OpenID作为我的登录选项的方法。

4个回答

4
使用UIWebView并在其中呈现来自您网站的登录页面似乎是最好的方法。一旦用户登录,他们将被重定向回您的网站并获得一个授权cookie,您可以提取、存储并在后续HTTP请求中发送到服务器。请参见this,底部有示例代码链接。

1

OpenID通过一系列HTTP请求和响应发送其消息。您的应用程序和OpenID提供者必须通过HTTP post相互通信,并且您需要将用户重定向到相应的URL,并具有一个URL以便用户被重定向回来。因此,您可能会发现很难与您的应用程序集成。


为什么会这样呢?你可以使用带有基本身份验证的OpenID服务器,或者只是显示一个弹出窗口。 - Blitz
这取决于您是否有RP yadis发现和重定向的URL可用。此外,获得给定站点的OpenID支持的最简单方法是使用具有OpenID插件的CMS,例如Drupal或WordPress。尝试开发实际遵循规范的OpenID依赖方或提供方本身就很困难。 - Jacob Bellamy

0

0

被接受的答案贬低了OpenID协议。OpenID是一个联合认证协议,旨在提供简单的SSO体验,它是一个基于Web的协议,但如果您设计了一个身份验证代理,它也可以被实现。

应用程序不共享任何内容,应用程序永远不应访问除身份令牌和访问令牌(如果允许)之外的任何内容。这里有一个链接,可以帮助您开始正确构建移动应用程序之间无缝SSO的路径,而不管应用程序隔离级别如何。 https://www.pingidentity.com/developer/en/resources/napps-native-app-sso.html

Libraries: https://github.com/openid/AppAuth-iOS

https://github.com/openid/AppAuth-Android


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接