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
Ujistěte se, že máte k dispozici následující hodnoty:
- Metoda požadavku HTTP (například nebo
GET
PUT
) - Č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>
- Metoda požadavku HTTP (například nebo
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
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>)))
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:
- Podepsání požadavku HTTP
- Koncepční dokumentace k ověřování – Obsahuje informace o tom, jak používat sady SDK k ověřování v rozhraních REST API.
- Vytvoření služby tokenů přístupu uživatele – kurz Azure Communication Services, který ukazuje, jak vytvořit důvěryhodnou ověřovací službu pro generování přístupových tokenů uživatelů pomocí Azure Functions.