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ę. Są one 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ę do witryny Azure Portal, wyszukaj i wybierz pozycję Aplikacje kontenera, a następnie wybierz aplikację. Zanotuj adres URL aplikacji. Służy do konfigurowania rejestracji aplikacji Microsoft Entra.
W menu portalu wybierz pozycję Microsoft Entra ID, a następnie przejdź do karty Rejestracje aplikacji i wybierz pozycję Nowa rejestracja.
Na stronie Rejestrowanie aplikacji wprowadź nazwę rejestracji aplikacji.
W polu Identyfikator URI przekierowania wybierz pozycję Sieć Web i wpisz
<app-url>/.auth/login/aad/callback
. Na przykładhttps://<hostname>.azurecontainerapps.io/.auth/login/aad/callback
.Wybierz pozycję Zarejestruj.
Po utworzeniu rejestracji aplikacji skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy) na później.
Wybierz Uwierzytelnianie. 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ę Zapisz.
(Opcjonalnie) Wybierz pozycję Znakowanie. W polu Adres URL strony głównej wprowadź adres URL aplikacji kontenera i wybierz pozycję Zapisz.
Wybierz pozycję Uwidaczniaj interfejs API i wybierz pozycję Ustaw obok pozycji Identyfikator URI identyfikatora aplikacji. Wartość identyfikatora 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.
- W polach tekstowych wprowadź nazwę zakresu zgody i opis, który użytkownicy mają zobaczyć na stronie zgody. Na przykład wprowadź nazwę aplikacji> programu Access<.
- Wybierz Dodaj zakres.
(Opcjonalnie) Aby utworzyć klucz tajny klienta, wybierz pozycję Certyfikaty i wpisy tajne Klienta Wpisy tajne>>Nowego klienta. Wprowadź opis i wygaśnięcie, a następnie wybierz pozycję Dodaj. Skopiuj wartość wpisu tajnego klienta wyświetlaną na stronie, ponieważ witryna nie wyświetli jej ponownie.
(Opcjonalnie) Aby dodać wiele adresów URL odpowiedzi, wybierz pozycję Uwierzytelnianie.
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:
Pole opis Identyfikator aplikacji (klient) Użyj identyfikatora aplikacji (klienta) rejestracji aplikacji. Klucz tajny klienta Użyj wpisu tajnego klienta wygenerowanego podczas rejestracji aplikacji. W przypadku wpisu tajnego klienta jest używany przepływ hybrydowy, 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 można teraz sprawdzić, czy oczekiwane role znajdują się 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