Azure 应用程序客户端 ID 存储在前端是否安全?

Dar*_*te1 5 javascript security azure single-page-application vue.js

在 Microsoft 网站上,他们提供了多个示例,介绍如何使用msalSPA 中的 Azure AD 对用户进行身份验证。在所有这些示例中,它们都Application (client) ID以纯文本形式存储在代码中或简单.json文件中。

我的问题是,考虑到存储在前端的所有内容都被认为是公开的,简单地将应用程序配置存储Azure (client) IDjson文件中是否是一种不好的做法?或者将其更好地存储在.env文件中?

这些是应用程序运行所需的详细信息:

AZURE_APP_CLIENT_ID=""
AZURE_APP_AUTHORITY=""
AZURE_APP_REDIRECT_URI=""
AZURE_APP_POST_LOGOUT_REDIRECT_URI=""

API_URI=""
API_AZURE_EXPOSED_SCOPE=""
Run Code Online (Sandbox Code Playgroud)

juu*_*nas 11

好吧,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