Megosztás a következőn keresztül:


Felhasználói hitelesítés

A KÖVETKEZŐKRE VONATKOZIK: SDK v4

A robotnak időnként biztonságos online erőforrásokhoz kell hozzáférnie a felhasználó nevében, például ellenőriznie kell az e-maileket, ellenőriznie kell a repülési állapotot, vagy megrendelést kell leadnia. A felhasználónak engedélyeznie kell a robotot, hogy ezt a saját nevében tegye meg, és a robot engedélyezéséhez a felhasználónak hitelesítenie kell a személyazonosságát. Az OAuth a felhasználó hitelesítésére és a robot engedélyezésére szolgál. Lásd még a hitelesítési típusokat.

Ha frissíteni szeretné az OAuth-tudást, tekintse meg a következőket:

Felhasználói hitelesítés egy beszélgetésben

Ha bizonyos műveleteket szeretne végrehajtani egy felhasználó nevében, például az e-mailek ellenőrzését, a naptárra való hivatkozást, a repülési állapot ellenőrzését vagy a megrendelést, a robotnak külső szolgáltatást kell hívnia, például a Microsoft Graphot, a GitHubot vagy a vállalat REST szolgáltatását. Minden külső szolgáltatás biztosítja ezeket a hívásokat. A kérések kiadásának gyakori módja egy olyan felhasználói jogkivonat használata, amely egyedileg azonosítja a felhasználót az adott külső szolgáltatásban (más néven JSON-webjogkivonatként (JWT).

Egy külső szolgáltatás hívásának biztonságossá tételéhez a robotnak meg kell kérnie a felhasználót, hogy jelentkezzen be, hogy megszerezhesse a felhasználó jogkivonatát a szolgáltatáshoz. Számos szolgáltatás támogatja a jogkivonatok lekérését az OAuth vagy az OAuth2 protokollon keresztül.

Az Azure AI Bot Service speciális bejelentkezési kártyákat és szolgáltatásokat biztosít, amelyek az OAuth protokollal működnek, és kezelik a jogkivonat életciklusát. A robotok ezeket a funkciókat használhatják a felhasználói jogkivonatok beszerzéséhez.

  • A robotkonfiguráció részeként egy OAuth-kapcsolat regisztrálva van az Azure AI Bot Service-erőforrásban az Azure-ban.

    A kapcsolat információkat tartalmaz a használni kívánt identitásszolgáltatóról , valamint egy érvényes OAuth-ügyfélazonosítót és titkos kulcsot, az engedélyezendő OAuth-hatóköröket és az identitásszolgáltató által igényelt egyéb kapcsolati metaadatokat.

  • A robot kódjában az OAuth-kapcsolat segít bejelentkezni a felhasználóba, és lekérni a felhasználói jogkivonatot.

Az alábbi képen a hitelesítési folyamat elemei láthatók.

Diagram illustrating the relationship between authentication components in Azure AI Bot Service.

Tudnivalók a Bot Framework Token Service-ről

A Bot Framework Token szolgáltatás a következőért felelős:

  • Az OAuth protokoll használatának megkönnyítése számos külső szolgáltatással.
  • Jogkivonatok biztonságos tárolása egy adott robot, csatorna, beszélgetés és felhasználó számára.
  • Felhasználói jogkivonatok beszerzése.

    Tipp.

    Ha a robot lejárt felhasználói jogkivonattal rendelkezik, a robotnak a következőnek kell lennie:

    • A felhasználó kijelentkeztetése
    • A bejelentkezési folyamat újbóli kezdeményezése

Például egy robotnak, amely képes ellenőrizni egy felhasználó legutóbbi e-mailjeit a Microsoft Graph API használatával, egy identitásszolgáltató felhasználói jogkivonatát igényli, ebben az esetben a Microsoft Entra-azonosítót. Tervezéskor a robot fejlesztője az alábbi két fontos lépést hajtja végre:

  1. Regisztrál egy Microsoft Entra ID-alkalmazást, egy identitásszolgáltatót a Bot Framework Token Service-ben az Azure Portalon keresztül.
  2. OAuth-kapcsolatot konfigurál (például GraphConnection) a robothoz.

Az alábbi képen a felhasználó robottal való interakciójának idősora látható, amikor e-mail-kérelmet küld a Microsoft Graph szolgáltatással.

Sequence diagram outlining the steps for a bot to send an email on behalf of a user.

  1. A felhasználó e-mail-kérelmet küld a robotnak.

  2. Az üzenettel kapcsolatos tevékenységet a rendszer elküldi a felhasználótól a Bot Framework csatornaszolgáltatásnak. A csatornaszolgáltatás gondoskodik arról, hogy a userid tevékenységen belüli mező be legyen állítva, és az üzenetet elküldje a robotnak.

    Megjegyzés:

    A felhasználói azonosítók csatornaspecifikusak, például a felhasználó Facebook-azonosítója vagy SMS-telefonszáma.

  3. A robot kérést intéz a Bot Framework Token Service-hez, és megkérdezi, hogy rendelkezik-e már jogkivonattal az OAuth-kapcsolat GraphConnectionUserId azonosítójával.

  4. Mivel ez az első alkalom, hogy ez a felhasználó interakcióba lép a robottal, a Bot Framework Token Service még nem rendelkezik jogkivonattal ehhez a felhasználóhoz, és egy NotFound-eredményt ad vissza a robotnak.

    Megjegyzés:

    Ha a jogkivonat megtalálható, a rendszer kihagyja a hitelesítési lépéseket, és a robot a tárolt jogkivonat használatával kezdeményezheti az e-mail-kérést.

  5. A robot létrehoz egy OAuthCardot a kapcsolat nevével GraphConnection , és válaszol a felhasználónak, aki a kártya használatával történő bejelentkezést kéri.

  6. A tevékenység áthalad a Bot Framework Channel szolgáltatáson, amely meghívja a Bot Framework Token Service-t, hogy létrehozhasson egy érvényes OAuth bejelentkezési URL-címet ehhez a kéréshez. Ez a bejelentkezési URL-cím hozzáadódik az OAuthCardhoz, és a rendszer visszaadja a kártyát a felhasználónak.

  7. A felhasználó az OAuthCard bejelentkezési gombjára kattintva megjelenik egy bejelentkezésre vonatkozó üzenettel.

  8. Amikor a felhasználó a bejelentkezési gombra kattint, a csatornaszolgáltatás megnyitja a webböngészőt, és meghívja a külső szolgáltatást a bejelentkezési oldal betöltéséhez.

  9. A felhasználó bejelentkezik erre a lapra a külső szolgáltatáshoz. Ezután a külső szolgáltatás befejezi az OAuth protokoll cseréjét a Bot Framework tokenszolgáltatással, így a külső szolgáltatás elküldi a Bot Framework tokenszolgáltatást a felhasználói jogkivonatnak. A Bot Framework Token Service biztonságosan tárolja ezt a jogkivonatot, és ezzel a jogkivonattal egy tevékenységet küld a robotnak.

  10. A robot megkapja a tevékenységet a jogkivonattal, és képes arra, hogy hívásokat kezdeményezhessen az MS Graph API-n.

A bejelentkezési URL-cím védelme

Ha a Bot Framework megkönnyíti a felhasználói bejelentkezést, fontos szempont a bejelentkezési URL-cím védelme. Amikor egy felhasználó bejelentkezési URL-címmel jelenik meg, ez az URL-cím egy adott beszélgetési azonosítóhoz és a robot felhasználói azonosítójához van társítva. Ne ossza meg ezt az URL-címet – ez a helytelen bejelentkezést okozhatja egy adott robotbeszélgetéshez. A megosztott bejelentkezési URL-címet használó biztonsági támadások elkerülése érdekében győződjön meg arról, hogy a bejelentkezési URL-címre kattintó gép és személy az a személy, aki a beszélgetési ablak tulajdonosa .

Egyes csatornák, például a Microsoft Teams, a Direct Line és a WebChat ezt anélkül tudják megtenni, hogy a felhasználó észrevenned. A WebChat például munkamenet-cookie-kat használ annak biztosítására, hogy a bejelentkezési folyamat ugyanabban a böngészőben történjen, mint a WebChat-beszélgetés. Más csatornák esetében azonban a felhasználó gyakran 6 jegyű mágikus kóddal jelenik meg. Ez hasonló a beépített többtényezős hitelesítéshez, mivel a Bot Framework Token Service csak akkor fogja kiadni a jogkivonatot a robotnak, ha a felhasználó befejezi a végső hitelesítést, és a 6 jegyű kód beírásával bizonyítja, hogy a bejelentkezett személy hozzáfér a csevegési élményhez.

Fontos

Vegye figyelembe ezeket a fontos biztonsági szempontokat. További információt ebben a blogbejegyzésben talál: A WebChat használata az Azure AI Bot Service-hitelesítéssel.

Következő lépések

Most, hogy ismeri a felhasználói hitelesítést, nézzük meg, hogyan alkalmazhatja ezt a robotra.

Kapcsolódó információk