Managed Identity
Your ASP.NET Core app loads its database connection string from Azure Key Vault.
To reach Key Vault at all, the app first has to authenticate with a client secret, and that secret is sitting right there in its own configuration.
That's a real credential, sitting in a config file. If it ever leaks, whoever has it can open Key Vault too.
The app needs a secret just to prove it's allowed to ask for other secrets. That's exactly the loop a managed identity breaks.
A managed identity removes the secret entirely: turn it on for the app in Azure, so Azure itself becomes the app's identity and there's no secret for the app to hold at all. Then tell Key Vault to trust that managed identity directly.
Use: DefaultAzureCredential (Azure.Identity)
Azure vouches for the app. There's no secret left to leak, because there's no secret left to hold.
A hotel guest checks in, and the front desk issues a keycard that opens exactly one room.
The guest never carries a copy of the master key. The hotel's own system recognizes the card and vouches for it at every door.
Azure vouches for the app directly, so there's no master key to carry or lose.