gpt4 book ai didi

angularjs - 使用 adal/adal-angular.js 时,是否存在在客户端代码中公开 clientId 和租户的安全问题

转载 作者:行者123 更新时间:2023-12-01 10:34:45 25 4
gpt4 key购买 nike

我正在我们的应用程序中实现 AAD 单点登录,我们将在我们的 MEAN 堆栈应用程序中使用 adal.js/adal-angular.js 库。初始化库的一部分是调用 init() 并提供租户和 clientId

  adalProvider.init(
{
tenant: "mycompany.onmicrosoft.com",
clientId: "05bdd8d7-XXXX-XXXX-XXXX-5f2769f8b9b6"
},
$httpProvider
);

例如。

如果有人查看源代码并获取租户和 clientId,他们是否可以在自己的应用程序中恶意使用它们?

AzureAD 是否会检查请求来自的 URL,如果不是配置的登录 url,是否会阻止它?

似乎 clientId 更像是一个公钥,但如果应用程序触发 AzureAD 身份验证所需的唯一两件事是租户和 clientId,并且它们在源代码中暴露在客户端,有人可以使用它们来创建如果请求被重定向回他们的站点 X 而不是原始站点,则钓鱼站点 X 或获取 id_tokens

Azure 是否依赖于应用程序设置中的配置设置并防止这种情况发生?

我仍在掌握 OpenID Connect 和 OAUTH 2.0 的细节,如果这个问题有明显的答案,请原谅我。

最佳答案

Adal.js 使用隐式流(根据 OpenID 连接/oAuth 2 规范)并公开 ClientID(和 AAD 的租户 ID)不会造成任何安全风险。

在 Azure AD 管理面板中注册客户端时,我们为客户端指定一个重定向 URI。这是用户在成功验证后将被重定向到的应用程序 URL。

  • 因此,即使恶意客户端试图使用您的 clientid 和租户 id,用户也会在身份验证后被重定向回注册的 URI(即您的应用程序),而不是恶意站点
  • 在隐式流程中,应用程序不收集任何用户名/密码,IDP/OP(即 AAD)管理这部分 - 因此用户凭据也不会被泄露

**对于其他流类型(授权代码、客户端凭据等),我们有一些称为客户端密码和 ClientID 的东西。这不应该暴露给公共(public)客户。

关于angularjs - 使用 adal/adal-angular.js 时,是否存在在客户端代码中公开 clientId 和租户的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37684405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com