NET Core C#中的Azure应用服务容器托管的身份密钥保管库

时间:2019-08-16 13:44:22

标签: c# docker containers azure-web-sites

我在Azure App Services的linux docker容器中运行一个C#应用程序,该应用程序从Azure密钥保管库获取其配置信息。

过去我们这样做:

export class Item extends PureComponent {
  render() {
    const { item } = this.props;
    return (
      <MainContext.Consumer>
        {({ handleSelectItem }) => (
          <div>
            <button onClick={() => handleSelectItem(item)}>{item.name}</button>
          </div>
        )}
      </MainContext.Consumer>
    );
  }
}

我们一直在尝试使用托管身份。所以我:

  1. 何时在应用程序服务上进行身份验证,然后单击系统身份上的启用并点击保存。
  2. 进入天蓝色的密钥库,并在3个区域中为应用程序服务添加系统标识,包括获取,列出,解密和解包,就像我们为使用VS.net身份验证的用户所做的那样。
  3. 从nuget中添加了AppAuthenication库。

  4. 这样更新了我的代码:

    config.AddAzureKeyVault(builtConfig["Azure:Auth:Vault"],
        builtConfig["Azure:Auth:ClientId"], builtConfig["Azure:Auth:ClientSecret"]);
    

但是,当我们通过更新容器将其放入Azure App Services时,它挂起并试图启动应用程序。没有任何反应,最终超时。

我可以找到许多有关直接应用程序服务的文档,但是对于容器来说没有什么不同。看来它受支持了。

在App Services中为Linux容器实现这项功能时,我缺少什么?

即使打开托管身份,也会导致容器从不响应ping检查,更不用说正确启动了。

1 个答案:

答案 0 :(得分:1)

目前似乎不支持此功能。我为验证此语句所做的操作:

  1. 使用系统分配的身份创建了两个实例:

    • 虚拟机
    • 具有自定义图片的应用服务
  2. 将完全相同的代码部署到get a token through curl

它在VM上按预期工作,但在自定义映像上不起作用。

不幸的是,Azure并未像所宣传的那样在其托管服务上提供托管身份。