Řešení potíží s ověřováním ve službě Bot Framework
PLATÍ PRO: SDK v4
Tato příručka vám pomůže vyřešit problémy s ověřováním robota vyhodnocením řady scénářů, abyste zjistili, kde problém existuje.
Poznámka:
Abyste mohli dokončit všechny kroky v této příručce, budete si muset stáhnout a použít Bot Framework Emulator a musíte mít přístup k nastavení registrace robota na webu Azure Portal.
ID a heslo aplikace
Zabezpečení robota se konfiguruje podle ID aplikace Microsoftu a hesla aplikace Microsoftu, které získáte při registraci robota v bot Frameworku. Tyto hodnoty se obvykle zadají v konfiguračním souboru robota a používají se k načtení přístupových tokenů ze služby účtu Microsoft.
Pokud jste to ještě neudělali, nasaďte robota do Azure , abyste získali ID aplikace Microsoftu a heslo aplikace Microsoftu, které může použít k ověřování.
Poznámka:
Pokud chcete najít APPID robota a AppPassword pro již nasazeného robota, přečtěte si téma MicrosoftAppID a MicrosoftAppPassword.
Krok 1: Zakázání zabezpečení a testování na místním hostiteli
V tomto kroku ověříte, že je robot přístupný a funkční na místním hostiteli, když je zakázané zabezpečení.
Upozorňující
Zakázání zabezpečení robota může umožnit neznámým útočníkům zosobnit uživatele. Následující postup implementujte pouze v případě, že pracujete v chráněném prostředí ladění.
Zakázání zabezpečení
Pokud chcete zakázat zabezpečení robota, upravte jeho nastavení konfigurace a odeberte hodnoty PRO ID a heslo aplikace.
Pokud používáte sadu SDK služby Bot Framework pro .NET, přidejte nebo upravte nastavení v souboru appsettings.json :
"MicrosoftAppId": "",
"MicrosoftAppPassword": ""
Otestování robota na místním hostiteli
Dále otestujte robota na místním hostiteli pomocí bot Framework Emulatoru.
- Spusťte robota na místním hostiteli.
- Spusťte bot Framework Emulator.
- Připojte se k robotovi pomocí emulátoru.
- Zadejte
http://localhost:port-number/api/messages
do adresního řádku emulátoru, kde číslo portu odpovídá číslu portu uvedenému v prohlížeči, na kterém je vaše aplikace spuštěná. - Ujistěte se, že pole Microsoft App ID a Heslo aplikace Microsoftu jsou prázdná.
- Klepněte na tlačítko Připojit.
- Zadejte
- Pokud chcete otestovat připojení k robotovi, zadejte do emulátoru nějaký text a stiskněte Enter.
Pokud robot odpoví na vstup a v okně chatu se nezobrazí žádné chyby, ověřili jste, že je robot přístupný a funkční na místním hostiteli, když je zakázané zabezpečení. Přejděte ke kroku 2.
Pokud je v okně chatu uvedena jedna nebo více chyb, kliknutím na chyby zobrazíte podrobnosti. Časté problémy zahrnují:
- Nastavení emulátoru určuje nesprávný koncový bod robota. Ujistěte se, že jste do adresy URL zahrnuli správné číslo portu a správnou cestu na konci adresy URL, například
/api/messages
. - Nastavení emulátoru určuje koncový bod robota, který začíná
https
. Na místním hostiteli by měl koncový bod začínathttp
. - Nastavení emulátoru určuje hodnotu pole Microsoft App ID a/nebo pole Heslo aplikace Microsoft. Obě pole by měla být prázdná.
- Zabezpečení není pro robota zakázané. Ověřte , že robot nezadá hodnotu pro ID aplikace nebo heslo.
Krok 2: Ověření ID a hesla aplikace robota
V tomto kroku ověříte, že ID aplikace a heslo, které robot použije k ověření, jsou platné. (Pokud tyto hodnoty neznáte, získejte je teď.)
Upozorňující
Následující pokyny zakazují ověření SSL pro login.microsoftonline.com
. Tento postup proveďte pouze v zabezpečené síti a zvažte pozdější změnu hesla aplikace.
Vydání požadavku HTTP pro přihlašovací službu Microsoftu
Tyto pokyny popisují, jak pomocí cURL vydat požadavek HTTP na přihlašovací službu Microsoftu. Můžete použít alternativní nástroj, jako je Postman, pouze zajistit, aby požadavek odpovídal ověřovacímu protokolu bot Framework.
Pokud chcete ověřit platnost ID a hesla aplikace vašeho robota, pomocí cURL zadejte následující požadavek a APP_PASSWORD
nahraďte APP_ID
ID a heslo aplikace vašeho robota.
Tip
Heslo může obsahovat speciální znaky, které následující volání zneplatní. Pokud ano, zkuste převést heslo na kódování adresy URL.
curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id=APP_ID&client_secret=APP_PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default"
Tento požadavek se pokusí vyměnit ID aplikace a heslo robota pro přístupový token. Pokud je požadavek úspěšný, obdržíte datovou část JSON, která obsahuje access_token
mimo jiné vlastnost.
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAJKV1Q..."}
Pokud je žádost úspěšná, ověřili jste, že ID aplikace a heslo, které jste zadali v požadavku, jsou platné. Přejděte ke kroku 3.
Pokud se v odpovědi na požadavek zobrazí chyba, prozkoumejte odpověď a zjistěte příčinu chyby. Pokud odpověď značí, že ID aplikace nebo heslo je neplatné, získejte správné hodnoty z portálu Bot Framework a znovu odešlete požadavek s novými hodnotami, abyste potvrdili, že jsou platné.
Krok 3: Povolení zabezpečení a testování na místním hostiteli
V tomto okamžiku jste ověřili, že váš robot je přístupný a funkční na místním hostiteli, když je zabezpečení zakázané, a potvrdili jste, že ID aplikace a heslo, které robot použije k ověření, jsou platné. V tomto kroku ověříte, jestli je robot přístupný a funkční na místním hostiteli, když je povolené zabezpečení.
Povolení zabezpečení
Zabezpečení robota závisí na služby Microsoft, i když robot běží jenom na místním hostiteli. Pokud chcete robotovi povolit zabezpečení, upravte jeho nastavení konfigurace a vyplňte ID aplikace a heslo hodnotami, které jste ověřili v kroku 2. Kromě toho se ujistěte, že jsou vaše balíčky aktuální, konkrétně System.IdentityModel.Tokens.Jwt
a Microsoft.IdentityModel.Tokens
.
Pokud používáte sadu SDK služby Bot Framework pro .NET, vyplňte tato nastavení ve svém appsettings.config
souboru nebo odpovídající hodnoty:appsettings.json
<appSettings>
<add key="MicrosoftAppId" value="APP_ID" />
<add key="MicrosoftAppPassword" value="PASSWORD" />
</appSettings>
Pokud používáte sadu SDK služby Bot Framework pro Node.js, vyplňte tato nastavení (nebo aktualizujte odpovídající proměnné prostředí):
var connector = new builder.ChatConnector({
appId: 'APP_ID',
appPassword: 'PASSWORD'
});
Poznámka:
Informace o appID a AppPassword vašeho robota najdete v tématu MicrosoftAppID a MicrosoftAppPassword.
Otestování robota na místním hostiteli
Dále otestujte robota na místním hostiteli pomocí bot Framework Emulatoru.
- Spusťte robota na místním hostiteli.
- Spusťte bot Framework Emulator.
- Připojte se k robotovi pomocí emulátoru.
- Zadejte
http://localhost:port-number/api/messages
do adresního řádku emulátoru, kde číslo portu odpovídá číslu portu uvedenému v prohlížeči, na kterém je vaše aplikace spuštěná. - Do pole ID aplikace Microsoftu zadejte ID aplikace vašeho robota.
- Do pole Heslo aplikace Microsoftu zadejte heslo robota.
- Klepněte na tlačítko Připojit.
- Zadejte
- Pokud chcete otestovat připojení k robotovi, zadejte do emulátoru nějaký text a stiskněte Enter.
Pokud robot odpoví na vstup a v okně chatu se nezobrazí žádné chyby, ověřili jste, že je robot přístupný a funkční na místním hostiteli, pokud je povolené zabezpečení. Přejděte ke kroku 4.
Pokud je v okně chatu uvedena jedna nebo více chyb, kliknutím na chyby zobrazíte podrobnosti. Časté problémy zahrnují:
- Nastavení emulátoru určuje nesprávný koncový bod robota. Ujistěte se, že jste do adresy URL zahrnuli správné číslo portu a správnou cestu na konci adresy URL, například
/api/messages
. - Nastavení emulátoru určuje koncový bod robota, který začíná
https
. Na místním hostiteli by měl koncový bod začínathttp
. - V nastavení emulátoru pole ID aplikace Microsoft a/nebo heslo aplikace Microsoft neobsahuje platné hodnoty. Obě pole by měla být vyplněna a každé pole by mělo obsahovat odpovídající hodnotu, kterou jste ověřili v kroku 2.
- Pro robota není povolené zabezpečení. Ověřte , že nastavení konfigurace robota určuje hodnoty pro ID aplikace i heslo.
Krok 4: Testování robota v cloudu
V tomto okamžiku jste ověřili, že je robot přístupný a funkční na místním hostiteli, když je zakázané zabezpečení, potvrdili, že je ID a heslo aplikace robota platné, a ověřili, že je robot přístupný a funkční na místním hostiteli, když je povolené zabezpečení. V tomto kroku nasadíte robota do cloudu a ověříte, že je dostupný a funkční v něm s povoleným zabezpečením.
Nasazení robota do cloudu
Bot Framework vyžaduje, aby roboti měli přístup z internetu, takže robota musíte nasadit na platformu pro hostování cloudu, jako je Azure. Před nasazením nezapomeňte robotovi povolit zabezpečení, jak je popsáno v kroku 3.
Poznámka:
Pokud ještě poskytovatele cloudového hostingu nemáte, můžete si zaregistrovat bezplatný účet.
Pokud robota nasadíte do Azure, protokol SSL se pro vaši aplikaci automaticky nakonfiguruje, čímž se povolí koncový bod HTTPS , který služba Bot Framework vyžaduje. Pokud nasadíte na jiného poskytovatele cloudových hostingů, nezapomeňte ověřit, že je vaše aplikace nakonfigurovaná pro PROTOKOL SSL, aby robot měl koncový bod HTTPS .
Otestovat robota
Pokud chcete robota otestovat v cloudu s povoleným zabezpečením, proveďte následující kroky.
- Ujistěte se, že je robot úspěšně nasazený a spuštěný.
- Přihlaste se k portálu Azure.
- Na portálu přejděte k prostředku robota Azure.
- V podokně správy robota na levé straně klikněte na Tlačítko Test v Webový chat.
- Pokud chcete otestovat připojení k robotovi, zadejte do ovládacího prvku webového chatu nějaký text a stiskněte Enter.
Pokud je v okně chatu uvedena chyba, použijte chybovou zprávu k určení příčiny chyby. Časté problémy zahrnují:
- Koncový bod zasílání zpráv zadaný na stránce Nastavení robota na portálu Bot Framework je nesprávný. Ujistěte se, že jste na konci adresy URL zahrnuli správnou cestu, například
/api/messages
. - Koncový bod zasílání zpráv zadaný na stránce Nastavení robota na portálu Bot Framework nezačíná
https
nebo není důvěryhodný službou Bot Framework. Robot musí mít platný certifikát s důvěryhodným řetězem. - Robot je nakonfigurovaný s chybějícími nebo nesprávnými hodnotami pro ID aplikace nebo heslo. Ověřte , že nastavení konfigurace robota určuje platné hodnoty pro ID a heslo aplikace.
Pokud robot správně reaguje na vstup, ověřili jste, že je robot přístupný a funkční v cloudu s povoleným zabezpečením. V tuto chvíli je robot připravený k bezpečnému připojení k kanálu , jako je Facebook Messenger, Direct Line a další.
Další materiály
Pokud po dokončení výše uvedených kroků stále dochází k problémům, můžete:
- Přečtěte si, jak ladit robota a další články o ladění v této části.
- Ladění robota v cloudu pomocí bot Framework Emulatoru a [Dev Tunnels](https://aka.ms/devtunnels software pro tunelování.
- Ke kontrole provozu HTTPS do a z robota použijte nástroj pro proxy server, jako je Fiddler . Fiddler není produktem Microsoftu.
- Projděte si průvodce ověřováním bot Connectoru a seznamte se s technologiemi ověřování, které bot Framework používá.
- Vyžadovat pomoc od ostatních pomocí prostředků podpory služby Bot Framework.