Uwierzytelnianie i autoryzacja aplikacji przy użyciu identyfikatora Entra firmy Microsoft w celu uzyskania dostępu do jednostek usługi Azure Relay
Usługa Azure Relay obsługuje używanie identyfikatora Entra firmy Microsoft do autoryzacji żądań do jednostek usługi Azure Relay (połączenia hybrydowe, przekaźniki WCF). Za pomocą identyfikatora Entra firmy Microsoft możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby udzielić uprawnień jednostce zabezpieczeń, która może być użytkownikiem, grupą lub jednostką usługi aplikacji. Aby dowiedzieć się więcej na temat ról i przypisań ról, zobacz Opis różnych ról.
Uwaga
Ta funkcja jest ogólnie dostępna we wszystkich regionach, z wyjątkiem platformy Microsoft Azure obsługiwanej przez firmę 21Vianet.
Omówienie
Gdy podmiot zabezpieczeń (użytkownik, grupa, aplikacja) próbuje uzyskać dostęp do jednostki usługi Relay, żądanie musi być autoryzowane. W przypadku identyfikatora Entra firmy Microsoft dostęp do zasobu jest procesem dwuetapowym.
- Najpierw tożsamość podmiotu zabezpieczeń jest uwierzytelniana, a token OAuth 2.0 jest zwracany. Nazwa zasobu do żądania tokenu to
https://relay.azure.net
. Jeśli aplikacja działa w ramach jednostki platformy Azure, takiej jak maszyna wirtualna platformy Azure, zestaw skalowania maszyn wirtualnych lub aplikacja funkcji platformy Azure, może użyć tożsamości zarządzanej w celu uzyskania dostępu do zasobów. - Następnie token jest przekazywany jako część żądania do usługi Relay w celu autoryzowania dostępu do określonego zasobu (połączeń hybrydowych, przekaźników WCF). Firma Microsoft Entra autoryzuje prawa dostępu do zabezpieczonych zasobów za pośrednictwem kontroli dostępu na podstawie ról (RBAC) platformy Azure. Usługa Azure Relay definiuje zestaw wbudowanych ról platformy Azure, które obejmują typowe zestawy uprawnień używanych do uzyskiwania dostępu do jednostek usługi Relay. Możesz również zdefiniować role niestandardowe na potrzeby uzyskiwania dostępu do danych. Aby uzyskać listę wbudowanych ról obsługiwanych przez usługę Azure Relay, zobacz Role wbudowane platformy Azure dla usługi Azure Relay. Aplikacje natywne i aplikacje internetowe, które wysyłają żądania do usługi Relay, mogą również autoryzować za pomocą identyfikatora Entra firmy Microsoft.
Wbudowane role platformy Azure dla usługi Azure Relay
W przypadku usługi Azure Relay zarządzanie przestrzeniami nazw i wszystkimi powiązanymi zasobami za pośrednictwem witryny Azure Portal i interfejsu API zarządzania zasobami platformy Azure jest już chronione przy użyciu modelu RBAC platformy Azure. Platforma Azure udostępnia poniższe wbudowane role platformy Azure umożliwiające autoryzowanie dostępu do przestrzeni nazw usługi Relay:
Rola | opis |
---|---|
Właściciel usługi Azure Relay | Użyj tej roli, aby udzielić pełnego dostępu do zasobów usługi Azure Relay. |
Odbiornik usługi Azure Relay | Ta rola służy do udzielania dostępu do nasłuchiwania i odczytu jednostek do zasobów usługi Azure Relay. |
Nadawca usługi Azure Relay | Ta rola służy do udzielania dostępu do odczytu jednostek i wysyłania do zasobów usługi Azure Relay. |
Zakres zasobu
Przed przypisaniem roli platformy Azure do podmiotu zabezpieczeń określ zakres dostępu, który powinien mieć podmiot zabezpieczeń. Najlepsze rozwiązania określają, że zawsze najlepiej przyznać tylko najwęższy możliwy zakres.
Poniższa lista zawiera opis poziomów, na których można określić zakres dostępu do zasobów usługi Azure Relay, począwszy od najwęższego zakresu:
- Jednostki przekaźnika: przypisanie roli dotyczy określonej jednostki przekaźnika, takiej jak połączenie hybrydowe lub przekaźnik WCF.
- Przestrzeń nazw przekaźnika: przypisanie roli ma zastosowanie do wszystkich jednostek usługi Relay w przestrzeni nazw.
- Grupa zasobów: przypisanie roli dotyczy wszystkich zasobów usługi Relay w grupie zasobów.
- Subskrypcja: przypisanie roli dotyczy wszystkich zasobów usługi Relay we wszystkich grupach zasobów w subskrypcji.
Uwaga
Pamiętaj, że propagacja przypisań ról platformy Azure może potrwać do pięciu minut. Aby uzyskać więcej informacji na temat sposobu definiowania ról wbudowanych, zobacz Omówienie definicji ról. Aby uzyskać informacje na temat tworzenia ról niestandardowych platformy Azure, zobacz Role niestandardowe platformy Azure.
Uwierzytelnianie z aplikacji
Kluczową zaletą korzystania z identyfikatora Entra firmy Microsoft z usługą Azure Relay jest to, że poświadczenia nie muszą być już przechowywane w kodzie. Zamiast tego możesz zażądać tokenu dostępu OAuth 2.0 z Platforma tożsamości Microsoft. Firma Microsoft Entra uwierzytelnia podmiot zabezpieczeń (użytkownika, grupy lub jednostki usługi) z uruchomioną aplikacją. Jeśli uwierzytelnianie powiedzie się, identyfikator Entra firmy Microsoft zwraca token dostępu do aplikacji, a aplikacja może następnie użyć tokenu dostępu do autoryzowania żądań do usługi Azure Relay.
W poniższych sekcjach pokazano, jak skonfigurować aplikację konsolową do uwierzytelniania przy użyciu Platforma tożsamości Microsoft 2.0. Aby uzyskać więcej informacji, zobacz omówienie Platforma tożsamości Microsoft (wersja 2.0).
Aby zapoznać się z omówieniem przepływu udzielania kodu OAuth 2.0, zobacz Autoryzowanie dostępu do aplikacji internetowych firmy Microsoft Entra przy użyciu przepływu udzielania kodu OAuth 2.0.
Rejestrowanie aplikacji w dzierżawie firmy Microsoft Entra
Pierwszym krokiem używania identyfikatora Entra firmy Microsoft do autoryzowania jednostek usługi Azure Relay jest zarejestrowanie aplikacji klienckiej w dzierżawie firmy Microsoft Entra w witrynie Azure Portal. Podczas rejestrowania aplikacji klienckiej należy podać informacje o aplikacji w usłudze AD. Identyfikator Entra firmy Microsoft udostępnia następnie identyfikator klienta (nazywany również identyfikatorem aplikacji), którego można użyć do skojarzenia aplikacji ze środowiskiem uruchomieniowym Microsoft Entra.
Aby uzyskać instrukcje krok po kroku dotyczące rejestrowania aplikacji w usłudze Microsoft Entra ID, zobacz Szybki start: rejestrowanie aplikacji przy użyciu identyfikatora Entra firmy Microsoft.
Ważne
Zanotuj identyfikator katalogu (dzierżawy) i identyfikator aplikacji (klienta). Te wartości będą potrzebne do uruchomienia przykładowej aplikacji.
Tworzenie wpisu tajnego klienta
Aplikacja potrzebuje klucza tajnego klienta, aby potwierdzić swoją tożsamość podczas żądania tokenu. W tym samym artykule połączonym wcześniej zobacz sekcję Dodawanie wpisu tajnego klienta, aby utworzyć klucz tajny klienta.
Ważne
Zanotuj klucz tajny klienta. Będzie ona potrzebna do uruchomienia przykładowej aplikacji.
Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal
Przypisz jedną z ról usługi Azure Relay do jednostki usługi aplikacji w żądanym zakresie (jednostka przekaźnika, przestrzeń nazw, grupa zasobów, subskrypcja). Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.
Uruchamianie aplikacji przykładowej
Pobierz przykładową aplikację konsolową z usługi GitHub.
Uruchom aplikację lokalnie na komputerze zgodnie z instrukcjami z artykułu README.
Uwaga
Wykonaj te same kroki, aby uruchomić przykładową aplikację konsolową dla przekaźnika WCF.
Wyróżniony kod z przykładu
Oto kod z przykładu, który pokazuje, jak używać uwierzytelniania Microsoft Entra w celu nawiązania połączenia z usługą Azure Relay.
Utwórz obiekt TokenProvider przy użyciu
TokenProvider.CreateAzureActiveDirectoryTokenProvider
metody .Jeśli rejestracja aplikacji nie została jeszcze utworzona, zobacz sekcję Rejestrowanie aplikacji przy użyciu identyfikatora Entra firmy Microsoft, aby ją utworzyć, a następnie utwórz wpis tajny klienta zgodnie z opisem w sekcji Tworzenie wpisu tajnego klienta.
Jeśli chcesz użyć istniejącej rejestracji aplikacji, postępuj zgodnie z tymi instrukcjami, aby uzyskać identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy).
- Zaloguj się w witrynie Azure Portal.
- Wyszukaj i wybierz pozycję Microsoft Entra ID przy użyciu paska wyszukiwania u góry.
- Na stronie Microsoft Entra ID wybierz pozycję Rejestracje aplikacji w sekcji Zarządzanie w menu po lewej stronie.
- Wybierz rejestrację aplikacji.
- Na stronie rejestracji aplikacji są widoczne wartości identyfikatora aplikacji (klienta) i identyfikatora katalogu (dzierżawy).
Aby uzyskać klucz tajny klienta, wykonaj następujące kroki:
- Na stronie rejestracja aplikacji wybierz pozycję Certyfikaty i wpisy tajne w menu po lewej stronie.
- Użyj przycisku kopiowania w kolumnie Wartość wpisu tajnego w sekcji Wpisy tajne klienta.
static TokenProvider GetAadTokenProvider(string clientId, string tenantId, string clientSecret) { return TokenProvider.CreateAzureActiveDirectoryTokenProvider( async (audience, authority, state) => { IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId) .WithAuthority(authority) .WithClientSecret(clientSecret) .Build(); var authResult = await app.AcquireTokenForClient(new [] { $"{audience}/.default" }).ExecuteAsync(); return authResult.AccessToken; }, $"https://login.microsoftonline.com/{tenantId}"); }
Utwórz obiekt HybridConnectionListener lub HybridConnectionClient, przekazując identyfikator URI połączenia hybrydowego i dostawcę tokenu utworzonego w poprzednim kroku.
Odbiornik:
var listener = new HybridConnectionListener(hybridConnectionUri, tokenProvider);
Nadawca:
var sender = new HybridConnectionClient(hybridConnectionUri, tokenProvider);
Przykłady
- Połączenia hybrydowe: .NET, Java, JavaScript
- Przekaźnik WCF: .NET
Następne kroki
- Aby dowiedzieć się więcej na temat kontroli dostępu opartej na rolach platformy Azure, zobacz Co to jest kontrola dostępu oparta na rolach platformy Azure (Azure RBAC)?
- Aby dowiedzieć się, jak przypisywać przypisania ról platformy Azure i zarządzać nimi za pomocą programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure lub interfejsu API REST, zobacz następujące artykuły:
- Dodawanie lub usuwanie przypisań ról platformy Azure przy użyciu programu Azure PowerShell
- Dodawanie lub usuwanie przypisań ról platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
- Dodawanie lub usuwanie przypisań ról platformy Azure przy użyciu interfejsu API REST
- Dodawanie lub usuwanie przypisań ról platformy Azure przy użyciu szablonów usługi Azure Resource Manager
Aby dowiedzieć się więcej na temat usługi Azure Relay, zobacz następujące artykuły.