Sdílet prostřednictvím


Model identit

Azure Communication Services je služba nezávislá na identitě, která nabízí několik výhod:

  • Znovu použijte existující identity ze systému správy identit a namapujte je s identitami Azure Communication Services.
  • Funguje dobře s jakýmkoli existujícím systémem identit a nemá žádnou závislost na konkrétním zprostředkovateli identity.
  • Udržujte data uživatele, například jeho jméno, soukromá, protože je nemusíte duplikovat ve službě Azure Communication Services.

Model identit azure Communication Services funguje se dvěma klíčovými koncepty.

Identita uživatele / mapování

Když vytvoříte identitu uživatele pomocí sady SDK nebo rozhraní REST API, služba Azure Communication Services vytvoří jedinečný identifikátor uživatele. Externí identifikátory, jako jsou telefonní čísla, ID zařízení nebo aplikace nebo uživatelská jména, se nedají použít přímo ve službě Azure Communication Services. Místo toho musíte používat identity komunikačních služeb a podle potřeby udržovat mapování na vlastní systém ID uživatele. Vytváření identit uživatelů služby Azure Communication Service je bezplatné a poplatky se účtují pouze v případě, že uživatel využívá komunikační režimy, jako je chat nebo hovor. Způsob použití vygenerované identity komunikační služby závisí na vašem scénáři. Můžete například namapovat identitu 1:1, 1:N, N:1 nebo N:N a můžete ji použít pro lidské uživatele nebo aplikace. Uživatel se může účastnit více komunikačních relací pomocí více zařízení současně. Správa mapování mezi identitami uživatelů Azure Communication Services a vaším vlastním systémem identit je vaší zodpovědností za vývojáře a není integrovaná. Můžete například přidat CommunicationServicesId sloupec ve stávající tabulce uživatele, do které se uloží přidružená identita služby Azure Communication Services. Návrh mapování je podrobněji popsán v architektuře klient-server.

Přístupové tokeny

Po vytvoření identity uživatele potřebuje uživatel přístupový token s konkrétními obory, aby se mohli účastnit komunikace pomocí chatu nebo volání. Například pouze uživatel s tokenem s chat oborem se může účastnit chatu a uživatel s tokenem s voip oborem se může účastnit volání VoIP. Uživatel může mít současně více tokenů. Azure Communication Services podporuje více oborů tokenů, které umožňují zohlednit uživatele, kteří vyžadují úplný přístup a omezený přístup. Přístupové tokeny mají následující vlastnosti.

Vlastnost Popis
Předmět Identita uživatele reprezentovaná tokenem.
Vypršení platnosti Přístupový token je platný alespoň 1 hodinu a až 24 hodin. Po vypršení platnosti je přístupový token neplatný a nejde ho použít pro přístup ke službě. Pokud chcete vytvořit token s vlastním časem vypršení platnosti, zadejte požadovanou platnost v minutách (>=60, <1440). Ve výchozím nastavení je token platný po dobu 24 hodin. Doporučujeme používat krátké tokeny životnosti pro jednorázové schůzky a delší tokeny životnosti pro uživatele, kteří používají vaši aplikaci po delší dobu.
Rozsahy Obory definují, ke kterým primitivům komunikace (Chat/VoIP) je možné získat přístup pomocí tokenu.

Přístupový token je webový token JSON (JWT) a má ochranu integrity. To znamená, že jeho deklarace identity nelze změnit bez zneplatnění přístupového tokenu, protože podpis tokenu už neodpovídá. Pokud se primitivy komunikace používají s neplatnými tokeny, přístup se odepře. I když tokeny nejsou šifrované ani nezašifrované, neměla by vaše aplikace záviset na formátu tokenu ani na jeho deklarací identity. Formát tokenu se může změnit a není součástí oficiálního kontraktu rozhraní API. Azure Communication Services podporuje pro přístupové tokeny následující obory.

Obory tokenů chatu

Podporují se tři různé obory tokenů chatu. Oprávnění pro každý obor jsou popsaná v následující tabulce.

  • chat
  • chat.join
  • chat.join.limited
Možnosti / rozsah tokenů chat chat.join chat.join.limited
Vytvoření vlákna chatu Y N N
Aktualizace vlákna chatu s ID Y N N
Odstranění vlákna chatu s ID Y N N
Přidání účastníka do vlákna chatu Y Y N
Odebrání účastníka z vlákna chatu Y Y N
Získání vláken chatu Y Y Y
Získání vlákna chatu s ID Y Y Y
Získat ReadReceipt Y Y Y
Vytvoření readReceipt Y Y Y
Vytvoření zprávy pro vlákno chatu s ID Y Y Y
Získání zprávy s ID zprávy Y Y Y
Aktualizace vlastní zprávy pomocí ID zprávy Y Y Y
Odstranění vlastní zprávy s ID zprávy Y Y Y
Indikátor zadávání textu Y Y Y
Získání účastníka pro ID vlákna Y Y Y

