public async Task <string> GenerateTokenAsync(TokenInfo info) { var secret = await service .GetSecretAsync(info.Owner) .ConfigureAwait(false); if (secret == null || secret.Value == null) { secret = Secret.Generate(info.Owner, 9); await service.AddSecretAsync(secret); } var content = JsonSerializer.Serialize( info.Content, typeof(IEnumerable <string>), new JsonSerializerOptions() { IgnoreNullValues = true }); var owner = Encoding.UTF8.GetBytes(info.Owner); this.cipher.Encrypt( Encoding.UTF8.GetBytes(secret.Value), Encoding.UTF8.GetBytes(content), owner, out var checksum, out var data); return(Token.Create(data, owner, checksum).ToString()); }
private static DynamicsTokenService ConfigureDynamicsTokenService(HttpClient client, HttpRequest req, string keyVaultBaseUrl, string urlDynamics, Guid keyVaultClientId, string keyVaultClientSecret) { var _secretService = new SecretService(keyVaultBaseUrl, keyVaultClientId, keyVaultClientSecret); var clientId = _secretService.GetSecretAsync("Dynamics365-AppCredentialClientId").Result; var clientSecret = _secretService.GetSecretAsync("Dynamics365-AppCredentialClientSecret").Result; //Create Service Instance var ap = AD.AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(urlDynamics)).Result; var authContext = new AD.AuthenticationContext(ap.Authority); var clientCred = new AD.ClientCredential(clientId.Value, clientSecret.Value); return(new DynamicsTokenService(authContext, clientCred, ap.Resource)); }