Sdílet prostřednictvím


Autentizace

Při provádění volání REST se k ověření vyžaduje několik kroků. Sady SDK služby Azure Communication Services zpracovávají tento proces za vás, ale ruční zpracování požadavků znamená, že je budete muset zpracovat sami.

Typy ověřování

Azure Communication Services má tři typy ověřování, které se používají pro různé účely:

  • ověřování přístupovým klíčem pro operace sms, síťového procházení, automatizace volání, identity a přístupového tokenu. Ověřování pomocí přístupového klíče je vhodné pro aplikace spuštěné v prostředí důvěryhodné služby.
  • ověřování Azure RBAC řídit přístup k prostředkům pomocí Azure RBAC přiřazením rolí Azure.
  • ověřování přístupového tokenu uživatele pro chat a volání. Přístupové tokeny uživatelů umožňují klientským aplikacím ověřovat se přímo ve službě Azure Communication Services. Tyto tokeny se generují ve službě zřizování tokenů na straně serveru, kterou vytvoříte. Pak jsou poskytovány klientským zařízením, která používají token k inicializaci klientských knihoven chatu a volání.

Ověřování přístupového klíče

Ověřování pomocí přístupového klíče se používá v případech, kdy aplikace koncového uživatele nevytáčí požadavky. Tyto požadavky spusťte v rámci důvěryhodného prostředí služby.

V této metodě ověřování jsou požadavky podepsány pomocí klienta generovaného kód ověřování zpráv založený na hodnotě hash (HMAC).

Než začnete, ujistěte se, že máte:

  • Přístupový klíč ke službě Azure Communication Services
  • Koncový bod služby Azure Communication Service
  • Cesta URL a příkaz HTTP, který voláte
  • Vývojové prostředí, které může generovat hodnoty hash SHA256 a provádět operace Base64.

Jakmile tyto položky máte, můžete pokračovat v podepisování vaší žádosti.

Podepsání požadavku HTTP

  1. Ujistěte se, že máte k dispozici následující hodnoty:

    • Metoda požadavku HTTP (například GET nebo PUT)
    • Časové razítko koordinovaného univerzálního času (UTC) pro požadavek podle standardu RFC1123
    • Hostitel požadavku HTTP (komponenta identifikátoru URI <authority>, jak je uvedeno v RFC2396)
    • Hodnota hash těla požadavku HTTP pomocí algoritmu SHA256
    • Cesta k požadavku HTTP (<path> a <query> zřetězené komponentami ?, jak je uvedeno v RFC2396)
    Verb=<http_method>
    Timestamp=<current_datetime>
    Host=<uri_authority>
    ContentHash=SHA256(<request_body>)
    URIPathAndQuery=<uri_path>?<uri_query>
    
  2. Vytvořte řetězec, který se má podepsat zřetězením hodnot následujícím způsobem:

    StringToSign=Verb + "\n"
    URIPathAndQuery + "\n"
    Timestamp + ";" + Host + ";" + ContentHash
    
  3. Vygenerujte podpis HMAC-256 řetězce kódovaného UTF-8, který jste vytvořili v předchozím kroku. V dalším kroku zakódujte výsledky jako Base64. Musíte také dekódovat přístupový klíč base64. Použijte následující formát (zobrazený jako pseudokód):

    Signature=Base64(HMAC-SHA256(UTF8(StringToSign), Base64.decode(<your_access_key>)))
    
  4. Do požadavku přidejte následující hlavičky:

    x-ms-date: <Timestamp>
    x-ms-content-sha256: <ContentHash>
    host: <URIPathAndQuery>   
    Authorization: "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=<Signature>"
    

Po přijetí požadavku služba ověří podpis a časové razítko, aby se hlídaly před určitými útoky na zabezpečení, včetně přehrání útoků. Pokud se chcete dozvědět, jak podepsat požadavek HTTP v různých programovacích jazycích, navštivte kurz podepisování hlaviček HMAC.

Ověřování Azure RBAC

Platforma Azure poskytuje přístup na základě role (Azure RBAC) pro řízení přístupu k prostředkům. Objekt zabezpečení Azure RBAC představuje uživatele, skupinu, instanční objekt nebo spravovanou identitu, která požaduje přístup k prostředkům Azure.

