Han*_*kCa 4 azure-active-directory
在实现中包含clientIdand是否安全?我相信我读到 Joonas Westlin 说嵌入 ClientId 很好(我现在找不到该帖子)。 tenantIdmsal.js
图书馆里有一个地方,所以看起来还可以:
this.msal = new UserAgentApplication(
{
auth: {
clientId: this.clientId,
authority: `https://login.microsoftonline.com/${this.tenantId}`,
redirectUri: Uri + "/login",
},
Run Code Online (Sandbox Code Playgroud)
然而,人们会认为此类识别信息应该保密。
简短回答:是的clientId,包含和是安全的tenantId。
您的担忧是有道理的,因为对于基于 JavaScript 的应用程序(如 SPA),您输入的任何信息都可能会暴露给用户并可能被滥用。尽管tenantId和clientId不是此类信息,client secret但 或keys是敏感信息并应避免。
tenantId无论如何,作为租户的 OpenID Discovery 文档的一部分,可以公开获取。您可以使用此格式的 URL 访问它
https://login.microsoftonline.com/{tenantID or tenantDomain}/v2.0/.well-known/openid-configuration
Run Code Online (Sandbox Code Playgroud)
clientId是您的应用程序注册的标识符。要回答您对包含它的担忧……clientId单独并不能建立应用程序的身份,您client secret还需要拥有它,才能使用应用程序的身份。
因此,从安全角度来看,任何公共客户端应用程序(例如基于 JavaScript 的 SPA 甚至桌面本机应用程序)都不应该使用客户端密钥,因为这些应用程序无法安全地保存它并且可能会受到损害。机密只能由机密客户端(例如基于服务器的 Web 应用程序或后端守护进程)处理。
以下是 Microsoft 对隐式授权流程的指南,该流程通常是 JavaScript/SPA 应用程序使用的流程 - Microsoft 身份平台和隐式授权流程
这是一篇类似的 SO 帖子,clientid并tenantId有很好的解释 - Azure 客户端 ID、租户和 Key Vault URI 是否被视为机密?
我无法很快找到您提到的 Joonas Westlin 的帖子,但 Joonas 的建议clientId一如既往地正确。
| 归档时间: |
|
| 查看次数: |
4605 次 |
| 最近记录: |