Marathon Consulting IT Services agency official website in Norfolk

Marathon Consulting IT Services company

Get a free quote

Message from IT Consultant

Real value through Information Technology.

alt
Adam Stanley IT Consultant

Meet Marathon Consulting team

More experts in Norfolk
alt
Adam Stanley IT Consultant
alt
Adrian Garcia Digital Marketing Coordinator
alt
Alex Jerasa Business Technology Consultant
alt
Ben Ricks Partner
alt
Benjamin Cawrse Information Technology Consultant
alt
Charlie Church Senior Web Designer
alt
Chuck Bryan Application Architect
alt
Cindy Vartuli Administrative / Marketing Assistant
alt
Dan Ward Front End Developer
alt
Jeff Achesinski Information Technology Consultant


About Marathon Consulting IT Services company in Norfolk, United States

Since 2006, Marathon Consulting has provided IT and digital marketing services to a variety of clients -- everyone from family-owned firms to global manufacturers and healthcare providers that exceed $1 billion in annual revenue. Marathon Consulting began

See why we#39;re different right from the start.

The vision behind everything we do.

We are committed to our community.

The latest news and announcements.

IT amp; digital marketing articles from the Marathon team.

Custom websites online strategy and more.

For web mobile and desktop.

Turn your data into usable information.

Helping you make informed IT decisions.

The right people for your project.

Let us be your trusted partner.

For every online project and opportunity.

The right people for any challenge.

Integrity trust balance and teamwork.

Respect recognition and exceptional benefits.

Modern web application frequently requires integration with external services of some type. Database servers and external APIs are two of the most common examples. For an application to communicate with these external services they usually require a secret (a connection string username/password or API key) to authenticate the application with that external service. So how do we keep the application secrets secure?  This article will explain the reasons for using an Azure Key Vault to store sensitive information and provide a comprehensive step-by-step demonstration of using the Azure Key Vault. 

Azure Key Vault is a tool for securing and storing your application secrets available on Microsoft Azure. Keys vault are secure highly available and use multiple layers of redundancy to ensure your keys and secrets are always available to your application. 

When designing an application an application architect will consider how to store sensitive information that shouldnt be stored with other (less-sensitive) configuration settings. Ensuring that your API keys passwords or other sensitive information are never recorded into your applications source code repository. 

Rule #1 is that you should NEVER store this sensitive information directly in the source code. Its all too common however for configuration data such as API keys to be stored in application configuration file (appsettings.json) and these configuration files are usually stored with the rest of your application in the  source code repository. If you store sensitive information in the appsettings.json (or other configuration files) youve now lost control of that sensitive data where it gets stored and who may get access to it.

Therefore you should store your application secrets somewhere separate from your source code. Besides keeping your secrets out of the source you also maintain a higher level of control over those secrets. Azure Key Vault access control allows the IT administrator to provide read-only access to developers or contractors but neither can change delete or create new secrets. Additionally IT admins can easily revoke access to users or applications when access is no longer needed. 

Now that we understand what the Key Vault does and why its so important the remainder of this article will provide a complete walk-through of creating and using an Azure Key Vault to store and access a secret. 

A quick summary of whats covered in the rest of this article:

Login to your Azure portal and add a new resource enter Key into the search bar then select Key Vault from the resources that are displayed.


Click Create 


For the purposes of this article well only complete the basic information needed to create the Key Vault then click Review + Create


After passing Validation click Create to have Azure build the key vault resource.


After a few minutes the Azure portal will display a screen than confirms the key vault has been created.


Step 1 COMPLETE – Weve now created a vault for storing our application secrets. 

There are many different types of secrets that can be stored in the key vault including encryption keys secret values and certificates. Providing an in-depth explanation of each of these is beyond the scope for this article. For our demo application well create populate and retrieve a secret. This could be a password or API key that you would use in your application.

From the Key Vault blade select Secrets from the left panel then click Generate/Import.


Complete the form that appears providing a name and value for your secret.


Click Create to store your secret.

STEP 2 COMPLETED – Weve now created a secret in our key vault. 

Having a key vault doesnt do us any good unless someone has access to it. However we need to ensure only the right people or applications are granted access.

 Now we need to understand who needs access to the vault.

From a development standpoint I can grant myself access to the Key Vault so I can use it during development.

To grant a developer access to the vault select Access Policies from the left panel of the Key Vault then select Add Access Policy.


Complete the form that appears… In this case the developer doesnt need full access to the KV so well grant the developer Get amp; List permission but not any of the others (our developer wont be able to create change or delete any secrets in the vault). 


