Authentication

Při volání REST se ke správnému ověření vyžaduje několik kroků. Azure Communication Services sady SDK tento proces zpracují 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í, používají se k různým účelům:

  • Ověřování pomocí přístupových klíčů pro operace SMS, síťového procházení, automatizace volání, identity a přístupových tokenů. Ověřování pomocí přístupového klíče je vhodné pro aplikace spuštěné v prostředí důvěryhodných služeb.
  • Azure AD ověřování Platí podobně jako ověřování přístupových klíčů. Řízení přístupu je podrobnější a využívá Azure RBAC.
  • Ověřování uživatelským přístupovým tokenem pro chat a volání. Přístupové tokeny uživatelů umožňují klientským aplikacím ověřovat se přímo v Azure Communication Services. Tyto tokeny se generují ve službě zřizování tokenů na straně serveru, kterou vytvoříte. Pak se předají klientským zařízením, která pomocí tokenu inicializují klientské knihovny chatu a volání.

Ověřování přístupových klíčů

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

V této metodě ověřování se požadavky podepisují pomocí ověřovacího kódu zpráv na základě hodnoty hash vygenerovaného klientem (HMAC).

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

  • Přístupový klíč 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 HMAT, hodnoty hash SHA256 a provádět operace Base64.

Jakmile budete mít tyto položky, můžete pokračovat v podepisování žá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 nebo GETPUT)
    • Časové razítko koordinovaného univerzálního času (UTC) pro požadavek podle standardu RFC1123
    • Hostitel požadavku HTTP (komponenta <authority> URI podle specifikace RFC2396)
    • Tělo požadavku HTTP s hodnotou hash pomocí algoritmu SHA256
    • Cesta požadavku HTTP ( <path> a <query> zřetězená podle ? komponent podle specifikace RFC2396)
    Verb=<http_method>
    Timestamp=<current_datetime>
    Host=<uri_authority>
    ContentHash=SHA256(<request_body>)
    URIPathAndQuery=<uri_path>?<uri_query>
    
  2. Sestavte řetězec, který se má podepsat, pomocí 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 s kódováním UTF-8, který jste vytvořili v předchozím kroku. Dále 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í žádosti služba ověří podpis a časové razítko, aby byla chráněna před určitými útoky na zabezpečení, včetně útoků přehrání. Informace o tom, jak podepsat požadavek HTTP v různých programovacích jazycích, najdete v kurzu podepisování hlaviček HMAC.

Ověřování Azure AD

Azure AD ověřování je možné použít, pokud je žadatel objektem zabezpečení Azure RBAC. Objekt zabezpečení může být uživatel, skupina, instanční objekt nebo spravovaná identita.

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

  • Váš instanční objekt Azure
  • Cesta URL a příkaz HTTP, které voláte

Postup získání instančního objektu najdete v tématu Vytvoření instanční aplikace Azure Active Directory z Azure CLI.

Po vytvoření instančního objektu můžete použít jeden z jeho tajných kódů pro ověřování pro přístup ke komunikačním službám pro vytváření uživatelů, vydávání přístupových tokenů uživatelů nebo odesílání zpráv SMS.

Použití přihlašovacích údajů objektu zabezpečení v požadavku

Jakmile budete mít ID a tajný kód objektu zabezpečení, můžete je použít v požadavcích na Azure Communication Services rozhraní REST API tak, že je zadáte do hlavičky Autorizace.

authorizationHeaderValue = convertToBase64String(<security principal ID> + ":" + <secret of the security principal>)
Authorization="BASIC <authorizationHeaderValue>"

Ověřování uživatelských přístupových tokenů

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

Generování nebo 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šším způsobem je vygenerovat pomocí sady AZURE COMMUNICATION SERVICES Identity SDK. 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 svých požadavků na Azure Communication Services rozhraní REST API. Chcete-li to provést, musíte ho Authorization zadat v hlavičce pomocí schématu Authorization: Bearer <token>ověřování HTTP nosné adresy .

Viz také

Další informace o ověřování Azure Communication Services najdete také v tématu: