Skip to content

Commit d286c24

Browse files
committed
Improve credential reuse code sample for ASP.NET Core
1 parent dfa0dfb commit d286c24

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

.openpublishing.redirection.azure.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@
123123
{
124124
"source_path_from_root": "/docs/azure/sdk/azure-sdk-configure-proxy.md",
125125
"redirect_url": "/dotnet/azure/sdk/configure-proxy"
126+
},
127+
{
128+
"source_path_from_root": "/docs/azure/authentication/authentication-best-practices.md",
129+
"redirect_url": "/dotnet/azure/sdk/authentication/best-practices"
126130
}
127131
]
128132
}

docs/azure/sdk/authentication/authentication-best-practices.md renamed to docs/azure/sdk/authentication/best-practices.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ The recommended credential reuse strategy differs by .NET application type.
5050

5151
Implement credential reuse through the `UseCredential` method of `Microsoft.Extensions.Azure`:
5252

53-
:::code language="csharp" source="../snippets/authentication/best-practices/Program.cs" id="snippet_credential_reuse_Dac" highlight="6" :::
53+
:::code language="csharp" source="../snippets/authentication/best-practices/Program.cs" id="snippet_credential_reuse_AspNetCore" highlight="12" :::
5454

5555
For information on this approach, see [Authenticate using Microsoft Entra ID](/dotnet/azure/sdk/aspnetcore-guidance?tabs=api#authenticate-using-microsoft-entra-id).
5656

5757
# [Other](#tab/other)
5858

59-
:::code language="csharp" source="../snippets/authentication/best-practices/Program.cs" id="snippet_credential_reuse_noDac" highlight="8, 12" :::
59+
:::code language="csharp" source="../snippets/authentication/best-practices/Program.cs" id="snippet_credential_reuse_nonAspNetCore" highlight="8, 12" :::
6060

6161
---
6262

docs/azure/sdk/snippets/authentication/best-practices/Program.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,29 @@
33
using Azure.Storage.Blobs;
44
using Microsoft.Extensions.Azure;
55

6-
var userAssignedClientId = "<user-assigned-client-id>";
6+
var clientId = "<user-assigned-client-id>";
77
var builder = WebApplication.CreateBuilder(args);
88

9-
#region snippet_credential_reuse_Dac
9+
#region snippet_credential_reuse_AspNetCore
1010
builder.Services.AddAzureClients(clientBuilder =>
1111
{
1212
clientBuilder.AddSecretClient(new Uri("<key-vault-url>"));
1313
clientBuilder.AddBlobServiceClient(new Uri("<blob-storage-url>"));
1414

15-
clientBuilder.UseCredential(new DefaultAzureCredential());
15+
string clientId = builder.Configuration["UserAssignedClientId"]!;
16+
ChainedTokenCredential credentialChain = new(
17+
new ManagedIdentityCredential(
18+
ManagedIdentityId.FromUserAssignedClientId(clientId)),
19+
new VisualStudioCredential());
20+
21+
clientBuilder.UseCredential(credentialChain);
1622
});
17-
#endregion snippet_credential_reuse_Dac
23+
#endregion snippet_credential_reuse_AspNetCore
1824

19-
#region snippet_credential_reuse_noDac
25+
#region snippet_credential_reuse_nonAspNetCore
2026
ChainedTokenCredential credentialChain = new(
2127
new ManagedIdentityCredential(
22-
ManagedIdentityId.FromUserAssignedClientId(userAssignedClientId)),
28+
ManagedIdentityId.FromUserAssignedClientId(clientId)),
2329
new VisualStudioCredential());
2430

2531
BlobServiceClient blobServiceClient = new(
@@ -29,11 +35,11 @@
2935
SecretClient secretClient = new(
3036
new Uri("<key-vault-url>"),
3137
credentialChain);
32-
#endregion snippet_credential_reuse_noDac
38+
#endregion snippet_credential_reuse_nonAspNetCore
3339

3440
#region snippet_retries
3541
ManagedIdentityCredentialOptions miCredentialOptions = new(
36-
ManagedIdentityId.FromUserAssignedClientId(userAssignedClientId)
42+
ManagedIdentityId.FromUserAssignedClientId(clientId)
3743
)
3844
{
3945
Retry =

0 commit comments

Comments
 (0)