从Microsoft Application Registration Portal获取的客户端ID的安全性问题

时间:2016-10-12 08:44:55

标签: android security microsoft-graph onedrive

我正在开发一个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应用是公共客户端(原生应用程序)   更具体一点)所以,正如你所说,无法保密   凭证,但仍然能够保护令牌和授权码。

1 个答案:

答案 0 :(得分:2)

答案#1是正确的,客户ID不是秘密,您不应该担心将其打包到您的应用程序中。其目标是识别发出请求的客户,例如您的应用,而不是授权通话。您获得的访问令牌作为成功OAuth流的输出并且应该能够保护,是用于授权呼叫的。