【问题标题】:Managed Identity - how to debug locally托管标识 - 如何在本地调试
【发布时间】:2019-06-27 09:16:45
【问题描述】:

我正在使用以下代码在我的 Web 应用程序上测试系统托管标识,当我在 Azure 中部署时它工作正常,但有没有办法在本地进行测试(不授予我的 Azure 帐户对资源的权限?)?

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();

KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://EASDemo.vault.azure.net/secrets/test")
                .ConfigureAwait(false);
return new string[] { secret.Value };

【问题讨论】:

    标签: c# azure-managed-identity


    【解决方案1】:

    在本地测试的选项(VS、CLI)记录在here

    使用 Visual Studio 进行身份验证

    使用 Visual Studio 进行身份验证:

    1. 登录 Visual Studio 并使用工具 > 选项打开选项。
    2. 选择 Azure 服务身份验证,选择本地开发的帐户,然后选择确定。

    如果您在使用 Visual Studio 时遇到问题,例如 涉及令牌提供者文件,请仔细查看前面的步骤。

    您可能需要重新验证您的开发者令牌。为此,请选择 工具 > 选项,然后选择 Azure 服务身份验证。看 对于所选帐户下的重新身份验证链接。选择它 验证。

    如果您不想使用您的开发者身份,您也可以使用证书或密钥(虽然不推荐,因为它可能会错误地签入到源存储库)。这些选项记录在here

    【讨论】:

    • 非常感谢您的回复。目前,我们正在使用基于证书的方法来验证 Key Vault。我们的大部分服务都部署在 Service Fabric 上(很少部署在应用服务中),并且所有开发人员都没有开发人员身份(我们有 100 多个资源在项目上工作)。我们应该如何处理本地调试场景?开发人员大多喜欢在本地调试后签入代码。
    • 文档还说“理想情况下,凭据永远不会出现在开发人员工作站上,也不会检查到源代码控制中。”但是如果我们遵循多种方法来允许本地调试,那么上述观点是不正确的。
    • 请查看此答案,了解如何将基于证书的方法用于服务结构。 stackoverflow.com/questions/49859477/…。如果您有后续问题,请告诉我。
    • 有时我发现有必要注销并再次登录(从 VS 中删除帐户并将其重新添加) - 即使凭据是最新的并且可以在 VS 中执行其他任务
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多