Udostępnij przez


Opcje konfiguracji aplikacji

Aby uwierzytelnić i uzyskać tokeny, należy zainicjować nową publiczną lub poufnej aplikacji klienckiej w kodzie. Podczas inicjowania aplikacji klienckiej w bibliotece Microsoft Authentication Library (MSAL) można ustawić kilka opcji konfiguracji. Te opcje należą do dwóch grup:

Organ

Urząd jest adresem URL wskazującym katalog, z którego biblioteka MSAL może żądać tokenów.

Wspólne organy to:

Wspólne adresy URL urzędu Kiedy używać
https://login.microsoftonline.com/<tenant>/ Zaloguj użytkowników tylko określonej organizacji. W <tenant> adresie URL jest identyfikator dzierżawy dzierżawy firmy Microsoft (identyfikator GUID) lub jego domeny dzierżawy.
https://login.microsoftonline.com/common/ Logowanie użytkowników przy użyciu kont służbowych lub osobistych kont Microsoft.
https://login.microsoftonline.com/organizations/ Logowanie użytkowników przy użyciu kont służbowych.
https://login.microsoftonline.com/consumers/ Zaloguj użytkowników tylko przy użyciu osobistych kont Microsoft (MSA).

Urząd określony w kodzie musi być zgodny z obsługiwanymi typami kont określonymi dla aplikacji w obszarze Rejestracje aplikacji w witrynie Azure Portal.

Urząd może być:

Władze firmy Microsoft Entra w chmurze mają dwie części:

  • Wystąpienie dostawcy tożsamości
  • Grupa docelowa logowania dla aplikacji

Wystąpienie i odbiorcy mogą być łączone i udostępniane jako adres URL urzędu. Na tym diagramie pokazano, jak składa się adres URL urzędu:

Jak składa się adres URL urzędu

Wystąpienie chmury

Wystąpienie służy do określania, czy aplikacja loguje użytkowników z chmury publicznej platformy Azure, czy z chmur krajowych. Korzystając z biblioteki MSAL w kodzie, możesz ustawić wystąpienie chmury platformy Azure przy użyciu wyliczenia lub przekazując adres URL do wystąpienia chmury krajowej w roli Instance jako elementu.

MSAL.NET zgłasza jawny wyjątek, jeśli określono zarówno Instance , jak i AzureCloudInstance .

