Documentation on using local developer accounts for auth is missing a few steps.
- Dominant language
- No language data
- Stars
- 4.8k
- Forks
- 6.1k
- Avg merge
- 15h 21m
- Merged PRs (30d)
- 370
Description
Hi all.
Update:
Please ignore the strike-throughed section below. After a bit more playing with this I've discovered that the ExcludeVisualStudioCredential wasn't the root cause of the issue. Please see below for the update about the steps which need to be taken. Sincere apologies about the confusion I may have caused.
~According to the [documentation](https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication-local-development-dev-accounts), when using developer accounts to authenticate one can use the `DefaultAzureCredential` class. [The code examples](https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication-local-development-dev-accounts?tabs=azure-portal%2Csign-in-visual-studio%2Ccommand-line#4---implement-defaultazurecredential-in-your-application) didn't work for me unless I explicitly pass the `DefaultAzureCredentialOptions` with the `ExcludeVisualStudioCredential` flag set to `false`:~
```csharp
DefaultAzureCredential defaultAzureCredentialTokenProvider = new DefaultAzureCredential(new DefaultAzureCredentialOptions()
{
ExcludeVisualStudioCredential = false,
});
```
~Unless the ExcludeVisualStudioCredential is set to false, I'm getting the following error message:~
> ~DefaultAzureCredential failed to retrieve a token from the included credentials. See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/defaultazurecredential/troubleshoot~
> ~- EnvironmentCredential authentication unavailable. Environment variables are not fully configured. See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/environmentcredential/troubleshoot~
> ~- ManagedIdentityCredential authentication unavailable. Multiple attempts failed to obtain a token from the managed identity endpoint.~
> ~- Process "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Asal\TokenService\Microsoft.Asal.TokenService.exe" has failed with unexpected error: TS003: Error, TS004: Unable to get access token. 'AADSTS65001: The user or administrator has not consented to use the application with ID '**GUID**' named 'Visual Studio'. Send an interactive authorization request for this user and resource.~
> ~Trace ID: **GUID**~
> ~Correlation ID: **GUID**~
> ~Timestamp: 2023-05-18 09:22:40Z'.~
> ~- Stored credentials not found. Need to authenticate user in VSCode Azure Account. See the troubleshooting guide for more information. https://aka.ms/azsdk/net/identity/vscodecredential/troubleshoot~
> ~- Please run 'az login' to set up account~
> ~- PowerShell is not installed.~
UPDATE:
After playing with this for a bit more I also discovered that the docs don't mention other steps that needs setting up to get this to work:
### Step 1
Go to AAD overview blade -> Enterprise Applications - find your API registration and then under the Users and Groups blade and assign your users/groups to specific app-roles for your application. Ex:

### Step 2
Go to your app registration's Authentication blade and add a platform -> Choose Web plaform and add your redirect to your localhost:port and make sure you tick the the options : Access tokens and ID tokens

### Step 3
Now if you try to run this in VS, you should see an error message:
> - Process "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\Asal\TokenService\Microsoft.Asal.TokenService.exe" has failed with unexpected error: TS003: Error, TS004: Unable to get access token. 'AADSTS65001: The user or administrator has not consented to use the application with ID '**GUID**' named 'Visual Studio'. Send an interactive authorization request for this user and resource.
Make a note of your **GUID** for your application ID which you need to add to the app registration's Expose API blade:
1. Add a scope:

2. Add your client application ID (the GUID you've noted)

Now, we should be able to go back to VS and use the `DefaultAzureCredential` without any options being set explicitly.
Thought it was maybe worth mentioning and enhancing the documentation with this, hopefully, helpful information.
~PS. Related issue: ['ExcludeVisualStudioCredential default is true' should be mentioned in the DefaultAzureCredential's documentation](https://github.com/Azure/azure-sdk-for-net/issues/36352)~
Thanks & Regards,
Michal
---
#### Document Details
⚠ *Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.*
* ID: 1c677e2f-0e33-b160-4783-e756d35f60f2
* Version Independent ID: f5c33eca-03ea-9f8c-2069-ecf8aac20ec7
* Content: [Authenticate .NET apps to Azure services during local development using developer accounts](https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication-local-development-dev-accounts?tabs=azure-portal%2Csign-in-visual-studio%2Ccommand-line)
* Content Source: [docs/azure/sdk/authentication-local-development-dev-accounts.md](https://github.com/dotnet/docs/blob/main/docs/azure/sdk/authentication-local-development-dev-accounts.md)
* Product: **dotnet-azure**
* GitHub Login: @alexwolfmsft
* Microsoft Alias: **alexwolf**
Contributor guide
Assessment
This issue has not been assessed yet.