Skip to content

Commit dec8b76

Browse files
authored
Use MSI for storage access in GitHubVulnerabilities2Db (#10197)
1 parent 0c269f7 commit dec8b76

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

  • src/GitHubVulnerabilities2Db

src/GitHubVulnerabilities2Db/Job.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Threading;
77
using System.Threading.Tasks;
88
using Autofac;
9+
using Azure.Identity;
910
using Azure.Storage.Blobs;
1011
using GitHubVulnerabilities2Db.Configuration;
1112
using GitHubVulnerabilities2Db.Fakes;
@@ -31,13 +32,14 @@ namespace GitHubVulnerabilities2Db
3132
{
3233
public class Job : JsonConfigurationJob, IDisposable
3334
{
35+
private const string ManagedIdentityClientIdKey = "UserManagedIdentityClientId";
3436
private readonly HttpClient _client = new HttpClient();
3537

3638
public override async Task Run()
3739
{
3840
var collector = _serviceProvider.GetRequiredService<IAdvisoryCollector>();
39-
while (await collector.ProcessAsync(CancellationToken.None));
40-
41+
while (await collector.ProcessAsync(CancellationToken.None)) ;
42+
4143
}
4244

4345
protected override void ConfigureJobServices(IServiceCollection services, IConfigurationRoot configurationRoot)
@@ -59,7 +61,7 @@ protected override void ConfigureAutofacServices(ContainerBuilder containerBuild
5961

6062
ConfigureQueryServices(containerBuilder);
6163
ConfigureIngestionServices(containerBuilder);
62-
ConfigureCollectorServices(containerBuilder);
64+
ConfigureCollectorServices(containerBuilder, configurationRoot);
6365
}
6466

6567
protected void ConfigureIngestionServices(ContainerBuilder containerBuilder)
@@ -159,14 +161,14 @@ protected void ConfigureQueryServices(ContainerBuilder containerBuilder)
159161
.As<IAdvisoryQueryService>();
160162
}
161163

162-
protected void ConfigureCollectorServices(ContainerBuilder containerBuilder)
164+
protected void ConfigureCollectorServices(ContainerBuilder containerBuilder, IConfigurationRoot configurationRoot)
163165
{
164166
containerBuilder
165167
.Register(ctx =>
166168
{
167169
var config = ctx.Resolve<GitHubVulnerabilities2DbConfiguration>();
168-
var connectionString = AzureStorageFactory.PrepareConnectionString(config.StorageConnectionString);
169-
return new BlobServiceClient(connectionString);
170+
var credential = new ManagedIdentityCredential(configurationRoot[ManagedIdentityClientIdKey]);
171+
return new BlobServiceClient(new Uri(config.StorageConnectionString), credential);
170172
})
171173
.As<BlobServiceClient>();
172174

0 commit comments

Comments
 (0)