gpt4 book ai didi

ios - MDM 管理的 iOS 设备上推荐的身份验证流程

转载 作者:行者123 更新时间:2023-11-29 00:04:35 34 4
gpt4 key购买 nike

我们正在构建一个 iOS 原生应用和两个网络应用。对于身份/访问管理,我们使用 Keycloak(支持 OpenID Connect 和 OAuth 2.0)。

iOS 应用安装在 MDM 管理的设备上。仅安装我们的应用程序。

我了解到,目前实现身份验证/授权的最佳做法是使用 OpenId Connect 和通过外部用户代理的基于浏览器的流程:

使用这些库之一:

是否也建议 MDM 管理的 iOS 设备(没有“邪恶的”第三方应用程序,只有我们自己的东西)实现基于浏览器的流程?或者在这种情况下实现 native 登录流程(用户直接在应用中输入凭据)是否安全?

我担心用户体验...我们的应用程序和浏览器之间的切换看起来不是很流畅...

最佳答案

有一个关于 OAuth2 for native apps 的 RFC .值得一读——它讨论了可能的实现和涉及的安全风险。一般推荐的方法是在浏览器(而不是内部应用程序组件)中使用授权代码流,因为这样应用程序无法获取用户凭据。人们习惯于比其他应用更信任浏览器和身份验证提供程序,因此 URL 和经过验证的 SSL 证书的可见性也很重要。

RFC 还涵盖了 iOS implementation details :

Apps can initiate an authorization request in the browser, without theuser leaving the app, through the "SFSafariViewController" class orits successor "SFAuthenticationSession", which implement the in- appbrowser tab pattern. Safari can be used to handle requests on oldversions of iOS without in-app browser tab functionality.

因此,如果您使用 SFAuthenticationSession,则无需打开新的 Safari 窗口,用户体验也不会受到影响。

如果您使用 Resource Owner Password Credentials grant (用户直接将他们的凭据输入到您的应用程序中),出于同样的原因,您会降低它的安全性——凭据会暴露给应用程序。使用此授权,您不能在 Keycloak(Google、Facebook)中使用第三方身份验证提供程序。

这取决于您(和您的组织)您希望系统的安全程度,因此您可以选择一些妥协,但我宁愿坚持当前的最佳做法,因为应用程序可能会在以后增长,妥协可能转向问题。

关于ios - MDM 管理的 iOS 设备上推荐的身份验证流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491368/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com