问题标签 [azure-identity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
77 浏览

node.js - 将 loginWithUsernamePassword 迁移到 @azure/identity

我将一些代码从@azure/ms-node-auth迁移到@azure/identity,后者通过loginWithUsernamePassword. 迁移指南指向UsernamePasswordCredential类,但它拒绝了我的请求。

发生以下错误。

用户有一个federated帐户并通过协议@azure/ms-rest-nodeauth验证凭据。SAML

0 投票
1 回答
53 浏览

node.js - 由于 AuthorizationPermissionMismatch 无法访问存储队列接收消息

我已经使用 ClientSecretCredential 访问了 Azure 存储队列方法,但是在访问队列 receiveMessages、队列 peekMessages 和 deleteMessages 时,它给了我错误

RestError:此请求无权使用此权限执行此操作。请求ID:c92577923e-a603-0004-61c0-f70a19000

这是我的节点 js 代码

这是我的应用权限 在此处输入图像描述

0 投票
1 回答
63 浏览

nginx - 没有登录页面或用户交互的 Azure 广告 ID 令牌

我正在使用 nginx api 网关设置条件授权。对于此条件授权,我需要使用 Azure 广告中的 ID 令牌。我需要在没有用户交互的情况下将 ID 令牌作为隐式流获取。我正在考虑为此流程使用用户 SP 帐户。但是在没有 ui 或用户交互的情况下很难从 azure AD 获取 ID 令牌.. 有没有办法在没有用户提供详细信息的情况下获取 ID 令牌..?

0 投票
1 回答
485 浏览

c# - 如何解决无法加载文件或程序集“Azure.Core”

任何人都可以解释为什么我们会收到此类错误,例如无法加载文件或程序集。每当我特别在 azure sdk 中更新 nuget 引用时,我都会遇到这个错误,并且由于缺乏知识,我很难非常奇怪地修复它们。你能解释一下这个错误吗?我的意思是我可以消化这个错误,但我找不到真正的解决方案。

我已经明确决定我会理解这个错误并在这个平台上获得更多信息。如果您可以逐步解释这一点,那将增加我对核心生产力的了解。

我对这种类型的错误了解非常有限,我们需要在 web.config 文件中添加一些代码。

但老实说,我不知道如何决定哪个版本需要用新旧版本替换。我最近在我的项目中添加了 Azure.Identity nuget。

例如,现在我一直在努力解决这个错误。

我知道在哪里更改以解决此错误,但不知道要更改什么。

0 投票
1 回答
53 浏览

c# - 使用 Powershell 凭据将实体框架数据库连接转换为使用 Azure 标识

我们有一个设置为使用 EntityFramework 的应用程序。我需要更新该应用程序以使用 Azure Identity 访问数据库。基本上我需要做以下事情:

  1. 使用 AzurePowershell Credentials 获取访问令牌
  2. 使用该访问令牌创建 SQL 连接
  3. 将令牌添加到连接并返回给调用者

这是我到目前为止所拥有的(但我知道我在这里遗漏了很多东西,因为我遇到了编译错误)。我一直在寻找一些例子来做到这一点,但没有成功。

对于初学者, requestContext 不喜欢被设置为字符串,我试图找出将令牌添加到连接字符串并将其成功发送回的最佳方法。此外,AzurePowerShellCredential.GetToken 不喜欢我与数据库地址一起传递的字符串。我传入的连接字符串如下所示:

为了使其成功运行,我将省略上述连接字符串中的用户 ID 和密码,以便可以将其替换为 AzureCredentials。

我非常感谢可以提供的任何帮助。谢谢!

0 投票
1 回答
234 浏览

c# - 获取 RequestFailedException:在 Azure 中访问 Blob 存储时,不允许对此存储帐户进行公共访问

设想:

我有一个尝试访问 Blob 存储容器的 Azure Web 应用程序,我收到以下错误:RequestFailedException:此存储帐户不允许公共访问。

我正在尝试使用应用程序的托管身份来针对 Blob 存储进行身份验证,而无需将其公开。

他们都在同一个 VPN 中,在同一个区域

知道哪里可能出错了吗?

谢谢!

应用服务计划:S1

在此处输入图像描述

一些环境变量

环境变量

有系统分配的托管 ID

在此处输入图像描述

托管 ID 的 Azure 角色分配:

在此处输入图像描述

最后是代码:

在此处输入图像描述

以及一些 Blob 存储配置

在此处输入图像描述

它们都在同一个 VNET 中

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
0 回答
10 浏览

wpf - 将两个平台添加到 App Registration 会导致本地开发的 CORS 错误

我开发了一个需要通过 Azure 身份平台进行身份验证的 SSO 应用程序 (Angular)。通过这种方式,我可以调用受 Azure Identity 保护的下游服务。
为了完成这项工作,我在 Azure App Registrations 的“身份验证”窗格下为“单页应用程序”添加了一个平台。

但我也有一个 WPF 应用程序,它也需要调用相同的服务。
这意味着我的 WebApp 和 WPF 应用程序需要为相同的服务获取令牌。

为此,我在我的应用注册中添加了两个平台,如下所示:

在此处输入图像描述

这工作正常。用户可以在 web 应用程序和 WPF 应用程序中进行身份验证。

但是,如果我正在开发我的网络应用程序,我将无法为我的开发系统获取令牌。
这是因为当从我的 webapp 请求令牌时,会出现 CORS 错误。

添加“移动和桌面应用程序”平台会导致令牌端点不将 Allow-all 源头附加到令牌端点的响应头中。

这使得无法从开发系统调用我的应用程序。

从“移动和桌面应用程序”列表中删除“localhost”重定向 URL 可解决该错误,但现在我的 WPF 用户无法再进行身份验证。

任何人对此有什么建议吗?如何将 Allow-all 标头添加到返回到“localhost”的令牌中?

0 投票
0 回答
36 浏览

azure - 带有客户凭证流的令牌的个人角色

在 Azure 中,我们将 NodeJs API 设置为 Azure 应用服务。我们已经Authentication在应用程序上设置了标准,因此必须使用 Microsoft 身份提供程序对所有请求进行身份验证。在这里,我们可以发布和撤销用于使用访问令牌访问我们的 API 的秘密。这就是我们目前自己访问 api 的方式。

我们的问题:

最近我们不得不让第三方访问我们的 api。我们希望能够向他们颁发一个单独的客户端密码,其中包含他们自己的、有限的角色/范围。我们希望能够访问后端的范围/角色,以确保他们只能访问我们决定的内容。

我们已经能够在身份提供者中创建一个应用角色,但是我们不能指定一个密钥应该有一些角色,而另一个应该只有一些角色。

scope在请求中设置.../oauth2/v2.0/token会引发我们必须使用/.default范围的错误,因为我们正在使用Client Credentials流。

有什么想法吗?谢谢

0 投票
1 回答
55 浏览

azure - Azure Identity SDK (JS) 如何对用户的 Azure 帐户进行身份验证

我正在使用 Azure SDK (JavaScript) 设计我的第一个开发工具,我很难理解如何在生产中对用户进行身份验证,以便开发工具可以访问用户的 Azure 帐户。该工具将从租户中所有用户的 Azure Functions 中检索指标,以随着时间的推移根据这些指标显示 React 组件图。该应用程序将使用 npm run 命令在本地运行。

我在我的应用程序中使用 Azure Identity 的切入点是这篇博文 ( https://devblogs.microsoft.com/azure-sdk/authentication-and-the-azure-sdk/ )。我喜欢 DefaultAzureCredential 在开发中的工作方式,通过使用 AzureCliCredential 将租户用于运行它的任何开发人员。我想要一个类似的生产功能,但用于浏览器而不是 Azure Cli。换句话说,如果用户已经登录到 Azure 门户,它将获得其租户的凭据。我该怎么做?

我尝试的其中一件事是选择加入 DefaultAzureCredential 的交互式浏览器,如该博客文章中所述。但即使如此,我也可以在 src 中看到浏览器方法(https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/src/credentials/defaultAzureCredential.browser。 ts),我不知道在使用实际的 SDK 时如何选择这个。我在 Azure Identity 的 npm 包和文档(https://docs.microsoft.com/en-us/javascript/api/@azure/identity/defaultazurecredentialoptions?view=azure-node-最新的)也没有帮助我。如果这是我用例的正确选项,我想了解如何选择并使用它。

我尝试的另一件事是实现 InteractiveBrowserCredential。只要我传递了一个我的应用程序尚未使用的端口的 redirectUri,它确实会打开另一个选项卡,告诉我如果我尚未登录则登录到 Azure 门户。这正是我想要的用户体验在我的应用程序中。但是,在登录凭据后实际上并没有做任何事情。返回的凭据实际上有一个客户端 ID 等于 Azure CLI 的应用程序 ID (04b07795-8ddb-461a-bbee-02f9e1bf7b46) ( https://docs.microsoft.com/en-us/troubleshoot/azure/active-directory/ verify-first-party-apps-sign-in)出于某种原因。这导致我查看交互式浏览器凭据并发现它正在使用授权代码流(https://docs.microsoft.com/en-us/javascript/api/@azure/identity/interactivebrowsercredential?view=azure-node-latest)。这个流程似乎不适合我的用例,因为我必须注册我的应用程序。我不是要授予用户访问我的应用程序的权限,而是授予他们自己的 Azure 帐户的访问权限。我应该使用 InteractiveBrowserCredential 吗?

接下来,我研究了所有不同的身份验证流程。不过,它们似乎都不适合我的用例。我发现最接近的是客户端凭据流(https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow),因为我正在验证用户到他们自己的 Azure 帐户,而不是我的应用程序。但是,即使这个似乎也不太正确,因为当我查找如何使用 Azure Identity 实现该流程时(https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/using -azure-identity.md#clientsecretcredential-and-clientcertificatecredential)我发现我必须传入租户 ID。但是应用程序在用户登录之前不会知道用户的租户 ID。哪个流程适合这个用例?

我的理解似乎有差距。如何使用 Azure SDK 实现身份验证流程,通过浏览器向他们自己的 Azure 租户验证用户(而不是向我的应用验证他们)?

0 投票
1 回答
55 浏览

azure - 交互式浏览器凭据“您无法在此处使用个人帐户登录。请改用您的工作或学校帐户。”

我正在尝试在我的应用程序中使用 Azure Identity (JS) 实现交互式浏览器凭据,以便用户可以针对我的开发工具对他们自己的 Azure 帐户进行身份验证。我得到的建议是在 Reddit 线程上需要在 Azure AD 中注册应用程序(https://www.reddit.com/r/AZURE/comments/smcl15/azure_identity_sdk_js_how_to_authenticate_to/)。我现在已经这样做了。

我已将 localhost:8083 和 localhost:8085 注册为重定向 URI,并选择了允许 Account 在任何组织目录中的选项。但是,我仍然收到错误消息“您无法使用个人帐户登录。请改用您的工作或学校帐户。” 我读过的关于该主题的每个答案(使用个人帐户访问多租户应用程序 AAD)都说我需要在清单中设置“signInAudience”:“AzureADandPersonalMicrosoftAccount”。然而,这就是我的清单已经是并且从一开始就是这样。如何修复错误?