Obory tokenů VoIP

Podporují se dva obory tokenů VoIP. Oprávnění pro každý obor jsou popsaná v následující tabulce.

  • voip
  • voip.join
Možnosti / rozsah tokenů voip voip.join
Zahájení volání VoIP Y N
Spuštění hovoru VoIP ve virtuálních místnostech, když už je uživatel pozvaný do místnosti Y Y
Připojení k volání VoIP inProgress Y Y
Připojte se k hovoru VoIP inProgress ve virtuálních místnostech, když už je uživatel pozvaný do místnosti. Y Y
Všechny ostatní operace volání, jako je ztlumení nebo zrušení ztlumení, sdílení obrazovky atd. Y Y
Všechny ostatní operace volání, jako je ztlumení nebo zrušení ztlumení, sdílení obrazovky atd. ve virtuálních místnostech Určeno rolí uživatele Určeno rolí uživatele

Rozsah voip.join můžete použít společně s místnostmi k vytvoření naplánovaného hovoru, kdy mají přístup jenom pozvaní uživatelé a kde uživatelé nemohou vytvářet další hovory.

Odvolání nebo aktualizace přístupového tokenu

  • Knihovnu identit služby Azure Communication Services je možné použít k odvolání přístupového tokenu před vypršením jeho platnosti. Odvolání tokenu není okamžité. Rozšíření může trvat až 15 minut.
  • Odstranění identity, prostředku nebo předplatného odvolá všechny přístupové tokeny.
  • Pokud chcete uživateli odebrat možnost přístupu ke konkrétním funkcím, odvolejte všechny přístupové tokeny pro uživatele. Pak vytvořte nový přístupový token, který má omezenější sadu oborů.
  • Obměna přístupových klíčů odvolá všechny aktivní přístupové tokeny vytvořené pomocí bývalého přístupového klíče. V důsledku toho všechny identity ztratí přístup ke službě Azure Communication Services a potřebují nové přístupové tokeny.

Architektura klient-server

Tokeny přístupu uživatelů byste měli vytvářet a spravovat prostřednictvím důvěryhodné služby a nevytvořovat tokeny v klientské aplikaci. Přihlašovací údaje připojovací řetězec nebo Microsoft Entra, které jsou nezbytné k vytvoření přístupových tokenů uživatelů, musí být chráněné, a jejich předání klientovi by riskovalo únik tajného kódu. Selhání správné správy přístupových tokenů může vést k dodatečným poplatkům za váš prostředek, když jsou tokeny volně vydávány a zneužity někým jiným.

Pokud do mezipaměti ukládáte přístupové tokeny do záložního úložiště, doporučujeme šifrovat tokeny. Přístupový token poskytuje přístup k citlivým datům a dá se použít pro škodlivou aktivitu, pokud není chráněná. Každý, kdo má přístupový token uživatele, má přístup k datům chatu daného uživatele nebo se může účastnit hovorů, které uživatele zosobní.

Nezapomeňte do tokenu zahrnout pouze ty obory, které vaše klientská aplikace potřebuje, aby dodržovala princip zabezpečení s nejnižšími oprávněními.

Diagram znázorňující architekturu přístupového tokenu uživatele

  1. Uživatel spustí klientskou aplikaci.
  2. Klientská aplikace kontaktuje vaši službu správy identit.
  3. Služba správy identit ověřuje uživatele aplikace. Můžete přeskočit ověřování pro scénáře, kdy je uživatel anonymní, ale dávejte pozor, abyste do služby přidali další ochranná opatření, jako je omezování a CORS, aby se zmírnit zneužití tokenů.
  4. Vytvořte nebo vyhledejte identitu komunikační služby pro uživatele.
    1. Scénář stabilní identity: Služba správy identit udržuje mapování mezi identitami aplikací a identitami komunikačních služeb. (Identity aplikací zahrnují uživatele a další adresovatelné objekty, jako jsou služby nebo roboti.) Pokud je identita aplikace nová, vytvoří se nová komunikační identita a uloží se mapování.
    2. Scénář dočasné identity: Služba pro správu identit vytvoří novou komunikační identitu. V tomto scénáři skončí stejný uživatel s jinou identitou komunikace pro každou relaci.
  5. Služba správy identit vydá přístupový token uživatele pro příslušnou identitu a vrátí ho do klientské aplikace.

Aplikace Azure Služba nebo Azure Functions jsou dvě alternativy pro provoz služby správy identit. Tyto služby se snadno škálují a mají integrované funkce pro ověřování uživatelů. Jsou integrované s OpenID a poskytovateli identity třetích stran, jako je Facebook.

Další kroky