Ověřování uživatele
PLATÍ PRO: SDK v4
Někdy musí robot přistupovat k zabezpečeným online prostředkům jménem uživatele, jako je například kontrola e-mailu, kontrola stavu letu nebo zadání objednávky. Uživatel musí robota autorizovat, aby to udělal za něj, a aby mohl robot autorizovat, musí ověřit svoji identitu. OAuth se používá k ověření uživatele a autorizaci robota. Viz také Typy ověřování.
Pokud chcete aktualizovat znalosti OAuth, projděte si následující informace:
- Lepší přehled OAuth je jednodušší než formální specifikace
- Specifikace OAuth
Ověřování uživatelů v konverzaci
Pokud chcete provádět určité operace jménem uživatele, jako je kontrola e-mailu, odkazování na kalendář, kontrola stavu letu nebo zadání objednávky, robot bude muset volat externí službu, jako je Microsoft Graph, GitHub nebo služba REST společnosti. Každá externí služba má způsob zabezpečení těchto volání. Běžným způsobem, jak tyto požadavky vydat, je použít token uživatele, který jednoznačně identifikuje uživatele v této externí službě (někdy označovaný jako webový token JSON (JWT).
Aby bylo možné zabezpečit volání externí služby, musí robot požádat uživatele, aby se přihlásil, aby mohl získat token uživatele pro tuto službu. Mnoho služeb podporuje načítání tokenů prostřednictvím protokolu OAuth nebo OAuth2 .
Azure AI Bot Service poskytuje specializované přihlašovací karty a služby, které pracují s protokolem OAuth a spravují životní cyklus tokenů. Robot může tyto funkce použít k získání tokenu uživatele.
V rámci konfigurace robota se v rámci prostředku Azure AI Bot Service v Azure zaregistruje připojení OAuth.
Toto připojení obsahuje informace o zprostředkovateli identity, který se má použít, spolu s platným ID klienta OAuth a tajným kódem, obory OAuth pro povolení a všechna další metadata připojení vyžadovaná tímto zprostředkovatelem identity.
V kódu robota se připojení OAuth používá k usnadnění přihlášení uživatele a získání tokenu uživatele.
Následující obrázek znázorňuje prvky zapojené do procesu ověřování.
Informace o službě tokenů služby Bot Framework
Služba tokenů služby Bot Framework zodpovídá za:
- Usnadnění používání protokolu OAuth s širokou škálou externích služeb.
- Bezpečné ukládání tokenů pro konkrétního robota, kanál, konverzaci a uživatele
- Získání tokenů uživatele
Tip
Pokud má robot token uživatele s vypršenou platností, měl by robot:
- Odhlásit uživatele
- Znovu inicializovat tok přihlášení
Například robot, který může zkontrolovat nedávné e-maily uživatele pomocí rozhraní Microsoft Graph API, vyžaduje token uživatele od zprostředkovatele identity v tomto případě Microsoft Entra ID. Vývojář robota v době návrhu provede tyto dva důležité kroky:
- Zaregistruje aplikaci Microsoft Entra ID, zprostředkovatele identity, ve službě Bot Framework Token Service prostřednictvím webu Azure Portal.
- Nakonfiguruje pro robota připojení OAuth (pojmenované například
GraphConnection
).
Následující obrázek znázorňuje časovou sekvenci interakce uživatele s robotem, když se odešle e-mailová žádost pomocí služby Microsoft Graph.
Uživatel odešle robotovi e-mailovou žádost.
Aktivita s touto zprávou se odešle od uživatele do služby kanálu Bot Framework. Služba kanálu zajišťuje, že
userid
je pole v rámci aktivity nastavené a zpráva se odešle robotovi.Poznámka:
ID uživatele je specifické pro konkrétní kanál, například ID facebooku uživatele nebo jeho telefonní číslo SMS.
Robot odešle žádost službě Token Service služby Bot Framework s dotazem, jestli už má token pro ID uživatele pro připojení
GraphConnection
OAuth .Vzhledem k tomu, že tento uživatel poprvé pracoval s robotem, služba Token Service služby Bot Framework ještě nemá token pro tohoto uživatele a vrátí výsledek Nenalezeno robotovi.
Poznámka:
Pokud se token najde, kroky ověřování se přeskočí a robot může vytvořit e-mailovou žádost pomocí uloženého tokenu.
Robot vytvoří OAuthCard s názvem
GraphConnection
připojení a odpoví uživateli, který žádá o přihlášení pomocí této karty.Aktivita prochází službou Bot Framework Channel Service, která volá službu Token Service služby Bot Framework k vytvoření platné přihlašovací adresy URL OAuth pro tento požadavek. Tato přihlašovací adresa URL se přidá do OAuthCard a karta se vrátí uživateli.
Uživateli se zobrazí zpráva pro přihlášení kliknutím na tlačítko přihlášení OAuthCard.
Když uživatel klikne na tlačítko pro přihlášení, služba kanálu otevře webový prohlížeč a zavolá externí službě, aby načetla přihlašovací stránku.
Uživatel se přihlásí k této stránce pro externí službu. Externí služba pak dokončí výměnu protokolu OAuth se službou Token Service služby Bot Framework, což vede k tomu, že externí služba odesílá token služby Bot Framework Token Service token uživatele. Služba Token Service služby Bot Framework bezpečně uloží tento token a odešle do robota aktivitu s tímto tokenem.
Robot obdrží aktivitu s tokenem a může ji použít k volání rozhraní MS Graph API.
Zabezpečení přihlašovací adresy URL
Důležitým aspektem, kdy bot Framework usnadňuje přihlášení uživatele, je způsob zabezpečení přihlašovací adresy URL. Když se uživateli zobrazí přihlašovací adresa URL, je tato adresa URL přidružená ke konkrétnímu ID konverzace a ID uživatele pro tohoto robota. Tuto adresu URL nesdílejte – mohlo by dojít k nesprávnému přihlášení pro konkrétní konverzaci robota. Pokud chcete zmírnit útoky na zabezpečení, které používají sdílenou přihlašovací adresu URL, ujistěte se, že počítač a osoba, která klikne na přihlašovací adresu URL, je osoba, která vlastní okno konverzace.
Některé kanály, jako jsou Microsoft Teams, Direct Line a WebChat, to můžou udělat bez toho, aby uživatel noticing. WebChat například používá soubory cookie relace, aby se zajistilo, že tok přihlášení proběhl ve stejném prohlížeči jako konverzace WebChatu. U jiných kanálů se ale uživatel často prezentuje se 6místným kódem magie. Podobá se integrovanému vícefaktorovému ověřování, protože služba Token Service služby Bot Framework neuvolní token robotovi, pokud uživatel nedokončí konečné ověření a prokáže, že osoba, která se přihlásila, má přístup k chatovacímu prostředí zadáním 6místného kódu.
Důležité
Mějte prosím na paměti tyto důležité aspekty zabezpečení. Další informace najdete v tomto blogovém příspěvku: Použití WebChatu s ověřováním azure AI Bot Service.
Další kroky
Teď, když víte o ověřování uživatelů, se podíváme na to, jak to u robota použít.