Jeśli nie określisz wystąpienia, aplikacja jest przeznaczona dla wystąpienia chmury publicznej platformy Azure (wystąpienia adresu URL https://login.onmicrosoftonline.com).

Odbiorcy aplikacji

Odbiorcy logowania zależą od potrzeb biznesowych aplikacji:

  • Jeśli jesteś deweloperem biznesowym (LOB), prawdopodobnie utworzysz aplikację z jedną dzierżawą używaną tylko w organizacji. W takim przypadku określ organizację według identyfikatora dzierżawy (identyfikatora wystąpienia firmy Microsoft Entra) lub nazwy domeny skojarzonej z wystąpieniem firmy Microsoft Entra.
  • Jeśli jesteś niezależnego dostawcy oprogramowania, możesz chcieć zalogować użytkowników przy użyciu kont służbowych w dowolnej organizacji lub w niektórych organizacjach (wielodostępnej aplikacji). Możesz jednak również chcieć, aby użytkownicy logowali się przy użyciu osobistych kont Microsoft.

Jak określić odbiorców w kodzie/konfiguracji

Korzystając z biblioteki MSAL w kodzie, należy określić odbiorców przy użyciu jednej z następujących wartości:

  • Wyliczenie odbiorców urzędu Entra firmy Microsoft
  • Identyfikator dzierżawy, który może być:
    • Identyfikator GUID (identyfikator wystąpienia firmy Microsoft Entra) dla aplikacji z jedną dzierżawą
    • Nazwa domeny skojarzona z wystąpieniem firmy Microsoft Entra (również dla aplikacji z jedną dzierżawą)
  • Jeden z tych symboli zastępczych jako identyfikator dzierżawy zamiast wyliczenia odbiorców urzędu Entra firmy Microsoft:
    • organizations dla aplikacji wielodostępnej
    • consumers logowanie użytkowników tylko przy użyciu kont osobistych
    • common aby zalogować użytkowników przy użyciu kont służbowych lub osobistych kont Microsoft

Biblioteka MSAL zgłasza znaczący wyjątek, jeśli określisz zarówno odbiorców urzędu Entra firmy Microsoft, jak i identyfikator dzierżawy.

Zaleca się określenie odbiorców, ponieważ wiele dzierżaw i wdrożonych w nich aplikacji będzie mieć użytkowników-gości. Jeśli aplikacja jest przeznaczona dla użytkowników zewnętrznych, unikaj common punktów końcowych i .organization Jeśli nie określisz grupy odbiorców, aplikacja będzie przeznaczona dla konta Microsoft Entra ID i osobistych kont Microsoft jako odbiorców i będzie zachowywać się tak, jakby common zostały określone.

Efektywni odbiorcy

Efektywną grupą odbiorców aplikacji będzie minimalna (jeśli istnieje skrzyżowanie) odbiorców ustawionych w aplikacji i odbiorców określonych w rejestracji aplikacji. W rzeczywistości środowisko Rejestracje aplikacji umożliwia określenie odbiorców (obsługiwanych typów kont) dla aplikacji. Aby uzyskać więcej informacji, zobacz Szybki start: rejestrowanie aplikacji za pomocą platformy tożsamości firmy Microsoft.

Obecnie jedynym sposobem uzyskania aplikacji do logowania użytkowników z tylko osobistymi kontami Microsoft jest skonfigurowanie obu tych ustawień:

  • Ustaw odbiorców rejestracji aplikacji na Work and school accounts and personal accounts.
  • Ustaw odbiorców w kodzie/konfiguracji na AadAuthorityAudience.PersonalMicrosoftAccount (lub TenantID ="konsumenci").

ID klienta

Identyfikator klienta to unikatowy identyfikator aplikacji (klienta) przypisany do aplikacji przez identyfikator Firmy Microsoft Entra po zarejestrowaniu aplikacji. Identyfikator aplikacji (klienta) można znaleźć na stronie Przegląd aplikacji wobszarze Aplikacje dla przedsiębiorstw>.

Adres URI przekierowania

Identyfikator URI przekierowania to identyfikator URI, do który dostawca tożsamości wysyła tokeny zabezpieczające.

Identyfikator URI przekierowania dla publicznych aplikacji klienckich

Jeśli jesteś publicznym deweloperem aplikacji klienckiej, który korzysta z biblioteki MSAL:

  • Chcesz użyć w .WithDefaultRedirectUri() aplikacjach klasycznych (MSAL.NET 4.1 lub nowszych). Metoda .WithDefaultRedirectUri() ustawia właściwość identyfikatora URI przekierowania publicznej aplikacji klienckiej na domyślny zalecany identyfikator URI przekierowania dla publicznych aplikacji klienckich.

    Platforma Adres URI przekierowania
    Aplikacja klasyczna (.NET Framework) https://login.microsoftonline.com/common/oauth2/nativeclient
    Platforma UWP WebAuthenticationBroker.GetCurrentApplicationCallbackUri()wartość . Umożliwia to logowanie jednokrotne (SSO) w przeglądarce, ustawiając wartość na wynik elementu WebAuthenticationBroker.GetCurrentApplicationCallbackUri(), który należy zarejestrować
    .SIEĆ https://localhost Umożliwia użytkownikowi używanie przeglądarki systemowej do uwierzytelniania interakcyjnego, ponieważ platforma .NET nie ma interfejsu użytkownika dla osadzonego widoku internetowego w tej chwili.

Identyfikator URI przekierowania można zastąpić przy użyciu RedirectUri właściwości (na przykład jeśli używasz brokerów). Oto kilka przykładów identyfikatorów URI przekierowania dla tego scenariusza:

  • RedirectUriOnAndroid = "msauth-00001111-aaaa-2222-bbbb-3333cccc4444://com.microsoft.identity.client.sample";
  • RedirectUriOnIos = $"msauth.{Bundle.ID}://auth";

Aby uzyskać więcej informacji na temat systemu Android, zobacz Brokered auth in Android (Uwierzytelnienie obsługiwane przez brokera w systemie Android).

  • Podczas kompilowania aplikacji przy użyciu biblioteki MSAL Android można skonfigurować redirect_uri element podczas początkowej rejestracji aplikacji lub dodać ją później.

    • Format identyfikatora URI przekierowania to: msauth://<yourpackagename>/<base64urlencodedsignature>
    • Przykład: redirect_uri = msauth://com.azuresamples.myapp/6/aB1cD2eF3gH4iJ5kL6-mN7oP8qR=
  • Aby uzyskać więcej informacji na temat konfiguracji aplikacji MSAL dla systemu Android, zapoznaj się z tematem Konfiguracja biblioteki MSAL dla systemu Android.

  • Skonfiguruj identyfikator URI przekierowania w Rejestracjach aplikacji.

    Zrzut ekranu przedstawiający sekcję Identyfikator URI przekierowania i opcje na stronie Rejestracje aplikacji.

Identyfikator URI przekierowania dla poufnych aplikacji klienckich

W przypadku aplikacji internetowych identyfikator URI przekierowania (lub adres URL odpowiedzi) jest identyfikatorem URI używanym przez firmę Microsoft Entra do wysyłania tokenu z powrotem do aplikacji. Identyfikator URI może być adresem URL aplikacji internetowej/internetowego interfejsu API, jeśli aplikacja poufne jest jedną z nich. Identyfikator URI przekierowania musi zostać zarejestrowany w rejestracji aplikacji. Rejestracja jest szczególnie ważna podczas wdrażania aplikacji, która została początkowo przetestowana lokalnie. Następnie należy dodać adres URL odpowiedzi wdrożonej aplikacji w portalu rejestracji aplikacji.

W przypadku aplikacji demona nie trzeba określać identyfikatora URI przekierowania.

Poświadczenia aplikacji

W przypadku poufnych aplikacji klienckich efektywne zarządzanie poświadczeniami jest niezbędne. Poświadczenia mogą być poświadczeniami federacyjnymi (zalecanymi), certyfikatem lub kluczem tajnym klienta.

Poświadczenia tożsamości federacyjnej

Poświadczenia tożsamości federacyjnej to typ poświadczeń, który umożliwia wykonywanie obciążeń takich jak GitHub Actions, obciążeń działających na platformie Kubernetes lub obciążeń działających na platformach obliczeniowych poza Azure do uzyskiwania dostępu do zasobów chronionych przez Microsoft Entra bez konieczności zarządzania sekretami przy użyciu federacji tożsamości obciążeń.

Certyfikat

Ta opcja określa certyfikat dla poufnej aplikacji klienckiej. Czasami nazywany kluczem publicznym certyfikat jest zalecanym typem poświadczeń, ponieważ są uważane za bezpieczniejsze niż wpisy tajne klienta.

Klucz tajny klienta

Ta opcja określa klucz tajny klienta dla poufnej aplikacji klienckiej. Wpis tajny klienta (hasło aplikacji) jest udostępniany przez portal rejestracji aplikacji lub udostępniany identyfikatorowi entra firmy Microsoft podczas rejestracji aplikacji za pomocą programu PowerShell Microsoft Entra ID, Moduł AzureRM programu PowerShell lub interfejs wiersza polecenia platformy Azure.

Rejestrowanie

Aby ułatwić debugowanie i rozwiązywanie problemów z błędami uwierzytelniania, biblioteka MSAL zapewnia wbudowaną obsługę rejestrowania. Rejestrowanie w każdej bibliotece zostało omówione w następujących artykułach:

Następne kroki

Dowiedz się więcej o instancjonowaniu aplikacji klienckich przy użyciu MSAL.NET i instancjonowaniu aplikacji klienckich przy użyciu MSAL.js.