Ověřování Microsoft Entra poskytuje vynikající zabezpečení a snadné použití oproti jiným možnostem autorizace. Pomocí spravované identity se například nemusíte ukládat přístupový klíč účtu v kódu stejně jako při ověřování pomocí přístupového klíče. I když můžete dál používat ověřování pomocí přístupového klíče s aplikacemi komunikačních služeb, Microsoft doporučuje přejít na Microsoft Entra ID, pokud je to možné.

Azure RBAC zahrnuje mnoho předdefinovaných rolí, které je možné přiřadit v různých oborech a umožňuje vytvářet vlastní role. Zahrnuje více než 100 předdefinovaných rolí. Existuje pět základních rolí Azure – Vlastník, Přispěvatel, Čtenář, Správce řízení přístupu na základě rolí a Správce uživatelských přístupů. Další informace o těchto rolích najdete v kurzu řízení přístupu na základě role.

Oprávnění podporovaná službou Azure Communication Services (ACS)

Služba ACS nabízí konkrétní oprávnění (acs.read a acs.write), která umožňují řízený přístup k různým prostředkům.

  • acs.read oprávnění: uděluje možnost načíst nebo zobrazit data.
  • acs.write oprávnění: Povoluje úpravy nebo vytváření dat v rámci těchto stejných typů prostředků.

Služba ACS navíc podporuje oprávnění související s e-mailem:

  • acs.email.read: Umožňuje čtení nebo přístup k datům služeb souvisejících s e-mailem.
  • acs.email.write: umožňuje úpravy nebo vytváření dat služeb souvisejících s e-mailem.

Tato oprávnění jsou zásadní pro zajištění podrobného řízení přístupu a zabezpečení prostředků služby ACS.

Získání dalšího tokenu RBAC

K získání tokenu pro službu ACS můžete použít knihovnu MSAL (Microsoft Authentication Library). Tady je podrobný průvodce:

  1. Registrace aplikace v Azure AD: Ujistěte se, že je vaše aplikace zaregistrovaná v Azure AD.
  2. Instalace knihovny MSAL: Nainstalujte knihovnu MSAL pro vaši platformu (např. Microsoft.Identity.Client pro .NET).
  3. Konfigurace KNIHOVNY MSAL: Nastavení knihovny MSAL pomocí ID klienta, ID tenanta a tajného klíče klienta vaší aplikace
  4. Získání tokenu: Použijte MSAL k získání tokenu s nezbytným oborem (https://communication.azure.com/.default).

Podrobné pokyny a příklady kódu najdete v oficiální dokumentaci MSAL a dokumentaci k přístupovým tokenům .

Příklad požadavku HTTP k vydání přístupového tokenu služby ACS

Prosba:

POST https://my-resource.communication.azure.com/identities/{identity}/:issueAccessToken?api-version=2023-10-01
Authorization: Bearer <your-access-token>
Content-Type: application/json
{
  "scopes": [
    "chat",
    "voip"
  ]
}

Odpověď:

{
  "token": "token",
  "expiresOn": "2023-10-10T21:39:39.3244584+00:00"
}

Ověřování přístupového tokenu uživatele

Přístupové tokeny uživatelů umožňují klientským aplikacím ověřovat se přímo ve službě Azure Communication Services jako konkrétní uživatel nebo identita.

Generování / získání přístupových tokenů uživatele

Přístupové tokeny uživatele generujete v rámci důvěryhodného prostředí. Nejjednodušší způsob, jak je generovat pomocí sady SDK identity služby Azure Communication Services Další informace najdete v tématu vytváření a správa přístupových tokenů uživatelů.

Použití přístupového tokenu uživatele v požadavku

Jakmile budete mít vhodný přístupový token uživatele, můžete ho zahrnout do vašich požadavků na rozhraní REST API služby Azure Communication Services. K tomu je nutné jej zadat v hlavičce Authorization pomocí schématu ověřování BEARER HTTP Authorization: Bearer <token>.

Viz také

Další informace o ověřování azure Communication Services najdete také tady: