/// <summary> /// Applies the signature to the JWT /// </summary> /// <param name="jwt">The JWT object.</param> /// <returns>The signed JWT</returns> protected virtual async Task <string> SignAsync(JwtSecurityToken jwt) { var rawDataBytes = System.Text.Encoding.UTF8.GetBytes(jwt.EncodedHeader + "." + jwt.EncodedPayload); // TODO: Is UTF-8 correct? var keyVaultSignatureProvider = new AzureKeyVaultSignatureProvider(_options.KeyIdentifier, JsonWebKeySignatureAlgorithm.RS256, KeyVaultClientAuthenticationCallback); var rawSignature = await Task.Run(() => Convert.ToBase64String(keyVaultSignatureProvider.Sign(rawDataBytes))).ConfigureAwait(false); return(jwt.EncodedHeader + "." + jwt.EncodedPayload + "." + rawSignature); //var handler = new JwtSecurityTokenHandler //{ // SignatureProviderFactory = new AzureKeyVaultSignatureProviderFactory() //}; //return Task.FromResult(handler.WriteToken(jwt)); }
/// <summary> /// Applies the signature to the JWT /// </summary> /// <param name="jwt">The JWT object.</param> /// <returns>The signed JWT</returns> protected virtual async Task<string> SignAsync(JwtSecurityToken jwt) { var rawDataBytes = System.Text.Encoding.UTF8.GetBytes(jwt.EncodedHeader + "." + jwt.EncodedPayload); // TODO: Is UTF-8 correct? var keyVaultSignatureProvider = new AzureKeyVaultSignatureProvider(_options.KeyIdentifier, JsonWebKeySignatureAlgorithm.RS256, _authentication.KeyVaultClientAuthenticationCallback); var rawSignature = await Task.Run(() => Convert.ToBase64String(keyVaultSignatureProvider.Sign(rawDataBytes))).ConfigureAwait(false); return jwt.EncodedHeader + "." + jwt.EncodedPayload + "." + rawSignature; //var handler = new JwtSecurityTokenHandler //{ // SignatureProviderFactory = new AzureKeyVaultSignatureProviderFactory() //}; //return Task.FromResult(handler.WriteToken(jwt)); }