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:
- A jó OAuth-áttekintés könnyebben követhető, mint a hivatalos specifikáció
- OAuth-specifikáció
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.
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:
- Regisztrál egy Microsoft Entra ID-alkalmazást, egy identitásszolgáltatót a Bot Framework Token Service-ben az Azure Portalon keresztül.
- 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.
A felhasználó e-mail-kérelmet küld a robotnak.
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.
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
GraphConnection
UserId azonosítójával.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.
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.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.
A felhasználó az OAuthCard bejelentkezési gombjára kattintva megjelenik egy bejelentkezésre vonatkozó üzenettel.
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.
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.
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.