public async Task <IAzureMediaServicesClient> CreateMediaServicesClientAsync(LiveStreamSetting config) { ServiceClientCredentials credentials = await GetCredentialsAsync(config); return(new AzureMediaServicesClient(config.ArmEndpoint, credentials) { SubscriptionId = config.SubscriptionId, }); }
private async Task <ServiceClientCredentials> GetCredentialsAsync(LiveStreamSetting config) { // Use ConfidentialClientApplicationBuilder.AcquireTokenForClient to get a token using a service principal with symmetric key var scopes = new[] { config.ArmAadAudience + "/.default" }; var app = ConfidentialClientApplicationBuilder.Create(config.AadClientId) .WithClientSecret(config.AadSecret) .WithAuthority(AzureCloudInstance.AzurePublic, config.AadTenantId) .Build(); var authResult = await app.AcquireTokenForClient(scopes) .ExecuteAsync() .ConfigureAwait(false); return(new TokenCredentials(authResult.AccessToken, TokenType)); }
public LiveStreamingService(IConfiguration appConfiguration, IMediaServiceClientFactory mediaServiceClientFactory) { _config = new LiveStreamSetting(appConfiguration); _mediaServiceClientFactory = mediaServiceClientFactory; }