Uwierzytelnianie i autoryzacja w usłudze Azure Spatial Anchors

W tym artykule poznasz różne sposoby uwierzytelniania w usłudze Azure Spatial Anchors z poziomu aplikacji lub usługi internetowej. Poznasz również sposoby używania kontroli dostępu opartej na rolach (RBAC) platformy Azure w usłudze Microsoft Entra ID w celu kontrolowania dostępu do kont usługi Spatial Anchors.

Ostrzeżenie

Zalecamy używanie kluczy kont do szybkiego dołączania, ale tylko podczas tworzenia i tworzenia prototypów. Nie zalecamy dostarczania aplikacji do środowiska produkcyjnego przy użyciu osadzonego klucza konta. Zamiast tego należy użyć metod uwierzytelniania microsoft Entra opartych na użytkownikach lub opartych na usłudze opisanych w dalszej części.

Omówienie

Diagram that shows an overview of authentication to Azure Spatial Anchors.

Aby uzyskać dostęp do danego konta usługi Azure Spatial Anchors, klienci muszą najpierw uzyskać token dostępu z usługi Azure Mixed Reality Security Token Service (STS). Tokeny uzyskane z usługi STS mają okres istnienia 24 godzin. Zawierają one informacje używane przez usługi Spatial Anchors do podejmowania decyzji dotyczących autoryzacji na koncie i zapewnienia, że tylko autoryzowane podmioty zabezpieczeń mogą uzyskiwać dostęp do konta.

Tokeny dostępu można uzyskać w zamian za klucze konta lub tokeny wystawione przez identyfikator Firmy Microsoft Entra.

Klucze konta umożliwiają szybkie rozpoczęcie pracy przy użyciu usługi Azure Spatial Anchors. Jednak przed wdrożeniem aplikacji w środowisku produkcyjnym zalecamy zaktualizowanie aplikacji tak, aby korzystała z uwierzytelniania Firmy Microsoft Entra.

Tokeny uwierzytelniania entra firmy Microsoft można uzyskać na dwa sposoby:

  • Jeśli tworzysz aplikację dla przedsiębiorstw, a twoja firma używa identyfikatora Microsoft Entra jako systemu tożsamości, możesz użyć uwierzytelniania firmy Microsoft Entra opartego na użytkownikach w aplikacji. Następnie udzielasz dostępu do kont usługi Spatial Anchors przy użyciu istniejących grup zabezpieczeń firmy Microsoft Entra. Możesz również udzielić dostępu bezpośrednio użytkownikom w organizacji.
  • W przeciwnym razie zalecamy uzyskanie tokenów firmy Microsoft Entra z usługi internetowej obsługującej twoją aplikację. Zalecamy tę metodę dla aplikacji produkcyjnych, ponieważ pozwala uniknąć osadzania poświadczeń w celu uzyskania dostępu do usługi Azure Spatial Anchors w aplikacji klienckiej.

Klucze konta

Najprostszym sposobem rozpoczęcia pracy jest użycie kluczy konta na potrzeby dostępu do konta usługi Azure Spatial Anchors. Klucze konta można uzyskać w witrynie Azure Portal. Przejdź do konta i wybierz kartę Klucze :

Screenshot that shows the Keys tab with the Copy button for the Primary key highlighted.

Dostępne są dwa klucze. Oba są jednocześnie prawidłowe dla dostępu do konta usługi Spatial Anchors. Zalecamy regularne aktualizowanie klucza używanego do uzyskiwania dostępu do konta. Posiadanie dwóch oddzielnych prawidłowych kluczy umożliwia te aktualizacje bez przestoju. Musisz tylko zaktualizować klucz podstawowy i klucz pomocniczy.

Zestaw SDK ma wbudowaną obsługę uwierzytelniania za pomocą kluczy konta. Wystarczy ustawić AccountKey właściwość obiektu cloudSession :

this.cloudSession.Configuration.AccountKey = @"MyAccountKey";

