【问题标题】:Accessing User Credential Value from Azure.Identity从 Azure.Identity 访问用户凭据值
【发布时间】:2021-09-05 09:47:39
【问题描述】:
我已通过设置和手动输入密码/电子邮件将我的 Visual Studio 连接到 Azure Active Directory。
当我在 Visual Studio 中的工具下转到 Azure Serice Authenticator 时显示此凭据。
我想访问关联的 ID。
我遇到了这个 doc ,我想要 AZURE_USERNAME ,它必须与登录的 id 相关联。
我无法获得访问此值的方法。
是否意味着只有明确设置了这样的值才能访问它?
--
或者,有什么方法可以访问登录到 Visual Studio/或登录到 Windows 的用户的电子邮件 ID,而不仅仅是用户名
【问题讨论】:
标签:
visual-studio
azure-active-directory
azure-identity
【解决方案1】:
是的,当然我们应该预设环境变量。
然后我们可以将它们用于EnvironmentCredential 身份验证。反过来不行。
您可以调用 Microsoft Graph API 来获取用户信息。
示例参考here。
你可以像这样实现graphServiceClient:
var credential = new DefaultAzureCredential();
var token = credential.GetToken(
new Azure.Core.TokenRequestContext(
new[] { "https://graph.microsoft.com/.default" }));
var accessToken = token.Token;
var graphServiceClient = new GraphServiceClient(
new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage
.Headers
.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.CompletedTask;
}));
blog 供您参考。