问题标签 [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 投票
2 回答
61 浏览

spring-boot - 在 Web 应用会话中存储 AuthorizationCodeCredential

我正在使用该azure-identity库对用户进行身份验证,以便在我的 Spring Boot Web 应用程序中访问 Microsoft Graph API。

在成功获得code通过身份验证代码授予重定向后,我想将访问令牌和刷新令牌存储在 Web 应用程序会话中,这样用户就不必重新验证对 Microsoft Graph API 的多个请求。

如何获取令牌以将它们存储在会话中?

0 投票
0 回答
17 浏览

c# - 使用 MSGraph .NET SDK 在其他租户中读取电子邮件的身份验证流程

我从客户的 365 帐户的专用收件箱中阅读电子邮件并下载附件。该应用程序必须作为 Windows 服务运行 24/7。它是使用 EWS 库用 C# 编写的,但由于即将弃用,我需要切换到 MSGraph,但是我在使用 Graph 客户端库的 v4.5.0 进行身份验证时遇到了问题。该应用程序已正确配置为多租户并设置了权限,但我无法确定要使用哪种身份验证,请记住 a)我只会拥有来自客户的邮箱帐户用户名/密码 b)期望他们做任何事情AD 允许我的应用程序不是初学者,我只想登录邮箱并授予仅使用非管理员邮件读写权限的应用程序权限。交互式浏览器凭据当然有效,但对 Windows 服务无用。我想使用客户机密,但这似乎仅限于自己的租户。我试过 UsernamePasswordCredential 但它返回 InnerException = {"UsernamePasswordCredential authentication failed: Unsupported User Type 'Unknown'。请参阅https://aka.ms/msal-net-up。"}。MS 提供的示例是复杂的 Web 程序,我没有时间从头开始学习 Web 以了解它们在做什么。SDK 最近也更改为使用 AzureID,您现在可以将令牌凭据直接传递给图形客户端构造器,例如 graphClient = new GraphServiceClient(usernamePasswordCredential) ,我还需要知道如何调用端点来请求对我的应用程序的权限。令人沮丧的是,我知道这是可以做到的,因为我有一些其他软件可以做到这一点,但它并不能满足我的所有需求。

0 投票
2 回答
169 浏览

c# - 如何使用用户分配的托管标识访问 Azure 中 Function App Config 的 Key Vault

我在 Azure 中为我的一个函数应用设置了 KeyVault 配置。使用这样的 Startup 类非常简单:

我现在想使用用户分配的托管标识而不是系统分配的标识,这样我就不必为每个新应用程序或我创建的部署槽授予对 KV 的访问权限。

我已阅读此文档:https ://docs.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=dotnet ,但这显示了在您自己的代码中创建的 KV 客户端的示例和基础设施在这里为我创建客户端。

这将如何改变以使用用户分配的身份?

0 投票
1 回答
90 浏览

c# - MSI 服务总线 - 声明为空或令牌无效“".servicebus.windows.net:$Resources/topics in c#

我们已经为服务总线启用了“用户分配”的 MSI,而我们尝试在 Azure 功能中使用 MSI 连接 Azure 服务总线。它正在抛出异常

代码片段


  1. 在 Azure 函数上启用了身份(用户分配)。
  2. 在服务总线命名空间上分配了角色 Azure 服务总线数据所有者 我是否缺少某个步骤或要求?
0 投票
1 回答
31 浏览

c# - 是否可以仅使用用户和密码从我的 .net 核心应用程序登录到 Azure?

我正在尝试从我的应用程序登录 Azure 以从 Azure Blob 获取一些 blob。Azure.Identity nugget 包有一些方法,比如一些 TokenCredentials 类和我想使用的UsernamePasswordCredential Class,它的构造函数的一个例子是这样的:

但似乎没有tenantId 和clientId 就无法使用它(将参数作为null 传递会返回NullArgumentException)。我想使用“管理员”用户并通过而不需要注册应用程序,因为这将是在不同应用程序中使用的遍历用户。这可能吗?有替代方案吗?还是我应该坚持使用tenantId 和clientId?

0 投票
2 回答
89 浏览

azure-active-directory - 重定向到本地主机后控制台应用程序的 DefaultAzureCredential 失败 - 本地主机发送无效响应

我正在使用 DefaultCredential 连接以从 azure keyvault 构建配置。

这在早期工作,但现在交互式浏览器身份验证失败。选择帐户后,它会重定向回 l​​ocalhost 并抛出错误(“localhost sent an invalid response”)我正在使用 "Azure.Identity" Version="1.4.1" 。我还尝试了最新的 beta 包(1.5.0-beta.4)。还有 Azure.Security.KeyVault.Secrets" Version="4.2.0"

0 投票
2 回答
159 浏览

javascript - azure Active Directory 使用 SPN 和 msal-node js 中的证书获取访问令牌,面临错误“ERR_OSSL_PEM_NO_START_LINE”

我正在尝试使用 msal 节点从 azure 获取访问令牌,并且需要使用证书遵循服务原则。目前我正在使用密钥库 url 来读取证书。我的参考文档是https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/samples/msal-node-samples/auth-code-key-vault/index.js

错误: 在此处输入图像描述

我也有 .pfx 证书文件。如果有帮助的话。

0 投票
1 回答
112 浏览

azure-active-directory - Token 中的托管标识和 AppRoles

我有一个名为“BackEnd_API”的 Web API“应用程序注册”,它定义了一些应用程序角色和用户角色。

然后,我有另一个名为“Client_App”的客户端应用程序“应用程序注册”,它使用我使用 Azure_CLI 或 PowerShell 分配了 AppRoles“resource.READ”的那个 API。在 Azure 门户中,我可以看到为服务主体分配了该角色。当我使用 Client_Credentials 流时,生成的访问令牌确实包含我在后端用来授权调用者的角色声明。直到这里一切都好。

现在,我想使用托管身份从另一个使用应用程序使用相同的 Web API“BackEnd_API”。因此,我创建了另一个“应用服务”,启用了系统分配标识并使用 Azure CLI 分配了 AppRoles“resource.READ”。在 Azure 门户中,我可以看到为服务主体分配了该角色。

我可以使用 JS Azure SDK 获取令牌。

但是在这种情况下接收到的令牌没有“角色”声明,因此 API 调用无法授权。

我仔细检查了角色和分配,一切看起来都不错;这应该有效吗?

没有“角色”声明的令牌。

{ “aud”:“e22fd9eb-3088-4155-936a-0919681c3eb5”,“iss”:“https://login.microsoftonline.com/45591230-6e37-4be7-acfb-4c9e23b261ea/v2.0”,“iat” :1634550153,“nbf”:1634550153,“exp”:1634636853,“aio”:“E2ZgYGguYd9fNkv3pOV5Iduv2655AgA=”,“azp”:“7dd894ca-6c1b-45ae-b67c-75db99593a14”,“azpacr” “:” 54E5C672-872F-4866-B067-132973CB0C91“,” RH”:“ 0.ARAYH9ZRTDU50US-0YEEI7JH6SQU2H0BBBKBBKBBK5FTNX125LZOHQQAEAA。 6e37-4be7-acfb-4c9e23b261ea”,“uti”:“qOLzTFlmw0yuWeFXXT1pAA”,“ver”:“2.0”}

感谢您的帮助。

0 投票
1 回答
21 浏览

azure - 如何为 Azure 应用服务设置看起来不像 Microsoft 对话的 MFA

我们正在开发一个企业级应用程序,其中有几个最终用户将为某些 Web 应用程序注册自己。我们希望他们使用 MFA,可能是“全部”、用户/密码、生物识别、谷歌身份验证器,但注册页面不应该是 Microsoft Azure AD 注册页面,而是来自应用程序的品牌页面。用户基本上不应该知道或关心应用程序是否在 Azure 中运行。这应该适用于浏览器登录和(也许有一天是移动应用程序,但不是现在)。

我在网上找到的示例主要是如果您是 Azure 的用户,而不是 Azure 中的应用程序,如何注册。

简而言之,步骤应该是:

  1. 用户进入应用程序网站,点击注册
  2. 注册页面显示,注册用户,然后提示他们一些 MFA 选择和生物识别选择
  3. 下次用户访问该站点时,将通过注册的选项使用身份验证。还要检查正在使用的正在运行身份验证器或生物识别的设备,以便我们只使用已注册的设备。

但所有这些都应该是应用程序本身的品牌网页和对话窗口。

0 投票
0 回答
87 浏览

azure-web-app-service - 如何使应用程序 ID URI 格式正常工作

我无法让任何应用程序 ID URI正常工作。我有一个 Blazor WebAssembly 托管应用程序,用 ASP.NET Core 5.0 编写。使用api://<appId>格式很好,但是这与 Terraform 不兼容。我可以让我的客户使用 与服务器交谈api://<appId>,所以我知道代码工作正常。当我交换应用程序 ID URI 以使用任何其他格式(例如https://<verifiedCustomDomain>/<string>or api://<tenantId>/<string>)时,我收到 401 错误。我正在使用经过验证的 Azure AD 域。

我可以看到这<string>意味着“主机或 api 路径段的字符串值。”,但我不确定这意味着什么。我一直在测试<string>设置为我的应用服务的名称以及应用注册的名称。我还尝试将应用程序注册从单租户更改为多租户(以防万一)。

任何建议将不胜感激。