Po ustawieniu tej właściwości zestaw SDK będzie obsługiwać wymianę klucza konta dla tokenu dostępu i niezbędne buforowanie tokenów dla aplikacji.

Uwierzytelnianie użytkowników firmy Microsoft Entra

W przypadku aplikacji przeznaczonych dla użytkowników firmy Microsoft Entra zalecamy użycie tokenu Entra firmy Microsoft dla użytkownika. Ten token można uzyskać przy użyciu biblioteki MSAL. Wykonaj kroki opisane w przewodniku Szybki start dotyczący rejestrowania aplikacji, w tym:

W witrynie Azure Portal

  1. Zarejestruj aplikację w usłudze Microsoft Entra ID jako aplikację natywną. W ramach rejestracji należy określić, czy aplikacja powinna być wielodostępna. Musisz również podać dozwolone adresy URL przekierowania dla aplikacji.

  2. Przejdź do karty Uprawnienia interfejsu API.

  3. Wybierz opcję Dodaj uprawnienie.

    1. Wybierz pozycję Dostawca zasobów rzeczywistości mieszanej na karcie Interfejsy API używane przez moją organizację.
    2. Wybieranie delegowanych uprawnień.
    3. Wybierz pozycję mixedreality.signin w obszarze mixedreality.
    4. Wybierz Przyznaj uprawnienia.
  4. Wybierz Udzielanie zgody administratora.

  5. Przypisz rolę RBAC usługi ASA do aplikacji lub użytkowników, którym chcesz udzielić dostępu do zasobu. Jeśli chcesz, aby użytkownicy aplikacji mieli różne role względem konta usługi ASA, zarejestruj wiele aplikacji w identyfikatorze Entra firmy Microsoft i przypisz oddzielną rolę do każdego z nich. Następnie zaimplementuj logikę autoryzacji, aby użyć odpowiedniej roli dla użytkowników. Aby uzyskać szczegółowe instrukcje przypisywania ról, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

W kodzie

  1. Pamiętaj, aby użyć identyfikatora aplikacji i identyfikatora URI przekierowania własnej aplikacji Microsoft Entra dla parametrów identyfikatora klienta i identyfikatora przekierowania w usłudze MSAL.
  2. Ustaw informacje o dzierżawie:
    1. Jeśli aplikacja obsługuje tylko moją organizację, zastąp tę wartość identyfikatorem dzierżawy lub nazwą dzierżawy. Na przykład contoso.microsoft.com.
    2. Jeśli aplikacja obsługuje konta w dowolnym katalogu organizacyjnym, zastąp tę wartość organizacją.
    3. Jeśli aplikacja obsługuje wszystkich użytkowników konta Microsoft, zastąp tę wartość wartością Common.
  3. W żądaniu tokenu ustaw zakres na https://sts.mixedreality.azure.com//.default. Ten zakres będzie wskazywać identyfikator Entra firmy Microsoft, którego aplikacja żąda tokenu dla usługi tokenu zabezpieczającego rzeczywistości mieszanej (STS).

Po wykonaniu tych kroków aplikacja powinna mieć możliwość uzyskania z biblioteki MSAL tokenu Microsoft Entra. Możesz ustawić token Entra firmy Microsoft jako authenticationToken obiekt konfiguracji sesji w chmurze:

this.cloudSession.Configuration.AuthenticationToken = @"MyAuthenticationToken";

Uwierzytelnianie usługi Entra firmy Microsoft

Aby wdrożyć aplikacje korzystające z usługi Azure Spatial Anchors w środowisku produkcyjnym, zalecamy użycie usługi zaplecza, która będzie obsługiwać żądania uwierzytelniania. Oto omówienie procesu:

Diagram that provides an overview of authentication to Azure Spatial Anchors.

W tym miejscu zakłada się, że aplikacja używa własnego mechanizmu do uwierzytelniania w usłudze zaplecza. (Na przykład konto Microsoft, PlayFab, Facebook, identyfikator Google lub niestandardowa nazwa użytkownika i hasło). Po uwierzytelnieniu użytkowników w usłudze zaplecza usługa ta może pobrać token Entra firmy Microsoft, wymienić go na token dostępu dla usługi Azure Spatial Anchors i zwrócić go z powrotem do aplikacji klienckiej.

