Uwierzytelnianie aplikacji platformy .NET w usługach platformy Azure podczas programowania lokalnego przy użyciu kont deweloperów
Deweloperzy muszą debugować i testować aplikacje w chmurze na lokalnych stacjach roboczych. Gdy aplikacja działa na stacji roboczej dewelopera podczas programowania lokalnego, musi ona nadal uwierzytelniać się w dowolnych usługach platformy Azure używanych przez aplikację. W tym artykule opisano, jak używać poświadczeń platformy Azure dewelopera do uwierzytelniania aplikacji na platformie Azure podczas programowania lokalnego.
Aby aplikacja uwierzytelniła się na platformie Azure podczas programowania lokalnego przy użyciu poświadczeń platformy Azure dewelopera, deweloper musi zalogować się do platformy Azure z jednego z następujących narzędzi deweloperskich:
- Visual Studio
- Interfejs wiersza polecenia platformy Azure
- Azure Developer CLI
- Azure PowerShell
Biblioteka tożsamości platformy Azure może wykryć, że deweloper jest zalogowany z jednego z tych narzędzi. Biblioteka może następnie uzyskać token dostępu firmy Microsoft Entra za pośrednictwem narzędzia w celu uwierzytelnienia aplikacji na platformie Azure jako zalogowanego użytkownika.
To podejście jest najłatwiejsze do skonfigurowania dla zespołu deweloperów, ponieważ korzysta z istniejących kont platformy Azure deweloperów. Jednak konto dewelopera prawdopodobnie ma więcej uprawnień niż wymagane przez aplikację, w związku z czym przekracza uprawnienia uruchamiane przez aplikację w środowisku produkcyjnym. Alternatywnie można utworzyć jednostki usługi aplikacji do użycia podczas tworzenia lokalnego, które mogą być ograniczone tylko do dostępu wymaganego przez aplikację.
1 — Tworzenie grupy Microsoft Entra na potrzeby programowania lokalnego
Ponieważ prawie zawsze istnieje wielu deweloperów, którzy pracują nad aplikacją, zaleca się hermetyzowanie ról (uprawnień) wymaganych przez aplikację w programowania lokalnego. Takie podejście zapewnia następujące korzyści:
- Każdy deweloper ma przypisane te same role, ponieważ role są przypisywane na poziomie grupy.
- Jeśli dla aplikacji jest potrzebna nowa rola, należy ją dodać tylko do grupy aplikacji.
- Jeśli nowy deweloper dołączy do zespołu, uzyska niezbędne uprawnienia do pracy nad aplikacją po dodaniu do grupy.
Jeśli masz istniejącą grupę Microsoft Entra dla zespołu deweloperów, możesz użyć tej grupy. W przeciwnym razie wykonaj następujące kroki, aby utworzyć grupę firmy Microsoft Entra.
Uwaga
Domyślnie tworzenie grup entra firmy Microsoft jest ograniczone do niektórych ról uprzywilejowanych w katalogu. Jeśli nie możesz utworzyć grupy, skontaktuj się z administratorem katalogu. Jeśli nie możesz dodać członków do istniejącej grupy, skontaktuj się z właścicielem grupy lub administratorem katalogu. Aby dowiedzieć się więcej, zobacz Zarządzanie grupami i członkostwem w grupach firmy Microsoft.
2 — Przypisywanie ról do grupy Microsoft Entra
Następnie określ, jakich ról (uprawnień) potrzebuje twoja aplikacja na temat zasobów i przypisz te role do aplikacji. W tym przykładzie role są przypisywane do grupy Microsoft Entra utworzonej w kroku 1. Grupy można przypisać do roli w zakresie zasobu, grupy zasobów lub subskrypcji. W tym przykładzie pokazano, jak przypisywać role w grupie zasobów, zakres, ponieważ większość aplikacji grupuje wszystkie zasoby platformy Azure w jedną grupę zasobów.
3 — Logowanie się do platformy Azure przy użyciu narzędzi deweloperskich
Następnie zaloguj się do platformy Azure przy użyciu jednego z kilku narzędzi deweloperskich. Konto, które uwierzytelnisz, powinno również istnieć w utworzonej i skonfigurowanej wcześniej grupie Microsoft Entra.
- Program Visual Studio
- Interfejs wiersza polecenia platformy Azure
- Interfejs wiersza polecenia dla deweloperów platformy Azure
- Azure PowerShell
Przejdź do pozycji Opcje narzędzi>, aby otworzyć okno dialogowe opcji.
W polu Opcje wyszukiwania u góry wpisz Azure , aby filtrować dostępne opcje.
W obszarze Uwierzytelnianie usługi platformy Azure wybierz pozycję Wybór konta.
Wybierz menu rozwijane w obszarze Wybierz konto i wybierz opcję dodania konta Microsoft. Zostanie otwarte okno z monitem o wybranie konta. Wprowadź poświadczenia żądanego konta platformy Azure, a następnie wybierz potwierdzenie.
Wybierz przycisk OK , aby zamknąć okno dialogowe opcji.
4 — Implementowanie wartości domyślnejAzureCredential w aplikacji
DefaultAzureCredential to uporządkowana sekwencja mechanizmów uwierzytelniania w firmie Microsoft Entra. Każdy mechanizm uwierzytelniania jest klasą pochodzącą z klasy TokenCredential i jest nazywana poświadczeniami. W czasie wykonywania DefaultAzureCredential
próbuje uwierzytelnić się przy użyciu pierwszego poświadczenia. Jeśli to poświadczenie nie może uzyskać tokenu dostępu, zostanie podjęta próba następnego poświadczenia w sekwencji itd., dopóki token dostępu nie zostanie pomyślnie uzyskany. W ten sposób aplikacja może używać różnych poświadczeń w różnych środowiskach bez konieczności pisania kodu specyficznego dla środowiska.
Kolejność i lokalizacje, w których DefaultAzureCredential
wyszukiwanie poświadczeń znajduje się w obszarze DefaultAzureCredential.
Aby użyć DefaultAzureCredential
polecenia , dodaj pakiet Azure.Identity i opcjonalnie pakiety Microsoft.Extensions.Azure do aplikacji:
W wybranym terminalu przejdź do katalogu projektu aplikacji i uruchom następujące polecenia:
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Dostęp do usług platformy Azure jest uzyskiwany przy użyciu wyspecjalizowanych klas klientów z różnych bibliotek klienckich zestawu Azure SDK. Te klasy i własne usługi niestandardowe powinny być zarejestrowane, aby można było uzyskać do nich dostęp za pośrednictwem wstrzykiwania zależności w całej aplikacji. W Program.cs
programie wykonaj następujące kroki, aby zarejestrować klasę klienta i DefaultAzureCredential
:
- Uwzględnij
Azure.Identity
przestrzenie nazw iMicrosoft.Extensions.Azure
za pomocąusing
dyrektyw. - Zarejestruj klienta usługi platformy Azure przy użyciu odpowiedniej
Add
metody rozszerzenia z prefiksem. - Przekaż wystąpienie
DefaultAzureCredential
metodyUseCredential
.
Na przykład:
using Microsoft.Extensions.Azure;
using Azure.Identity;
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.AddBlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"));
clientBuilder.UseCredential(new DefaultAzureCredential());
});
Alternatywą jest UseCredential
utworzenie wystąpienia DefaultAzureCredential
bezpośrednio:
using Azure.Identity;
builder.Services.AddSingleton<BlobServiceClient>(_ =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Po uruchomieniu poprzedniego kodu na lokalnej stacji roboczej programistycznej w zmiennych środowiskowych dla jednostki usługi aplikacji lub w lokalnie zainstalowanych narzędziach deweloperskich, takich jak Program Visual Studio, dla zestawu poświadczeń dewelopera. Jedną z metod można użyć do uwierzytelniania aplikacji w zasobach platformy Azure podczas programowania lokalnego.
Po wdrożeniu na platformie Azure ten sam kod może również uwierzytelniać aplikację w innych zasobach platformy Azure. DefaultAzureCredential
program może automatycznie pobierać ustawienia środowiska i konfiguracje tożsamości zarządzanej w celu automatycznego uwierzytelniania w innych usługach.