github.com/Venafi/vcert/v5@v5.10.2/aruba/features/support/azure_provider.rb (about) 1 # Define the necessary Azure credentials 2 CLIENT_ID = ENV['AZURE_CLIENT_ID'] 3 CLIENT_SECRET = ENV['AZURE_CLIENT_SECRET'] 4 TENANT_ID = ENV['AZURE_TENANT_ID'] 5 KEYVAULT_NAME = ENV['AZURE_KEYVAULT_NAME'] 6 7 def get_azure_access_token 8 token_url = URI("https://login.microsoftonline.com/#{TENANT_ID}/oauth2/v2.0/token") 9 token_request = Net::HTTP::Post.new(token_url) 10 token_request.set_form_data({ 11 'grant_type' => 'client_credentials', 12 'client_id' => CLIENT_ID, 13 'client_secret' => CLIENT_SECRET, 14 'scope' => 'https://vault.azure.net/.default' 15 }) 16 17 begin 18 token_response = Net::HTTP.start(token_url.hostname, token_url.port, use_ssl: true) do |http| 19 http.request(token_request) 20 end 21 handle_http_response(token_response) 22 23 rescue BadRequestError, UnauthorizedError, NotFoundError, ServerError => e 24 puts "Custom Error: #{e.message}" 25 rescue StandardError => e 26 puts "An error occurred: #{e.message}" 27 end 28 29 token_data = JSON.parse(token_response.body) 30 token_data['access_token'] 31 end 32 33 def delete_azure_certificate(certificate_name) 34 vault_url = URI("https://#{KEYVAULT_NAME}.vault.azure.net/certificates/#{certificate_name}?api-version=7.2") 35 access_token = get_azure_access_token 36 37 delete_request = Net::HTTP::Delete.new(vault_url) 38 delete_request['Authorization'] = "Bearer #{access_token}" 39 40 begin 41 delete_response = Net::HTTP.start(vault_url.hostname, vault_url.port, use_ssl: true) do |http| 42 http.request(delete_request) 43 end 44 handle_http_response(delete_response) 45 rescue BadRequestError, UnauthorizedError, NotFoundError, ServerError => e 46 puts "Custom Error: #{e.message}" 47 rescue StandardError => e 48 puts "An error occurred: #{e.message}" 49 end 50 end