Token dostępu firmy Microsoft Entra jest pobierany za pośrednictwem biblioteki MSAL. Wykonaj kroki opisane w przewodniku Szybki start dotyczący rejestrowania aplikacji, w tym:

W witrynie Azure Portal

  1. Zarejestruj aplikację w identyfikatorze Entra firmy Microsoft:
    1. W witrynie Azure Portal wybierz pozycję Microsoft Entra ID, a następnie wybierz pozycję Rejestracje aplikacji.
    2. Wybierz Nowa rejestracja.
    3. Wprowadź nazwę aplikacji, wybierz pozycję Aplikacja internetowa/interfejs API jako typ aplikacji, a następnie wprowadź adres URL uwierzytelniania dla usługi. Wybierz pozycję Utwórz.
  2. W aplikacji wybierz pozycję Ustawienia, a następnie wybierz kartę Certyfikaty i wpisy tajne. Utwórz nowy klucz tajny klienta, wybierz czas trwania, a następnie wybierz pozycję Dodaj. Pamiętaj, aby zapisać wartość wpisu tajnego. Musisz uwzględnić go w kodzie usługi internetowej.
  3. Przypisz rolę RBAC usługi ASA do aplikacji lub użytkowników, którym chcesz udzielić dostępu do zasobu. Jeśli chcesz, aby użytkownicy aplikacji mieli różne role względem konta usługi ASA, zarejestruj wiele aplikacji w identyfikatorze Entra firmy Microsoft i przypisz oddzielną rolę do każdego z nich. Następnie zaimplementuj logikę autoryzacji, aby użyć odpowiedniej roli dla użytkowników. Aby uzyskać szczegółowe instrukcje przypisywania ról, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

W kodzie

Uwaga

Możesz użyć przykładu usługi, który jest dostępny jako część przykładowych aplikacji usługi Spatial Anchors.

  1. Pamiętaj, aby użyć identyfikatora aplikacji, wpisu tajnego aplikacji i identyfikatora URI przekierowania własnej aplikacji Microsoft Entra jako parametrów identyfikatora klienta, wpisu tajnego i identyfikatora RedirectUri w usłudze MSAL.
  2. Ustaw identyfikator dzierżawy na własny identyfikator dzierżawy firmy Microsoft Entra w parametrze urzędu w usłudze MSAL.
  3. W żądaniu tokenu ustaw zakres na https://sts.mixedreality.azure.com//.default.

Po wykonaniu tych kroków usługa zaplecza może pobrać token Entra firmy Microsoft. Następnie może wymienić go na token MR, który wróci do klienta. Użycie tokenu Entra firmy Microsoft do pobrania tokenu MR odbywa się za pośrednictwem wywołania REST. Oto przykładowe wywołanie:

