Udostępnij za pośrednictwem


Model tożsamości

Azure Communication Services to niezależna od tożsamości usługa, która oferuje wiele korzyści:

  • Użyj ponownie istniejących tożsamości z systemu zarządzania tożsamościami i zamapuj je przy użyciu tożsamości usług Azure Communication Services.
  • Działa dobrze w przypadku dowolnego istniejącego systemu tożsamości i nie ma zależności od określonego dostawcy tożsamości.
  • Zachowaj dane użytkownika, takie jak ich nazwa, prywatne, ponieważ nie trzeba ich duplikować w usługach Azure Communication Services.

Model tożsamości usług Azure Communication Services współpracuje z dwoma kluczowymi pojęciami.

Tożsamość użytkownika/mapowanie

Podczas tworzenia tożsamości użytkownika za pomocą zestawu SDK lub interfejsu API REST usługi Azure Communication Services tworzą unikatowy identyfikator użytkownika. Identyfikatory zewnętrzne, takie jak numery telefonów, identyfikatory użytkownika/urządzenia/aplikacji lub nazwy użytkowników, nie mogą być używane bezpośrednio w usługach Azure Communication Services. Zamiast tego należy używać tożsamości usług komunikacyjnych i utrzymywać mapowanie na własny system identyfikatorów użytkownika zgodnie z potrzebami. Tworzenie tożsamości użytkowników usługi Azure Communication Service jest bezpłatne, a opłaty są naliczane tylko wtedy, gdy użytkownik korzysta z procedur komunikacji, takich jak czat lub połączenie. Sposób korzystania z wygenerowanej tożsamości usług komunikacyjnych zależy od scenariusza. Można na przykład zamapować tożsamość 1:1, 1:N, N:1 lub N:N i użyć jej dla użytkowników lub aplikacji. Użytkownik może uczestniczyć w wielu sesjach komunikacji przy użyciu wielu urządzeń jednocześnie. Zarządzanie mapowaniem tożsamości użytkowników usług Azure Communication Services i własnym systemem tożsamości jest twoim zadaniem jako deweloper i nie jest wbudowane. Możesz na przykład dodać kolumnę CommunicationServicesId w istniejącej tabeli użytkowników do przechowywania skojarzonej tożsamości usług Azure Communication Services. Projekt mapowania został szczegółowo opisany w temacie Architektura klient-serwer.

Tokeny dostępu

Po utworzeniu tożsamości użytkownika użytkownik potrzebuje tokenu dostępu z określonymi zakresami, aby uczestniczyć w komunikacji przy użyciu czatu lub połączeń. Na przykład tylko użytkownik z tokenem z chat zakresem może uczestniczyć w czacie, a użytkownik z tokenem z voip zakresem może uczestniczyć w wywołaniu VoIP. Użytkownik może mieć jednocześnie wiele tokenów. Usługi Azure Communication Services obsługują wiele zakresów tokenów, aby uwzględnić użytkowników, którzy wymagają pełnego dostępu i ograniczonego dostępu. Tokeny dostępu mają następujące właściwości.

Właściwości opis
Temat Tożsamość użytkownika reprezentowana przez token.
Wygaśnięcie Token dostępu jest ważny przez co najmniej 1 godzinę i do 24 godzin. Po wygaśnięciu token dostępu jest nieprawidłowy i nie można go użyć do uzyskania dostępu do usługi. Aby utworzyć token z niestandardowym czasem wygaśnięcia, określ żądaną ważność w minutach (>=60, <1440). Domyślnie token jest ważny przez 24 godziny. Zalecamy używanie tokenów krótkiego okresu istnienia dla jednorazowych spotkań i dłuższych tokenów okresów istnienia dla użytkowników korzystających z aplikacji przez dłuższy czas.
Zakresy Zakresy definiują, do których elementów pierwotnych komunikacji (Chat/VoIP) można uzyskać dostęp za pomocą tokenu.

Token dostępu jest tokenem sieci Web JSON (JWT) i ma ochronę integralności. Oznacza to, że nie można zmienić jego oświadczeń bez unieważnienia tokenu dostępu, ponieważ podpis tokenu nie jest już zgodny. Jeśli typy pierwotne komunikacji są używane z nieprawidłowymi tokenami, odmowa dostępu. Mimo że tokeny nie są szyfrowane ani zaciemnione, aplikacja nie powinna zależeć od formatu tokenu ani jego oświadczeń. Format tokenu może ulec zmianie i nie jest częścią oficjalnego kontraktu interfejsu API. Usługi Azure Communication Services obsługują następujące zakresy tokenów dostępu.

Zakresy tokenu czatu

Obsługiwane są trzy różne zakresy tokenów czatu. Uprawnienia dla każdego zakresu opisano w poniższej tabeli.

  • chat
  • chat.join
  • chat.join.limited
Możliwości/Zakres tokenu czat chat.join chat.join.limited
Tworzenie wątku czatu Y N N
Aktualizowanie wątku czatu o identyfikatorze Y N N
Usuwanie wątku czatu o identyfikatorze Y N N
Dodawanie uczestnika do wątku czatu Y Y N
Usuwanie uczestnika z wątku czatu Y Y N
Pobieranie wątków czatu Y Y Y
Pobieranie wątku czatu o identyfikatorze Y Y Y
Pobieranie elementu ReadReceipt Y Y Y
Tworzenie elementu ReadReceipt Y Y Y
Tworzenie wiadomości dla wątku czatu o identyfikatorze Y Y Y
Pobieranie wiadomości z identyfikatorem komunikatu Y Y Y
Aktualizowanie własnej wiadomości przy użyciu identyfikatora komunikatu Y Y Y
Usuwanie własnej wiadomości z identyfikatorem komunikatu Y Y Y
Wskaźnik wysyłania wpisywania Y Y Y
Pobieranie uczestnika dla identyfikatora wątku Y Y Y

