在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