GET https://sts.mixedreality.azure.com/Accounts/35d830cb-f062-4062-9792-d6316039df56/token HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1Ni<truncated>FL8Hq5aaOqZQnJr1koaQ
Host: sts.mixedreality.azure.com
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Sun, 24 Feb 2019 08:00:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 1153
Accept: application/json
MS-CV: 05JLqWeKFkWpbdY944yl7A.0
{"AccessToken":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjI2MzYyMTk5ZTI2NjQxOGU4ZjE3MThlM2IyMThjZTIxIiwidHlwIjoiSldUIn0.eyJqdGkiOiJmMGFiNWIyMy0wMmUxLTQ1MTQtOWEzNC0xNzkzMTA1NTc4NzAiLCJjYWkiOiIzNWQ4MzBjYi1mMDYyLTQwNjItOTc5Mi1kNjMxNjAzOWRmNTYiLCJ0aWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJhaWQiOiIzNWQ4MzBjYi1mMDYyLTQwNjItOTc5Mi1kNjMxNjAzOWRmNTYiLCJhYW8iOi0xLCJhcHIiOiJlYXN0dXMyIiwicmlkIjoiL3N1YnNjcmlwdGlvbnMvNzIzOTdlN2EtNzA4NC00ODJhLTg3MzktNjM5Y2RmNTMxNTI0L3Jlc291cmNlR3JvdXBzL3NhbXBsZV9yZXNvdXJjZV9ncm91cC9wcm92aWRlcnMvTWljcm9zb2Z0Lk1peGVkUmVhbGl0eS9TcGF0aWFsQW5jaG9yc0FjY291bnRzL2RlbW9fYWNjb3VudCIsIm5iZiI6MTU0NDU0NzkwMywiZXhwIjoxNTQ0NjM0MzAzLCJpYXQiOjE1NDQ1NDc5MDMsImlzcyI6Imh0dHBzOi8vbXJjLWF1dGgtcHJvZC50cmFmZmljbWFuYWdlci5uZXQvIiwiYXVkIjoiaHR0cHM6Ly9tcmMtYW5jaG9yLXByb2QudHJhZmZpY21hbmFnZXIubmV0LyJ9.BFdyCX9UJj0i4W3OudmNUiuaGgVrlPasNM-5VqXdNAExD8acFJnHdvSf6uLiVvPiQwY1atYyPbOnLYhEbIcxNX-YAfZ-xyxCKYb3g_dbxU2w8nX3zDz_X3XqLL8Uha-rkapKbnNgxq4GjM-EBMCill2Svluf9crDmO-SmJbxqIaWzLmlUufQMWg_r8JG7RLseK6ntUDRyDgkF4ex515l2RWqQx7cw874raKgUO4qlx0cpBAB8cRtGHC-3fA7rZPM7UQQpm-BC3suXqRgROTzrKqfn_g-qTW4jAKBIXYG7iDefV2rGMRgem06YH_bDnpkgUa1UgJRRTckkBuLkO2FvA"}

Nagłówek autoryzacji jest sformatowany w następujący sposób: Bearer <Azure_AD_token>

Odpowiedź zawiera token MR w postaci zwykłego tekstu.

Token MR jest następnie zwracany do klienta. Aplikacja kliencka może następnie ustawić ją jako token dostępu w konfiguracji sesji w chmurze:

this.cloudSession.Configuration.AccessToken = @"MyAccessToken";

Kontrola dostępu na podstawie ról na platformie Azure

Aby ułatwić kontrolowanie poziomu dostępu przyznanego aplikacjom, usługom lub użytkownikom usługi Microsoft Entra, możesz przypisać te wstępnie istniejące role zgodnie z potrzebami dla kont usługi Azure Spatial Anchors:

  • Właściciel konta usługi Spatial Anchors. Aplikacje lub użytkownicy, którzy mają tę rolę, mogą tworzyć kotwice przestrzenne, wykonywać dla nich zapytania i usuwać je. Podczas uwierzytelniania na koncie przy użyciu kluczy konta rola Właściciela konta usługi Spatial Anchors jest przypisywana do uwierzytelnionego podmiotu zabezpieczeń.
  • Współautor konta usługi Spatial Anchors. Aplikacje lub użytkownicy, którzy mają tę rolę, mogą tworzyć kotwice przestrzenne i wykonywać dla nich zapytania, ale nie mogą ich usuwać.
  • Czytelnik konta usługi Spatial Anchors. Aplikacje lub użytkownicy, którzy mają tę rolę, mogą wykonywać zapytania tylko dla kotwic przestrzennych. Nie mogą tworzyć nowych, usuwać istniejących ani aktualizować metadanych. Ta rola jest zwykle używana w przypadku aplikacji, w których niektórzy użytkownicy curate środowiska, ale inni mogą odwoływać tylko kotwice wcześniej umieszczone w środowisku.

Następne kroki

Utwórz pierwszą aplikację za pomocą usługi Azure Spatial Anchors:

iOS