javascript - Azure 应用程序客户端 ID 是否可以安全地存储在前端?
问题描述
在 Microsoft 网站上,他们提供了多个示例,说明如何msal
在 SPA 中使用 Azure AD 对用户进行身份验证。在所有这些示例中,它们Application (client) ID
都以纯文本形式存储在代码或简单.json
文件中。
我的问题是,鉴于存储在前端的所有内容都被认为是公开的,将应用程序配置简单地存储Azure (client) ID
在json
文件中是一种不好的做法吗?或者这会更好地存储在.env
文件中吗?
这些是应用程序需要运行的详细信息:
AZURE_APP_CLIENT_ID=""
AZURE_APP_AUTHORITY=""
AZURE_APP_REDIRECT_URI=""
AZURE_APP_POST_LOGOUT_REDIRECT_URI=""
API_URI=""
API_AZURE_EXPOSED_SCOPE=""
解决方案
好吧,OAuth RFC 将其定义为不是秘密:https ://www.rfc-editor.org/rfc/rfc6749#section-2.2
客户端标识符不是秘密;它向资源所有者公开,不得单独用于客户端身份验证。
当用户登录时,客户端 ID 无论如何都会在 URL 中可见。将它存储在前端是完全可以的。
当用户登录时,所有这些内容都在 URL 中可见:
- Azure AD 租户 ID
- 应用客户端 ID
- 应用程序请求的范围(可以包括 AAD 中 API 的客户端 ID/应用 ID URI)
- 应用重定向 URI
推荐阅读
- java - 根据字体和宽度拆分文本
- mysql - MySQL 8.0 Alter Table Algorithm=INSTANT 未按预期工作(需要 40 秒)
- python-3.x - 如何修复 pydicom 的 dcmread() 前导错误?
- rust - 如何一次执行多个异步函数并获得结果?
- java - 如何为抛出 IOException 并接受 ResourceRequest 作为参数的方法编写 JUnit
- css - 带有 CSS Color Module Level 4 的 color() 函数的 Alpha 通道
- javascript - Smartphoto.js 如何跟踪对象?
- ios - 如何对来自 JSON 响应的数据进行排序并以预定义的顺序加载到表中
- javascript - 使用 JavaScript 将 JSON 对象数组转换为嵌套的 json 树
- android - 如何将混淆的 AAR 转换为 Dex?