是否可以将Microsoft-Graph客户机密放入源代码中?

时间:2018-09-20 15:30:34

标签: javascript oauth electron azure-active-directory microsoft-graph

我有一个JavaScript电子应用程序(https://github.com/damien122/cloudnoter),该应用程序应连接到Microsoft图形后端并提供对OneNote笔记本的访问。 以前它可以很好地工作,但是Microsoft更改了API,现在我应该修改我的应用程序。 以前可以通过代码获取Bearer令牌,而无需使用client-secret,但是现在我应该使用client secret和我的问题:

是否建议将客户端密码放入源代码中?并将其发布在GitHub上。有人可以使用客户ID和客户机密做什么?我应该让客户机密真正保持“机密”吗?我可以为我的应用提供客户端机密并将其保密吗?

在m.s.的应用注册服务中我将该应用程序注册为网络应用程序,因为这是唯一获得身份验证的方法。如果没有客户端机密,我找不到如何对Web应用程序进行身份验证的方法。并且找不到一种方法来通过javascript使用“ Nativ /移动应用”注册。 顺便说一下,我使用本文档-> https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_user

1 个答案:

答案 0 :(得分:1)

对于授权流程,请按照@Event和@Marc的建议进行检查。

还有其他问题。

  

是否建议将客户端机密放入源代码中?和   还将其发布在GitHub上。

  

有人可以使用客户ID和客户机密吗?

使用“客户端ID”和“客户端密码”,有人可以调用您数据存储中的资源。但是在某些情况下,我们还需要在请求中传递应用名称。

  

我应该让客户机密真正保持“机密”吗?

  

我可以为我的应用提供客户端机密并将其保密吗?

。您可以使用 Azure KeyValut 保护您的秘密。或仅关注以下博客:

  

https://medium.com/poka-techblog/the-best-way-to-store-secrets-in-your-app-is-not-to-store-secrets-in-your-app-308a6807d3ed

     

在环境中存储秘密

     

stripe_api_key = os.environ [“ STRIPE_API_KEY”]

     

在数据库中存储机密
  使用机密同步服务

     

在您的代码中存储机密…但已加密