我们目前正在实施OAuth2以保护我们的新API的安全,并且不确定如何安全地提供所需的功能.我们需要允许来自移动设备的以下内容:
Immediately after downloading the app the user is able to take a picture and submit it without having to first log in.
虽然我们希望允许匿名用户访问,而用户无需登录或注册即可使用某些功能,但我们不想允许未经身份验证的API访问.通常使用client credentials authorization flow获取和访问应用令牌可以完成此 *** 作,但是这需要知道客户端密码.根据我的阅读,移动设备不被视为受信任的客户端,并且不应包含客户端机密,因此不应自行生成应用程序访问令牌.
我们提出了一些选项来满足此要求,但希望对此提供一些输入:
>将客户端密码嵌入到应用程序中.从安全角度来看似乎并不理想,但也许我们缺少一种明显的安全方法?我们的目标至少是iOS和AndroID.
>离线生成应用访问令牌,并将其嵌入到应用中.仍然不是很安全,但是至少没有公开秘密.
>允许仅使用客户端ID而不是访问令牌来访问某些功能.这可能是最简单的,但是它引入了不一致,并且需要多种方式来验证客户端.
>构建并使用随播网络应用为移动应用生成应用访问令牌.从表面上看似乎是一个赢家,但现在您必须确保可以访问该配套应用程序!
您如何在不要求用户先登录的情况下使用OAuth2从移动设备安全地验证对API的访问?
解决方法:
同意对Q的评论.
1.)在OAuth 2中使用“客户端凭据”授予类型-在您的应用程序中包含嵌入式机密.了解这不是超级安全,最终有人会对其进行逆向工程.理想情况下,每个客户端都会获得一个唯一的秘密-因此,如果滥用客户端,您可以撤消该客户端.
2.)在开放该API的情况下运行-从而完全不需要OAuth 2访问令牌.也许该API仅会为您的应用所知-但是,再次有人对它进行反向工程只是时间问题.
总结以上是内存溢出为你收集整理的android-使用OAuth2安全认证移动访问的选项全部内容,希望文章能够帮你解决android-使用OAuth2安全认证移动访问的选项所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)