66using System . Threading ;
77using System . Threading . Tasks ;
88using Autofac ;
9+ using Azure . Identity ;
910using Azure . Storage . Blobs ;
1011using GitHubVulnerabilities2Db . Configuration ;
1112using 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