其他分享
首页 > 其他分享> > android-使用OAuth2安全认证移动访问的选项

android-使用OAuth2安全认证移动访问的选项

作者:互联网

我们目前正在实施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仅会为您的应用所知-但是,再次有人对它进行反向工程只是时间问题.

标签:security,oauth-2-0,oauth,ios,android
来源: https://codeday.me/bug/20191101/1987475.html