Zakresy tokenów VoIP

Obsługiwane są dwa zakresy tokenów VoIP. Uprawnienia dla każdego zakresu opisano w poniższej tabeli.

  • voip
  • voip.join
Możliwości/Zakres tokenu voip voip.join
Uruchamianie połączenia VoIP Y N
Rozpoczynanie połączenia VoIP w pokojach wirtualnych, gdy użytkownik jest już zaproszony do pokoju Y Y
Dołączanie do połączenia VoIP w usłudze InProgress Y Y
Dołącz do połączenia VoIP inProgress w pokojach wirtualnych, gdy użytkownik jest już zaproszony do pokoju Y Y
Wszystkie inne operacje wywołania, takie jak wyciszanie/wyciszanie, udostępnianie ekranu itp. Y Y
Wszystkie inne operacje wywołania, takie jak wyciszenie/wyciszenie, udostępnianie ekranu itp. w pokojach wirtualnych Określana przez rolę użytkownika Określana przez rolę użytkownika

Zakres można używać voip.join razem z usługą Rooms , aby utworzyć zaplanowane wywołanie, w którym tylko zaproszeni użytkownicy uzyskują dostęp i gdzie użytkownicy nie mogą tworzyć innych połączeń.

Odwoływanie lub aktualizowanie tokenu dostępu

  • Biblioteka tożsamości usług Azure Communication Services może służyć do odwoływanie tokenu dostępu przed upływem czasu wygaśnięcia. Odwołanie tokenu nie jest natychmiastowe. Propagacja może potrwać do 15 minut.
  • Usunięcie tożsamości, zasobu lub subskrypcji odwołuje wszystkie tokeny dostępu.
  • Jeśli chcesz usunąć możliwość uzyskania dostępu do określonych funkcji przez użytkownika, odwołaj wszystkie tokeny dostępu dla użytkownika. Następnie wydaj nowy token dostępu, który ma bardziej ograniczony zestaw zakresów.
  • Rotacja kluczy dostępu odwołuje wszystkie aktywne tokeny dostępu, które zostały utworzone przy użyciu byłego klucza dostępu. W związku z tym wszystkie tożsamości utracą dostęp do usług Azure Communication Services i potrzebują nowych tokenów dostępu.

Architektura klient-serwer

Należy utworzyć tokeny dostępu użytkowników i zarządzać nimi za pośrednictwem zaufanej usługi, a nie tworzyć tokenów w aplikacji klienckiej. Poświadczenia parametry połączenia lub Microsoft Entra niezbędne do utworzenia tokenów dostępu użytkowników muszą być chronione, przekazanie ich do klienta może spowodować wyciek wpisu tajnego. Niepowodzenie prawidłowego zarządzania tokenami dostępu może spowodować dodatkowe opłaty za zasób, gdy tokeny są wydawane swobodnie i są nieprawidłowo używane przez kogoś innego.

Jeśli buforujesz tokeny dostępu do magazynu kopii zapasowych, zalecamy szyfrowanie tokenów. Token dostępu zapewnia dostęp do poufnych danych i może być używany do złośliwego działania, jeśli nie jest on chroniony. Każda osoba mająca token dostępu użytkownika może uzyskać dostęp do danych czatu tego użytkownika lub wziąć udział w wywołaniach personifikacji użytkownika.

Pamiętaj, aby uwzględnić tylko te zakresy w tokenie, którego potrzebuje aplikacja kliencka, aby przestrzegać zasady zabezpieczeń najniższych uprawnień.

Diagram przedstawiający architekturę tokenu dostępu użytkownika.

  1. Użytkownik uruchamia aplikację kliencką.
  2. Aplikacja kliencka kontaktuje się z usługą zarządzania tożsamościami.
  3. Usługa zarządzania tożsamościami uwierzytelnia użytkownika aplikacji. Uwierzytelnianie można pominąć w scenariuszach, w których użytkownik jest anonimowy, ale należy zachować ostrożność, aby dodać inne środki ochronne, takie jak ograniczanie przepustowości i mechanizm CORS do usługi, aby wyeliminować nadużycie tokenu.
  4. Utwórz lub znajdź tożsamość usług komunikacyjnych dla użytkownika.
    1. Scenariusz stabilnej tożsamości: Usługa zarządzania tożsamościami utrzymuje mapowanie tożsamości między tożsamościami aplikacji i tożsamościami usług komunikacyjnych. (Tożsamości aplikacji obejmują użytkowników i inne obiekty adresowalne, takie jak usługi lub boty). Jeśli tożsamość aplikacji jest nowa, zostanie utworzona nowa tożsamość komunikacji i zostanie zapisane mapowanie.
    2. Scenariusz tożsamości efemerycznej: usługa zarządzania tożsamościami tworzy nową tożsamość komunikacji. W tym scenariuszu ten sam użytkownik kończy się inną tożsamością komunikacji dla każdej sesji.
  5. Usługa zarządzania tożsamościami wystawia token dostępu użytkownika dla odpowiedniej tożsamości i zwraca go do aplikacji klienckiej.

aplikacja systemu Azure Service lub Azure Functions to dwie alternatywy dla obsługi usługi zarządzania tożsamościami. Te usługi można łatwo skalować i mieć wbudowane funkcje do uwierzytelniania użytkowników. Są one zintegrowane z dostawcami tożsamości openID i dostawcami tożsamości innych firm, takimi jak Facebook.

Następne kroki