javascript - 是否可以将 microsoft-graph 客户端 secret 放入源代码中?

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

我有一个 javascript Electron 应用程序 ( https://github.com/damien122/cloudnoter ),它应该连接到 Microsoft 图形后端并提供对 OneNote 笔记本的访问。 以前它运行得很好,但是微软改变了API,我现在应该调整我的应用程序。 以前可以通过代码获取承载 token 而不使用客户端 key ,但现在我应该使用客户端 key 和我的问题:

是否建议将客户端 key 放入源代码中?并将其发布到 GitHub 上。人们可以使用客户端 ID 和客户端 key 做什么?我应该将客户 secret 真正“保密”吗?我可以向我的应用程序提供客户端 secret 并保密吗?

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

最佳答案

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

以及您的其他问题。

Is it recommended to put the client secret into the source code? And also publish it on GitHub.

What can someone can do with the client ID and client secret?

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

Should I keep the client-secret really "secret"?

Can I provide the client-secret to my app and keep it secret?

。您可以使用Azure KeyValut 保护您的 secret 。或者只需关注以下博客:

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

Storing secrets in the environment

stripe_api_key = os.environ["STRIPE_API_KEY"]

Storing secrets in the database
Using a secrets syncing service

Storing secrets in your code …but encrypted

关于javascript - 是否可以将 microsoft-graph 客户端 secret 放入源代码中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52428580/

相关文章:

javascript - 了解 React 幕后

azure - 来自 Microsoft 的罕见 AADSTS7000215 错误(提供了无效的客户端 key )

c - 如何在 JavaScript 中保存指针并进一步检索

electron - 如何获得没有标题栏高度的 Electron 窗口的高度?

javascript - 按给定字段值查找数组对象

javascript - 在端到端测试中使用跨平台键盘快捷键

c# - DocuSign JWT 认证 : Unexpected PEM type

macos - 签名的 Electron 应用程序 shell.openItem() 失败

javascript - 不分配给变量的条件运算符

azure - Microsoft Graph OAuth 问题