我正在开发一个Android应用程序,它与用户OneDrive for Personal帐户集成,并获得Files.Read范围。
我已在Microsoft应用程序注册门户上注册该应用程序。获得了使用OneDrive验证我的应用程序的客户端ID,我使用的是Microsoft Graph API。
现在,我必须在我的应用中添加该客户ID,该ID将通过Google Play分发。
那有多安全?如果任何人都可以获得该客户端ID,那么他们是否可以通过使用该客户端ID发送虚假请求来调整用户的数据?
请注意,此问题专门针对客户端ID来验证对OneDrive的请求。
另外,这些答案在这里有用吗?
回答1: https://stackoverflow.com/a/37945932/1363471
只是一句话:客户ID在设计上并不是秘密,实际上也是如此 没有必要保护它。
请参阅RFC 6749中的第2.2节(" OAuth 2.0授权框架"):
客户端标识符不是秘密;它暴露在资源中 所有者不得单独用于客户端身份验证。
回答2: https://stackoverflow.com/a/14565249/1363471
我知道这不是一个很好的StackOverflow答案,但我感觉不到 能够比威胁模型和安全性更好地解释它 注意事项(RFC 6819)。所以这是关于获得a的段落 客户秘密及其相关后果。
请注意,Android应用是公共客户端(原生应用程序) 更具体一点)所以,正如你所说,无法保密 凭证,但仍然能够保护令牌和授权码。
答案 0 :(得分:2)
答案#1是正确的,客户ID不是秘密,您不应该担心将其打包到您的应用程序中。其目标是识别发出请求的客户,例如您的应用,而不是授权通话。您获得的访问令牌作为成功OAuth流的输出并且应该能够保护,是用于授权呼叫的。