Hitelesítés

REST-hívások indításakor több lépésre van szükség a megfelelő hitelesítéshez. Az Azure Communication Services SDK-k kezelik ezt a folyamatot, de a kérések manuális kérése azt jelenti, hogy saját maga kell kezelnie.

A hitelesítés típusai

Az Azure Communication Services háromféle hitelesítést használ, amelyeket különböző célokra használnak:

  • hozzáférésikulcs-hitelesítési SMS-, hálózati bejárási, hívásautomatizálási, identitás- és hozzáférési jogkivonat-műveletekhez. Az Access Key-hitelesítés megbízható szolgáltatáskörnyezetben futó alkalmazásokhoz alkalmas.
  • Azure RBAC-hitelesítés az erőforrásokhoz való hozzáférés szabályozásához az Azure RBAC azure-szerepkörök hozzárendelésével történő használatával.
  • felhasználói hozzáférési jogkivonat-hitelesítési csevegéshez és híváshoz. A felhasználói hozzáférési jogkivonatokkal az ügyfélalkalmazások közvetlenül az Azure Communication Servicesen keresztül hitelesíthetők. Ezek a jogkivonatok egy ön által létrehozott kiszolgálóoldali jogkivonat-kiépítési szolgáltatásban jönnek létre. Ezután azok az ügyféleszközök is megkapják őket, amelyek a jogkivonatot használják a csevegési és hívási ügyfélkódtárak inicializálásához.

Hozzáférési kulcs hitelesítése

A hozzáférési kulcs hitelesítése akkor használatos, ha a végfelhasználói alkalmazás nem küld kéréseket. Futtassa ezeket a kéréseket egy megbízható szolgáltatáskörnyezetben.

Ebben a hitelesítési módszerben a kérések egy ügyfél által létrehozott kivonatalapú üzenethitelesítési kód (HMAC)használatával vannak aláírva.

Az első lépések előtt győződjön meg arról, hogy:

  • Az Azure Communication Services hozzáférési kulcsa
  • Az Azure Communication Service-végpont
  • A meghívni kívánt URL-cím elérési útja és HTTP-parancsa
  • Egy fejlesztési környezet, amely képes HMACs-k, SHA256-kivonatok létrehozására és Base64-műveletek végrehajtására.

Miután megkapta ezeket az elemeket, folytathatja a kérés aláírását.

HTTP-kérés aláírása

  1. Győződjön meg arról, hogy a következő értékek érhetők el:

    • HTTP-kérési módszer (például GET vagy PUT)
    • A kérelem koordinált univerzális időbélyege (UTC) a RFC1123 szabványnak megfelelően
    • HTTP-kérés gazdagépe (az <authority> URI-összetevő a RFC2396 megadottak szerint)
    • AZ SHA256 algoritmussal kivonatolt HTTP-kérés törzse
    • HTTP-kérelem elérési útja (<path> és <query>?-összetevők összefűzve a RFC2396)
    Verb=<http_method>
    Timestamp=<current_datetime>
    Host=<uri_authority>
    ContentHash=SHA256(<request_body>)
    URIPathAndQuery=<uri_path>?<uri_query>
    
  2. Hozza létre az aláírandó sztringet az értékek összefűzésével a következő módon:

    StringToSign=Verb + "\n"
    URIPathAndQuery + "\n"
    Timestamp + ";" + Host + ";" + ContentHash
    
  3. Hozzon létre egy HMAC-256 aláírást az előző lépésben létrehozott UTF-8 kódolt sztringről. Ezután az eredményeket Base64-ként kódolhatja. A hozzáférési kulcsot a Base64-nek is vissza kell kódolnia. Használja a következő formátumot (pszeudokódként jelenik meg):

    Signature=Base64(HMAC-SHA256(UTF8(StringToSign), Base64.decode(<your_access_key>)))
    
  4. Adja hozzá a következő fejléceket a kérelemhez:

    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>"
    

A kérés beérkezésekor a szolgáltatás ellenőrzi az aláírást és az időbélyeget, hogy védelmet nyújtson bizonyos biztonsági támadások ellen, beleértve a visszajátszási támadásokat is. Ha meg szeretné tudni, hogyan írhat alá HTTP-kérést különböző programozási nyelveken, látogasson el a HMAC fejléc-aláírási oktatóanyagára.

Azure RBAC-hitelesítés

