我有一个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
答案 0 :(得分:1)
对于授权流程,请按照@Event和@Marc的建议进行检查。
还有其他问题。
是否建议将客户端机密放入源代码中?和 还将其发布在GitHub上。
否
有人可以使用客户ID和客户机密吗?
使用“客户端ID”和“客户端密码”,有人可以调用您数据存储中的资源。但是在某些情况下,我们还需要在请求中传递应用名称。
我应该让客户机密真正保持“机密”吗?
是
我可以为我的应用提供客户端机密并将其保密吗?
是。您可以使用 Azure KeyValut 保护您的秘密。或仅关注以下博客:
在环境中存储秘密
stripe_api_key = os.environ [“ STRIPE_API_KEY”]
在数据库中存储机密
使用机密同步服务在您的代码中存储机密…但已加密