Włączanie uwierzytelniania i autoryzacji w usłudze Azure Container Apps przy użyciu identyfikatora Entra firmy Microsoft
W tym artykule pokazano, jak skonfigurować uwierzytelnianie dla usługi Azure Container Apps, aby aplikacja logować użytkowników przy użyciu Platforma tożsamości Microsoft jako dostawcy uwierzytelniania.
Funkcja uwierzytelniania usługi Container Apps może automatycznie utworzyć rejestrację aplikacji przy użyciu Platforma tożsamości Microsoft. Możesz również użyć rejestracji utworzonej oddzielnie przez Ciebie lub administratora katalogu.
- Automatyczne tworzenie nowej rejestracji aplikacji
- Użyj istniejącej rejestracji utworzonej oddzielnie
Opcja 1. Automatyczne tworzenie nowej rejestracji aplikacji
Ta opcja została zaprojektowana tak, aby włączanie uwierzytelniania było proste i wymaga zaledwie kilku kroków.
Zaloguj się do witryny Azure Portal i przejdź do aplikacji.
Wybierz pozycję Uwierzytelnianie w menu po lewej stronie. Wybierz pozycję Dodaj dostawcę tożsamości.
Wybierz pozycję Microsoft z listy rozwijanej Dostawca tożsamości. Opcja utworzenia nowej rejestracji jest domyślnie zaznaczona. Możesz zmienić nazwę rejestracji lub obsługiwane typy kont.
Wpis tajny klienta jest tworzony i przechowywany jako wpis tajny w aplikacji kontenera.
Jeśli konfigurujesz pierwszego dostawcę tożsamości dla tej aplikacji, zostanie wyświetlony monit z sekcją Ustawienia uwierzytelniania usługi Container Apps. W przeciwnym razie przejdziesz do następnego kroku.
Te opcje określają sposób, w jaki aplikacja odpowiada na nieuwierzytelnione żądania, a domyślne opcje przekierowują wszystkie żądania, aby zalogować się przy użyciu tego nowego dostawcy. To zachowanie można teraz dostosować lub dostosować te ustawienia później z głównego ekranu uwierzytelniania , wybierając pozycję Edytuj obok pozycji Ustawienia uwierzytelniania. Aby dowiedzieć się więcej o tych opcjach, zobacz Przepływ uwierzytelniania.
(Opcjonalnie) Wybierz pozycję Dalej: Uprawnienia i dodaj wszystkie zakresy wymagane przez aplikację. Zakresy są dodawane do rejestracji aplikacji, ale można je również zmienić później.
Wybierz Dodaj.
Teraz możesz użyć Platforma tożsamości Microsoft do uwierzytelniania w aplikacji. Dostawca jest wyświetlany na ekranie Uwierzytelnianie . Z tego miejsca możesz edytować lub usunąć tę konfigurację dostawcy.
Opcja 2. Użyj istniejącej rejestracji utworzonej oddzielnie
Możesz również ręcznie zarejestrować aplikację dla Platforma tożsamości Microsoft, dostosować rejestrację i skonfigurować uwierzytelnianie aplikacji kontenera przy użyciu szczegółów rejestracji. Takie podejście jest przydatne, gdy chcesz użyć rejestracji aplikacji z innej dzierżawy firmy Microsoft Entra innej niż ta, w której zdefiniowano aplikację.
Tworzenie rejestracji aplikacji w usłudze Microsoft Entra ID dla aplikacji kontenera
Najpierw należy utworzyć rejestrację aplikacji. W ten sposób zbierz następujące informacje potrzebne później podczas konfigurowania uwierzytelniania w aplikacji kontenera:
- Client ID
- Identyfikator dzierżawy
- Klucz tajny klienta (opcjonalnie)
- URI identyfikatora aplikacji
Aby zarejestrować aplikację, wykonaj następujące kroki:
- Zaloguj się w witrynie Azure Portal.
- Wyszukaj i wybierz pozycję Container Apps, a następnie wybierz aplikację. Na stronie Przegląd zanotuj adres URL aplikacji aplikacji. Służy do konfigurowania rejestracji aplikacji Microsoft Entra.
- Wybierz pozycję Strona główna , aby powrócić do menu głównego portalu. Wyszukaj i wybierz Tożsamość Microsoft Entra.
- Na stronie Przegląd wybierz pozycję Dodaj, a następnie wybierz pozycję Rejestracja aplikacji.
Na stronie Rejestrowanie aplikacji wprowadź nazwę rejestracji aplikacji.
W polu Identyfikator URI przekierowania wybierz pozycję Sieć Web i wprowadź następujące polecenie. Zastąp
\<APP_URL\>
ciąg zanotowanymi wcześniej adresem URL aplikacji.<APP_URL>/.auth/login/aad/callback
.Na przykład:
https://<CONTAINER_APP_NAME>.<ENVIRONMENT_UNIQUE_ID>.<REGION_NAME>.azurecontainerapps.io/.auth/login/aad/callback
.W obszarze Niejawne udzielanie i przepływy hybrydowe włącz tokeny identyfikatorów , aby zezwolić na logowanie użytkowników openID Connect z usługi Container Apps.
Wybierz pozycję Zarejestruj.
- Przejdź do nowej rejestracji aplikacji.
- Na stronie Przegląd skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy) na później.
- (Opcjonalnie) Jeśli wcześniej nie dodano identyfikatora URI przekierowania do rejestracji aplikacji, możesz to zrobić teraz.
W obszarze Zarządzane wybierz pozycję Uwierzytelnianie.
Na stronie Uwierzytelnianie w obszarze Konfiguracje platformy wybierz pozycję Dodaj platformę.
W obszarze Konfigurowanie platform wybierz pozycję Sieć Web.
W obszarze Konfigurowanie sieci Web w obszarze Identyfikatory URI przekierowania wprowadź następujące wartości. Zastąp
\<APP_URL\>
ciąg zanotowanymi wcześniej adresem URL aplikacji.<APP_URL>/.auth/login/aad/callback
.Na przykład:
https://<CONTAINER_APP_NAME>.<HOSTNAME>.<LOCATION>.azurecontainerapps.io/.auth/login/aad/callback
.Wybierz Konfiguruj.
- (Opcjonalnie) W obszarze Zarządzaj wybierz pozycję Znakowanie i właściwości. W polu Adres URL strony głównej wprowadź adres URL aplikacji kontenera i wybierz pozycję Zapisz.
- W obszarze Zarządzanie wybierz pozycję Uwidaczniaj interfejs API.
Wybierz pozycję Dodaj obok pozycji Identyfikator URI identyfikatora aplikacji.
Identyfikator URI identyfikatora aplikacji jednoznacznie identyfikuje aplikację, gdy jest używana jako zasób, co umożliwia żądanym tokenom udzielanie dostępu. Wartość jest również używana jako prefiks dla tworzonych zakresów.
W przypadku aplikacji z jedną dzierżawą można użyć wartości domyślnej, która znajduje się w postaci
api://<APPLICATION_CLIENT_ID>
. Można również określić bardziej czytelny identyfikator URI, taki jakhttps://contoso.com/api
na podstawie jednej ze zweryfikowanych domen dla dzierżawy. W przypadku aplikacji wielodostępnej należy podać niestandardowy identyfikator URI. Aby dowiedzieć się więcej na temat akceptowanych formatów identyfikatorów URI identyfikatorów aplikacji, zobacz dokumentację najlepszych rozwiązań dotyczących rejestracji aplikacji.Wartość jest zapisywana automatycznie.
Wybierz Dodaj zakres.
W obszarze Dodawanie zakresu identyfikator URI identyfikatora aplikacji jest wartością ustawioną w poprzednim kroku.
Wybierz przycisk Zapisz i kontynuuj.
W polu Nazwa zakresu wprowadź user_impersonation.
Wprowadź nazwę wyświetlaną zgody administratora i opis zgody administratora, który ma być widoczny dla administratorów na stronie zgody. Przykładowa nazwa wyświetlana zgody to Access application-name (Uzyskiwanie dostępu <do nazwy> aplikacji).
Wybierz Dodaj zakres.
- W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne.
- Na stronie Certyfikaty i wpisy tajne wybierz pozycję Wpisy tajne klienta.
- Wybierz Nowy klucz tajny klienta.
- Wprowadź opis i wybierz, kiedy wpis tajny wygaśnie.
- Wybierz Dodaj.
- Skopiuj wartość wpisu tajnego klienta wyświetlaną na stronie, ponieważ witryna nie będzie wyświetlać jej ponownie.
Włączanie identyfikatora Entra firmy Microsoft w aplikacji kontenera
Zaloguj się do witryny Azure Portal i przejdź do aplikacji.
Wybierz pozycję Uwierzytelnianie w menu po lewej stronie. Wybierz pozycję Dodaj dostawcę tożsamości.
Wybierz pozycję Microsoft z listy rozwijanej Dostawca tożsamości.
W polu Typ rejestracji aplikacji możesz wybrać opcję Wybierz istniejącą rejestrację aplikacji w tym katalogu , która automatycznie zbiera niezbędne informacje o aplikacji. Jeśli rejestracja pochodzi z innej dzierżawy lub nie masz uprawnień do wyświetlania obiektu rejestracji, wybierz pozycję Podaj szczegóły istniejącej rejestracji aplikacji. W przypadku tej opcji należy wypełnić następujące szczegóły konfiguracji:
Ostrzeżenie
Jeśli to możliwe, unikaj używania niejawnego przepływu udzielania. W większości scenariuszy dostępne są bezpieczniejsze alternatywy i zalecane. Niektóre konfiguracje tego przepływu wymagają bardzo wysokiego stopnia zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy nie są opłacalne. Aby uzyskać więcej informacji, zobacz obawy dotyczące zabezpieczeń dotyczące niejawnego przepływu udzielania.
Pole opis Identyfikator aplikacji (klient) Użyj identyfikatora aplikacji (klienta) rejestracji aplikacji. Klucz tajny klienta Użyj wpisu tajnego klienta wygenerowanego podczas rejestracji aplikacji. Wpisy tajne klienta używają przepływu hybrydowego, a aplikacja zwraca tokeny dostępu i odświeżania. Gdy klucz tajny klienta nie jest ustawiony, jest używany niejawny przepływ i zwracany jest tylko token identyfikatora. Dostawca wysyła tokeny i są one przechowywane w magazynie tokenów EasyAuth. Adres URL wystawcy Użyj <authentication-endpoint>/<TENANT-ID>/v2.0
elementu i zastąp <punkt końcowy uwierzytelniania punktem końcowym> uwierzytelniania dla środowiska chmury (na przykład ";https://login.microsoftonline.com" w przypadku globalnej platformy Azure) należy również zastąpić <identyfikator dzierżawy> identyfikatorem katalogu (dzierżawy), w którym utworzono rejestrację aplikacji. Ta wartość służy do przekierowywania użytkowników do właściwej dzierżawy firmy Microsoft Entra oraz pobierania odpowiednich metadanych w celu określenia odpowiednich kluczy podpisywania tokenu i wartości oświadczenia wystawcy tokenu na przykład. W przypadku aplikacji korzystających z usługi Azure AD w wersji 1 pomiń/v2.0
adres URL.Dozwolone grupy odbiorców tokenów Skonfigurowany identyfikator aplikacji (klienta) jest zawsze niejawnie uznawany za dozwolonych odbiorców. Jeśli ta wartość odnosi się do aplikacji w chmurze lub serwera i chcesz akceptować tokeny uwierzytelniania z aplikacji kontenera klienta (token uwierzytelniania można pobrać w nagłówku X-MS-TOKEN-AAD-ID-TOKEN
), dodaj tutaj identyfikator aplikacji (klienta) aplikacji.Wpis tajny klienta jest przechowywany jako wpisy tajne w aplikacji kontenera.
Jeśli jest to pierwszy dostawca tożsamości skonfigurowany dla aplikacji, zostanie również wyświetlony monit z sekcją Ustawienia uwierzytelniania usługi Container Apps. W przeciwnym razie przejdziesz do następnego kroku.
Te opcje określają sposób, w jaki aplikacja odpowiada na nieuwierzytelnione żądania, a domyślne opcje przekierują wszystkie żądania, aby zalogować się przy użyciu tego nowego dostawcy. Możesz teraz zmienić to zachowanie lub dostosować te ustawienia później z głównego ekranu uwierzytelniania , wybierając pozycję Edytuj obok pozycji Ustawienia uwierzytelniania. Aby dowiedzieć się więcej o tych opcjach, zobacz Przepływ uwierzytelniania.
Wybierz Dodaj.
Teraz możesz użyć Platforma tożsamości Microsoft do uwierzytelniania w aplikacji. Dostawca jest wyświetlany na ekranie Uwierzytelnianie . Z tego miejsca możesz edytować lub usunąć tę konfigurację dostawcy.
Konfigurowanie aplikacji klienckich w celu uzyskania dostępu do aplikacji kontenera
W poprzedniej sekcji zarejestrowano aplikację kontenera w celu uwierzytelnienia użytkowników. W tej sekcji zarejestrujesz natywnego klienta lub aplikacje demona. Następnie mogą żądać dostępu do interfejsów API udostępnianych przez aplikację kontenera w imieniu użytkowników lub siebie. Wykonanie czynności opisanych w tej sekcji nie jest wymagane, jeśli chcesz uwierzytelnić użytkowników.
Natywna aplikacja kliencka
Możesz zarejestrować klientów natywnych, aby zażądać dostępu do interfejsów API aplikacji kontenera w imieniu zalogowanego użytkownika.
W witrynie Azure Portal wybierz pozycję Dodaj> identyfikator>entra firmy Microsoft Rejestracje aplikacji.
Na stronie Rejestrowanie aplikacji wprowadź nazwę rejestracji aplikacji.
W polu Identyfikator URI przekierowania wybierz pozycję Klient publiczny (mobilny i klasyczny) i wpisz adres URL
<app-url>/.auth/login/aad/callback
. Na przykładhttps://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
.Uwaga
W przypadku aplikacji ze sklepu Microsoft Store użyj identyfikatora SID pakietu jako identyfikatora URI.
Wybierz pozycję Utwórz.
Po utworzeniu rejestracji aplikacji skopiuj wartość identyfikatora aplikacji (klienta).
Wybierz pozycję Uprawnienia>interfejsu API Dodaj uprawnienie>Moje interfejsy API.
Wybierz rejestrację aplikacji utworzoną wcześniej dla aplikacji kontenera. Jeśli rejestracja aplikacji nie jest widoczna, upewnij się, że dodano zakres user_impersonation w sekcji Tworzenie rejestracji aplikacji w usłudze Microsoft Entra ID dla aplikacji kontenera.
W obszarze Uprawnienia delegowane wybierz pozycję user_impersonation, a następnie wybierz pozycję Dodaj uprawnienia.
W tej sekcji skonfigurowano natywną aplikację kliencką, która może żądać dostępu do aplikacji kontenera w imieniu użytkownika.
Aplikacja kliencka demona (wywołania typu service-to-service)
Aplikacja może uzyskać token w celu wywołania internetowego interfejsu API hostowanego w aplikacji kontenera w imieniu siebie (nie w imieniu użytkownika). Ten scenariusz jest przydatny w przypadku aplikacji demonów nieinterakcyjnych, które wykonują zadania bez zalogowanego użytkownika. Używa ona standardowego przyznawania poświadczeń klienta OAuth 2.0.
- W witrynie Azure Portal wybierz pozycję Dodaj> identyfikator>entra firmy Microsoft Rejestracje aplikacji.
- Na stronie Rejestrowanie aplikacji wprowadź nazwę rejestracji aplikacji demona.
- W przypadku aplikacji demona nie potrzebujesz identyfikatora URI przekierowania, aby zachować ten pusty identyfikator.
- Wybierz pozycję Utwórz.
- Po utworzeniu rejestracji aplikacji skopiuj wartość identyfikatora aplikacji (klienta).
- Wybierz pozycję Certyfikaty i wpisy tajne Nowy klucz tajny>>klienta Dodaj. Skopiuj wartość wpisu tajnego klienta pokazaną na stronie. Nie jest on ponownie wyświetlany.
Teraz możesz zażądać tokenu dostępu przy użyciu identyfikatora klienta i klucza tajnego klienta, ustawiając resource
parametr na identyfikator URI identyfikatora aplikacji docelowej. Wynikowy token dostępu można następnie przedstawić aplikacji docelowej przy użyciu standardowego nagłówka autoryzacji OAuth 2.0, a uwierzytelnianie /autoryzacja aplikacji kontenera weryfikuje i używa tokenu w zwykły sposób, aby wskazać, że obiekt wywołujący (aplikacja w tym przypadku, a nie użytkownik) jest uwierzytelniony.
Ten proces umożliwia dowolnym aplikacjom klienckim w dzierżawie firmy Microsoft Entra żądanie tokenu dostępu i uwierzytelnienie w aplikacji docelowej. Jeśli chcesz również wymusić autoryzację , aby zezwolić tylko na niektóre aplikacje klienckie, musisz dostosować konfigurację.
- Zdefiniuj rolę aplikacji w manifeście rejestracji aplikacji reprezentującej aplikację kontenera, którą chcesz chronić.
- W rejestracji aplikacji reprezentującej klienta, który musi być autoryzowany, wybierz pozycję Uprawnienia>interfejsu API Dodaj uprawnienie>Moje interfejsy API.
- Wybierz utworzoną wcześniej rejestrację aplikacji. Jeśli rejestracja aplikacji nie jest widoczna, upewnij się, że dodano rolę aplikacji.
- W obszarze Uprawnienia aplikacji wybierz utworzoną wcześniej rolę aplikacji, a następnie wybierz pozycję Dodaj uprawnienia.
- Upewnij się, że wybierz pozycję Udziel zgody administratora, aby autoryzować aplikację kliencą, aby zażądać uprawnień.
- Podobnie jak w poprzednim scenariuszu (przed dodaniem wszystkich ról), można teraz zażądać tokenu dostępu dla tego samego obiektu docelowego
resource
, a token dostępu zawieraroles
oświadczenie zawierające role aplikacji, które zostały autoryzowane dla aplikacji klienckiej. - W docelowym kodzie usługi Container Apps sprawdź, czy oczekiwane role są teraz obecne w tokenie. Warstwa uwierzytelniania usługi Container Apps nie wykonuje kroków weryfikacji. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do oświadczeń użytkowników.
W tej sekcji skonfigurowano aplikację kliencką demona, która może uzyskiwać dostęp do aplikacji kontenera przy użyciu własnej tożsamości.
Praca z uwierzytelnionymi użytkownikami
Skorzystaj z poniższych przewodników, aby uzyskać szczegółowe informacje na temat pracy z uwierzytelnionymi użytkownikami.
- Dostosowywanie logowania i wylogowywanie
- Uzyskiwanie dostępu do oświadczeń użytkowników w kodzie aplikacji