66using System . Threading ;
77using System . Threading . Tasks ;
88using Autofac ;
9+ using Azure . Identity ;
910using Azure . Storage . Blobs ;
1011using GitHubVulnerabilities2Db . Configuration ;
1112using GitHubVulnerabilities2Db . Fakes ;
@@ -31,6 +32,7 @@ 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 ( )
@@ -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