Once the permissions are set select the user users or groups that will be associated with this access policy.


Click Add to add this access policy to the vault.

Now weve granted a user (or AAD group) access to our vault what about the production application?

For this article Ive created a demo application as an Azure Web Service. While simple the steps to create the web application are outside the scope of this article. However there is one required step once the app service has been created. 

You must enable the Managed Identity for the app. To do this open the web application in the azure portal navigate to the Identity blade and enable the System Assigned identity. MAKE SURE TO CLICK SAVE. 


Now go back to the Access Policies blade for the key vault and add another policy. Select the appropriate permissions. Click on Select Principal. This time were going to enter the name of the application. 


Click Select then Add to add the new policy to the vault. 

If youve added the application successfully you should see the application listed (as shown below).

BUT THERES ONE MORE STEP --- YOU MUST CLICK SAVE ON THIS PAGE TO SAVE THE NEW POLICY.


Step 3 COMPLETE – Weve granted access to the key vault to our developer and the application. 

Finally were ready to access the secret data in our Key Vault from our application. 

There are different ways to access the data stored in the Key Vault. One way to access it is to use the ConfigurationManager as though it was configuration data stored in appsettings.json files.

For this application were using the standard C# ASP CORE MVC application template. Once the project has been generated from the template add the following Nuget packages:

In Program.cs call the ConfigureAppConfiguration method as shown here to get access to the key vault from the application.

Inject the configuration manager into the desired classes using Dependency Injection. Then read the secret from the key vault using the configuration manager and the name of the secret we created back in step 2 (MySuperSecretPassword).

Then modify the default index view to display the value.  (You wouldnt normally display secrets from the vault on the page this is just to demonstrate that weve read the data.)

Once I publish the application out to Azure it displays the value we read from the vault.


Step 4 is COMPLETE – Weve written an application that securely reads secret values from an Azure Key Vault and uses that data in our application.

Now that you understand the need for the Azure Key Vault and how to use it go forth and be secure!

If your enterprise has different resources for different environments use multiple key vaults. For example use one Key Vault for development another for QA/Test and a third for production. Then use your app config file to provide the URL of the corresponding Key Vault for that environment.

Come work with our award winning team. Check out our careers page for current openings and send us your resume today!

Jeff Achesinski is a Senior IT Consultant at Marathon Consulting and a Microsoft Certified Solutions Developer (MCSD). He has been working as a software developer in Virginia Beach for over 30 years. Jeff also spent 15 years as a volunteer scuba diver at the Virginia Aquarium and served on the Board of Directors for Kempsville Volunteer Rescue Squad. He lives in Virginia Beach with his wife April and 2 dogs.

We are a full-service IT and digital marketing firm. We believe that successful projects are the result of working collaboratively and transparently with our clients. Are you looking for a better user experience for your website or application? Need an experienced database architect or business analyst? Lets talk!

Please verify you are not a robot

Keep up to date on all the latest happenings at Marathon. Don#39;t worry — we won#39;t blow up your inbox.

Today, we have over 80 full-time equivalents (FTEs), have served over 275 clients, and have 2 offices - one in Virginia Beach and one in Richmond, VA.


Score: 996125

cBEYONData is a professional services firm focusing on Business Analytics, Data, and Visual technologies and implementations. ...

Avg project size: $1807500   |   Reviews: 10   |   Portfolio: 0 works

alt
cBEYONData IT Services

Score: 414500

ECM Universe, founded in 2000, is a minority certified small business headquartered in Chantilly, Virginia. ECMU implements Enterprise Content Management Systems for Government and Commercial organizations, and specializes in Social Media Surveillance, C ...

Avg project size: $2750000   |   Reviews: 2   |   Portfolio: 0 works

alt
ECM Universe IT Services

Score: 4250

We are a trusted partner of Salesforce.com. Our consultants bring best practice methods and tools that enable customers to be successful in achieving their business objectives. We help organizations become successful in their use and adoption of Salesforc ...

Avg project size: $15000   |   Reviews: 2   |   Portfolio: 0 works

alt
Cube84 IT Services

Score: 3514

Virtacore is a leading cloud services provider specializing in virtual infrastructure solutions utilizing VMware. Our cloud solutions and disaster recovery services are built on leading edge, best-of-class Cisco UCS FlexPod architecture. We operate in the ...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 0 works

Score: 3214

EventBank is a leading cloud-based engagement management technology company that provides chambers of commerce, associations, event organizers, marketers, and businesses with solutions designed to streamline operations, modernize processes, and eliminate ...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 0 works