Az Azure platform szerepköralapú hozzáférést (Azure RBAC) biztosít az erőforrásokhoz való hozzáférés szabályozásához. Az Azure RBAC biztonsági tag egy felhasználót, csoportot, szolgáltatásnevet vagy felügyelt identitást jelöl, amely hozzáférést kér az Azure-erőforrásokhoz.

A Microsoft Entra-hitelesítés kiváló biztonságot és egyszerű használatot biztosít más engedélyezési lehetőségekhez képest. A felügyelt identitás használatával például nem kell a kódban tárolnia a fiók hozzáférési kulcsát, ahogy az Access Key-hitelesítés esetében is. Bár továbbra is használhatja az Access Key-hitelesítést kommunikációs szolgáltatási alkalmazásokkal, a Microsoft azt javasolja, hogy lehetőség szerint lépjen a Microsoft Entra-azonosítóra.

Az Azure RBAC számos beépített szerepkört tartalmaz, különböző hatókörökhöz rendelhető hozzá, és lehetővé teszi saját egyéni szerepkörök létrehozását. Több mint 100 beépített szerepkört tartalmaz. Öt alapvető Azure-szerepkör létezik: tulajdonos, közreműködő, olvasó, szerepköralapú hozzáférés-vezérlési rendszergazda és felhasználói hozzáférés-rendszergazda. Ezekről a szerepkörökről további információt a szerepköralapú hozzáférés-vezérlési oktatóanyag.

Az Azure Communication Services (ACS) által támogatott engedélyek

Az ACS adott engedélyeket (acs.read és acs.write) kínál, amelyek lehetővé teszik a különböző erőforrásokhoz való szabályozott hozzáférést.

  • acs.read engedély: lehetővé teszi az adatok lekérését vagy megtekintését.
  • acs.write engedély: lehetővé teszi az adatok módosítását vagy létrehozását ugyanazon erőforrástípusokon belül.

Emellett az ACS támogatja az e-mailekkel kapcsolatos engedélyeket:

  • acs.email.read: lehetővé teszi az e-mailekkel kapcsolatos szolgáltatások adatainak olvasását vagy elérését.
  • acs.email.write: lehetővé teszi az e-mail-szolgáltatások adatainak módosítását vagy létrehozását.

Ezek az engedélyek kulcsfontosságúak az ACS-erőforrások részletes hozzáférés-vezérlésének és biztonságának biztosításához.

További RBAC-jogkivonat beszerzése

Az ACS-jogkivonat beszerzéséhez használhatja az MSAL-t (Microsoft Authentication Library). Íme egy részletes útmutató:

  1. Alkalmazás regisztrálása az Azure AD-ben: Győződjön meg arról, hogy az alkalmazás regisztrálva van az Azure AD-ben.
  2. Az MSAL telepítése: Telepítse a platform MSAL-kódtárát (például a .NET-hez készült Microsoft.Identity.Client).
  3. MSAL konfigurálása: Az MSAL beállítása az alkalmazás ügyfélazonosítójával, bérlőazonosítójával és ügyféltitkával.
  4. Jogkivonat beszerzése: A szükséges hatókörrel (https://communication.azure.com/.default) rendelkező jogkivonat beszerzése az MSAL használatával.

Részletes útmutatásért és példakódért tekintse meg hivatalos MSAL-dokumentációt és Access Token dokumentációját.

Példa AZ ACS hozzáférési jogkivonat kiadására irányuló HTTP-kérésre

Kérés:

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"
  ]
}

Válasz:

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

Felhasználói hozzáférési jogkivonat hitelesítése

A felhasználói hozzáférési jogkivonatokkal az ügyfélalkalmazások közvetlenül az Azure Communication Servicesen keresztül hitelesíthetők egy adott felhasználóként vagy identitásként.

Felhasználói hozzáférési jogkivonatok létrehozása/beszerzése

A felhasználói hozzáférési jogkivonatokat ön hozza létre egy megbízható környezetben. A legegyszerűbben az Azure Communication Services Identity SDK használatával hozhatja létre őket. További információ: felhasználói hozzáférési jogkivonatok létrehozása és kezelése.

Felhasználói hozzáférési jogkivonat használata egy kérelemben

Miután rendelkezik egy megfelelő felhasználói hozzáférési jogkivonattal, belefoglalhatja azt az Azure Communication Services REST API-jának kéréseibe. Ehhez meg kell adnia a Authorization fejlécben a Tulajdonos HTTP hitelesítési sémájának Authorization: Bearer <token>használatával.

Lásd még:

Az Azure Communication Services-hitelesítésről az alábbiakat is áttekintheti: