protected override async Task <SecretData> RotateValue(Parameters parameters, RotationContext context, CancellationToken cancellationToken) { string key; DateTimeOffset expiresOn; DateTimeOffset nextRotationOn; if (parameters.StorageKeySecret != null) { SecretValue storageKeySecret = await context.GetSecret(parameters.StorageKeySecret); key = storageKeySecret.Value; expiresOn = storageKeySecret.ExpiresOn; nextRotationOn = storageKeySecret.NextRotationOn; } else { key = await StorageUtils.RotateStorageAccountKey(parameters.Subscription.ToString(), parameters.Account, context, _tokenCredentialProvider, cancellationToken); expiresOn = DateTimeOffset.MaxValue; nextRotationOn = _clock.UtcNow.AddMonths(6); } string connectionString = $"DefaultEndpointsProtocol=https;AccountName={parameters.Account};AccountKey={key}"; return(new SecretData(connectionString, expiresOn, nextRotationOn)); }
protected override async Task <SecretData> RotateValue(Parameters parameters, RotationContext context, CancellationToken cancellationToken) { SecretValue secret = await context.GetSecret(parameters.Secret); byte[] plainTextBytes = System.Text.Encoding.UTF8.GetBytes(secret.Value); string secretEncodedBase64 = System.Convert.ToBase64String(plainTextBytes); return(new SecretData(secretEncodedBase64, secret.ExpiresOn, secret.NextRotationOn)); }
protected override async Task <SecretData> RotateValue(Parameters parameters, RotationContext context, CancellationToken cancellationToken) { string adAppId = await context.GetSecretValue(new SecretReference { Location = parameters.ADApplication.Location, Name = parameters.ADApplication.Name + ADApplication.AppIdSuffix }); SecretValue adAppSecret = await context.GetSecret(new SecretReference { Location = parameters.ADApplication.Location, Name = parameters.ADApplication.Name + ADApplication.AppSecretSuffix }); var connectionString = new StringBuilder(); connectionString.Append($"Data Source={parameters.DataSource}"); if (!string.IsNullOrEmpty(parameters.InitialCatalog)) { connectionString.Append($";Initial Catalog={parameters.InitialCatalog}"); } connectionString.Append($";AAD Federated Security=True;Application Client Id={adAppId};Application Key={adAppSecret?.Value}"); if (!string.IsNullOrWhiteSpace(parameters.AdditionalParameters)) { connectionString.Append($";{parameters.AdditionalParameters}"); } return(new SecretData(connectionString.ToString(), adAppSecret.ExpiresOn, adAppSecret.NextRotationOn)); }