alt
EventBank IT Services

Score: 3214

Phase2 is a digital agency moving industry-leading organizations forward with powerful ideas and executable digital strategies built on open technology. We are experts at building and designing websites, applications, and digital platforms that position o ...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 0 works

alt
Phase2 IT Services

Score: 2514

CapTech is a national technology-consulting firm offering a full suite of services including management consulting, systems integration, and data management. CapTech designs, implements and integrates IT systems for America’s most respected companies. ...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 2 works

alt
CapTech IT Services

Score: 1995

...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 0 works

alt
ePlus Inc. IT Services

Score: 1995

...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 0 works

alt
ICF IT Services

Score: 1995

The diverse services and products that MAXIMUS offers may be categorized into two groups: Government Operations and Government Consulting. Government Operations focuses on having a measurable impact on the lives of the citizens we help government serve. T ...

Avg project size: $2500   |   Reviews: 0   |   Portfolio: 0 works

alt
MAXIMUS IT Services

Other IT companies in Norfolk

IT-MSP | IT Services |

IT Services agencies in other Virginia cities

Abingdon | Accomac | Achilles | Afton | Alberta | Aldie | Alexandria | Altavista | Alton | Amelia Court House | Amherst | Amissville | Ammon | Amonate | Andover | Annandale | Appalachia | Appomattox | Ararat | Ark | Arlington | Aroda | Arrington | Arvonia | Ashburn | Ashland | Assawoman | Atkins | Atlantic | Augusta Springs | Austinville | Axton | Aylett | Bacova | Banco | Bandy | Barboursville | Barhamsville | Barren Springs | Baskerville | Bassett | Bastian | Basye | Batesville | Battery Park | Bealeton | Beaumont | Beaverdam | Bedford | Bee | Belle Haven | Belspring | Bena | Bentonville | Bent Mountain | Ben Hur | Bergton | Berryville | Big Island | Big Rock | Big Stone Gap | Birchleaf | Birdsnest | Bishop | Blacksburg | Blackstone | Blackwater | Blairs | Bland | Bloxom | Bluefield | Bluemont | Blue Grass | Blue Ridge | Bohannon | Boissevain | Boones Mill | Boston | Bowling Green | Boyce | Boydton | Boykins | Bracey | Branchville | Brandy Station | Breaks | Bremo Bluff | Bridgewater | Brightwood | Bristol | Bristow | Broadford | Broadway | Broad Run | Brodnax | Brooke | Brookneal | Brownsburg | Brucetown | Bruington | Buchanan | Buckingham | Buena Vista | Buffalo Junction | Bumpass | Burgess | Burke | Burkes Garden | Burkeville | Burr Hill | Callands | Callao | Callaway | Calverton | Cana | Capeville | Cape Charles | Capron | Cardinal | Caret | Carrollton | Carrsville | Carson | Cartersville | Casanova | Cascade | Castleton | Castlewood | Catawba | Catharpin | Catlett | Cedar Bluff | Center Cross | Centreville | Ceres | Champlain | Chantilly | Charles City | Charlottesville | Charlotte Court House | Chase City | Chatham | Check | Cheriton | Chesapeake | Chester | Chesterfield | Chester Gap | Chilhowie | Chincoteague Island | Christchurch | Christiansburg | Churchville | Church Road | Church View | Claremont | Clarksville | Claudville | Clear Brook | Cleveland | Clifford | Clifton | Clifton Forge | Clinchco | Clintwood | Clover | Cloverdale | Cluster Springs | Cobbs Creek | Coeburn | Coleman Falls | Coles Point | Collinsville | Colonial Beach | Colonial Heights | Columbia | Concord | Copper Hill | Corbin | Courtland | Covesville | Covington | Craddockville | Craigsville | Crewe | Criders | Crimora | Cripple Creek | Critz | Crockett | Cross Junction | Crozet | Crozier | Crystal Hill | Cullen | Culpeper | Cumberland | Dahlgren | Daleville | Damascus | Dante | Danville | Davenport | Davis Wharf | Dayton | Deerfield | Delaplane | Deltaville | Dendron | Dewitt | Dhs | Diggs | Dillwyn | Dinwiddie | Disputanta | Doe Hill | Dogue | Dolphin | Doran | Doswell | Drakes Branch | Draper | Drewryville | Dryden | Dry Fork | Dublin | Duffield | Dugspur | Dulles | Dumfries | Dundas | Dungannon | Dunnsville | Dunn Loring | Dutton | Dyke | Eagle Rock | Earlysville | Eastville | East Stone Gap | Ebony | Edinburg | Edwardsville | Eggleston | Elberon | Elkton | Elkwood | Elk Creek | Elliston | Emory | Emporia | Esmont | Etlan | Evergreen | Evington | Ewing | Exmore | Faber | Fairfax | Fairfax Station | Fairfield | Falls Church | Falls Mills | Fancy Gap | Farmville | Farnham | FDIC | Ferrum | Fieldale | Fincastle | Fishersville | Fishers Hill | Flint Hill | Floyd | Ford | Forest | Fork Union | Fort Belvoir | Fort Blackmore | Fort Defiance | Fort Eustis | Fort Lee | Fort Mitchell | Fort Monroe | Fort Myer | Fort Valley | Foster | Franklin | Franktown | Fredericksburg | Freeman | Free Union | Fries | Front Royal | Fulks Run | Gainesville | Galax | Garrisonville | Gasburg | Gate City | Glade Hill | Glade Spring | Gladstone | Gladys | Glasgow | Glen Allen | Glen Lyn | Glen Wilton | Gloucester | Gloucester Point | Goldvein | Goochland | Goode | Goodview | Gordonsville | Gore | Goshen | Great Falls | Greenbackville | Greenbush | Greenville | Greenway | Greenwood | Green Bay | Gretna | Grimstead | Grottoes | Grundy | Gum Spring | Gwynn | Hacksneck | Hadensville | Hague | Halifax | Hallieford | Hallwood | Hamilton | Hampden Sydney | Hampton | Hanover | Harborton | Hardy | Hardyville | Harrisonburg | Hartfield | Hartwood | Hayes | Haymarket | Haynesville | Haysi | Haywood | Head Waters | Heathsville | Henrico | Henry | Herndon | Hillsville | Hiltons | Hinton | Hiwassee | Honaker | Hood | Hopewell | Horntown | Horsepen | Hot Springs | Howardsville | Huddleston | Hudgins | Hume | Huntly | Hurley | Hurt | Hustle | Independence | Indian Valley | Iron Gate | Irvington | Isle Of Wight | Ivanhoe | Ivor | Ivy | Jamaica | Jamestown | Jamesville | Jarratt | Java | Jeffersonton | Jenkins Bridge | Jersey | Jetersville | Jewell Ridge | Jonesville | Keeling | Keene | Keen Mountain | Keezletown | Keller | Kenbridge | Kents Store | Keokee | Keswick | Keysville | Kilmarnock | King And Queen Court House | King George | King William | Kinsale | Lacey Spring | Lackey | Ladysmith | Lambsburg | Lancaster | Laneview | Lanexa | Laurel Fork | Lawrenceville | La Crosse | Lebanon | Leesburg | Leon | Lexington | Lightfoot | Lignum | Lincoln | Linden | Linville | Little Plymouth | Lively | Locustville | Locust Dale | Locust Grove | Locust Hill | Long Island | Loretto | Lorton | Lottsburg | Louisa | Lovettsville | Lovingston | Lowry | Low Moor | Lunenburg | Luray | Lynchburg | Lynch Station | Lyndhurst | Machipongo | Madison | Madison Heights | Maidens | Manakin Sabot | Manassas | Mannboro | Manquin | Mappsville | Marion | Marionville | Markham | Marshall | Martinsville | Maryus | Mascot | Mathews | Mattaponi | Maurertown | Mavisdale | Maxie | Max Meadows | Mc Clure | Mc Coy | Mc Dowell | Mc Gaheysville | Mc Kenney | Mc Lean | Meadows Of Dan | Meadowview | Mears | Mechanicsville | Meherrin | Melfa | Mendota | Meredithville | Merrifield | Merry Point | Middlebrook | Middleburg | Middletown | Midland | Midlothian | Milford | Millboro | Millers Tavern | Millwood | Mineral | Mint Spring | Mitchells | Modest Town | Mollusk | Moneta | Monroe | Montebello | Monterey | Montpelier | Montpelier Station | Montross | Montvale | Moon | Morattico | Moseley | Mount Crawford | Mount Holly | Mount Jackson | Mount Sidney | Mount Solon | Mount Vernon | Mouth Of Wilson | Mustoe | Narrows | Naruna | NASA | Nassawadox | Nathalie | Natural Bridge | Natural Bridge Station | Nellysford | Nelson | Nelsonia | Newbern | Newington | Newport | Newport News | Newsoms | Newtown | New Canton | New Castle | New Church | New Hope | New Kent | New Market | New Point | New River | Nickelsville | Ninde | Nokesville | Nora | Norfolk | Norge | North | North Garden | North Tazewell | Norton | Norwood | Nottoway | Nuttsville | Oakpark | Oakton | Oakwood | Oak Hall | Occoquan | Oilville | Oldhams | Onancock | Onemo | Onley | Ophelia | Orange | Ordinary | Oriskany | Orkney Springs | Orlean | Oyster | Paeonian Springs | Painter | Paint Bank | Palmyra | Pamplin | Paris | Parksley | Parrott | Partlow | Patrick Springs | Pearisburg | Pembroke | Penhook | Pennington Gap | Penn Laird | Petersburg | Phenix | Philomont | Pilgrims Knob | Pilot | Piney River | Pittsville | Pleasant Valley | Pocahontas | Poquoson | Portsmouth | Port Haywood | Port Republic | Port Royal | Pound | Pounding Mill | Powhatan | Pratts | Prince George | Prospect | Providence Forge | Pulaski | Pungoteague | Purcellville | Quantico | Quicksburg | Quinby | Quinque | Quinton | Radford | Radiant | Randolph | Raphine | Rapidan | Rappahannock Academy | Raven | Rawlings | Rectortown | Redwood | Red Ash | Red House | Red Oak | Reedville | Remington | Rescue | Reston | Reva | Rhoadesville | Rice | Richardsville | Richlands | Richmond | Rich Creek | Ridgeway | Rileyville | Riner | Ringgold | Ripplemead | Rixeyville | Roanoke | Rochelle | Rockbridge Baths | Rockville | Rocky Gap | Rocky Mount | Rollins Fork | Rosedale | Roseland | Rose Hill | Round Hill | Rowe | Ruby | Ruckersville | Rural Retreat | Rustburg | Ruther Glen | Ruthville | Saint Charles | Saint Paul | Saint Stephens Church | Salem | Saltville | Saluda | Sandston | Sandy Hook | Sandy Level | Sandy Point | Sanford | Saxe | Saxis | Schley | Schuyler | Scottsburg | Scottsville | Seaford | Sealston | Seaview | Sedley | Selma | Severn | Shacklefords | Sharps | Shawsville | Shenandoah | Shipman | Shortt Gap | Singers Glen | Skippers | Skipwith | Smithfield | Somerset | Somerville | South Boston | South Hill | Sparta | Speedwell | Spencer | Sperryville | Spotsylvania | Spout Spring | Springfield | Spring Grove | Stafford | Staffordsville | Stanardsville | Stanley | Stanleytown | Star Tannery | State Farm | Staunton | Steeles Tavern | Stephenson | Stephens City | Sterling | Stevensburg | Stevensville | Stony Creek | Strasburg | Stratford | Stuart | Stuarts Draft | Studley | Suffolk | Sugar Grove | Sumerduck | Surry | Susan | Sussex | Sutherland | Sutherlin | Sweet Briar | Swoope | Swords Creek | Syria | Tangier | Tannersville | Tappahannock | Tasley | Tazewell | Temperanceville | Thaxton | The Plains | Thornburg | Timberville | Toano | Toms Brook | Topping | Townsend | Trevilians | Triangle | Troutdale | Troutville | Troy | Tyro | Unionville | Union Hall | Upperville | Urbanna | VAB | Valentines | Vansant | Vernon Hill | Verona | Vesta | Vesuvius | Victoria | Vienna | Viewtown | Village | Villamont | Vinton | Virgilina | Virginia Beach | Virginia State University | Wachapreague | Wake | Wakefield | Walkerton | Wallops Island | Wardtown | Ware Neck | Warfield | Warm Springs | Warrenton | Warsaw | Washington | Waterford | Water View | Wattsville | Waverly | Waynesboro | WDBG | Weber City | Weems | West Augusta | West Mclean | West Point | Weyers Cave | Whitetop | Whitewood | White Hall | White Marsh | White Plains | White Post | White Stone | Wicomico | Wicomico Church | Williamsburg | Williamsville | Willis | Willis Wharf | Wilsons | Winchester | Windsor | Wingina | Wirtz | Wise | Withams | Wolford | Wolftown | Woodberry Forest | Woodbridge | Woodford | Woodlawn | Woodstock | Woods Cross Roads | Woodville | Woolwine | Wylliesburg | Wytheville | Yale | Yorktown | Zacata | Zuni |

Other IT companies in Virginia

IT-MSP | IT Services |