Share via


Troubleshooting Bot Framework authentication (Problemen met Bot Framework-verificatie oplossen)

VAN TOEPASSING OP: SDK v4

Deze handleiding kan u helpen bij het oplossen van verificatieproblemen met uw bot door een reeks scenario's te evalueren om te bepalen waar het probleem zich voordoet.

Notitie

Als u alle stappen in deze handleiding wilt uitvoeren, moet u de Bot Framework Emulator downloaden en gebruiken en moet u toegang hebben tot de registratie-instellingen van de bot in Azure Portal.

App-id en -wachtwoord

Botbeveiliging wordt geconfigureerd door de Microsoft-app-id en het Microsoft App-wachtwoord dat u verkrijgt wanneer u uw bot registreert bij Bot Framework. Deze waarden worden doorgaans opgegeven in het configuratiebestand van de bot en worden gebruikt om toegangstokens op te halen uit de Microsoft-accountservice.

Als u dit nog niet hebt gedaan, implementeert u uw bot in Azure om een Microsoft-app-id en Een Microsoft App-wachtwoord te verkrijgen dat kan worden gebruikt voor verificatie.

Stap 1: Beveiliging uitschakelen en testen op localhost

In deze stap controleert u of uw bot toegankelijk en functioneel is op localhost wanneer beveiliging is uitgeschakeld.

Waarschuwing

Als u de beveiliging voor uw bot uitschakelt, kunnen onbekende aanvallers gebruikers imiteren. Implementeer alleen de volgende procedure als u werkt in een beveiligde foutopsporingsomgeving.

Beveiliging uitschakelen

Als u de beveiliging voor uw bot wilt uitschakelen, bewerkt u de configuratie-instellingen om de waarden voor de app-id en het wachtwoord te verwijderen.

Als u de Bot Framework SDK voor .NET gebruikt, voegt u de instellingen toe of bewerkt u deze in uw bestand appsettings.json :

"MicrosoftAppId": "",
"MicrosoftAppPassword": ""

Uw bot testen op localhost

Test vervolgens uw bot op localhost met behulp van de Bot Framework Emulator.

  1. Start uw bot op localhost.
  2. Start de Bot Framework Emulator.
  3. Verbinding maken naar uw bot met behulp van de emulator.
    • Typ http://localhost:port-number/api/messages in de adresbalk van de emulator, waarbij het poortnummer overeenkomt met het poortnummer dat wordt weergegeven in de browser waarin uw toepassing wordt uitgevoerd.
    • Zorg ervoor dat de velden Microsoft App ID en Microsoft App Password beide leeg zijn.
    • Klik op Verbinding maken.
  4. Als u de verbinding met uw bot wilt testen, typt u tekst in de emulator en drukt u op Enter.

Als de bot reageert op de invoer en er geen fouten zijn in het chatvenster, hebt u gecontroleerd of uw bot toegankelijk en functioneel is op localhost wanneer de beveiliging is uitgeschakeld. Ga verder met stap 2.

Als een of meer fouten worden aangegeven in het chatvenster, klikt u op de fout(en) voor meer informatie. Veelvoorkomende problemen zijn:

  • De emulatorinstellingen geven een onjuist eindpunt voor de bot op. Zorg ervoor dat u het juiste poortnummer hebt opgenomen in de URL en het juiste pad aan het einde van de URL, zoals /api/messages.
  • Met de emulatorinstellingen geeft u een boteindpunt op dat begint met https. Op localhost moet het eindpunt beginnen met http.
  • De emulatorinstellingen geven een waarde op voor het veld Microsoft-app-id en/of het veld Wachtwoord voor Microsoft-app. Beide velden moeten leeg zijn.
  • Beveiliging is niet uitgeschakeld voor de bot. Controleer of de bot geen waarde opgeeft voor de app-id of het wachtwoord.

Stap 2: de app-id en het wachtwoord van uw bot verifiëren

In deze stap controleert u of de app-id en het wachtwoord die uw bot gebruikt voor verificatie geldig zijn. (Als u deze waarden niet kent, verkrijgt u deze nu.)

Waarschuwing

Met de volgende instructies wordt SSL-verificatie uitgeschakeld voor login.microsoftonline.com. Voer deze procedure alleen uit op een beveiligd netwerk en overweeg daarna het wachtwoord van uw toepassing te wijzigen.

Een HTTP-aanvraag verzenden naar de Microsoft-aanmeldingsservice

In deze instructies wordt beschreven hoe u cURL gebruikt om een HTTP-aanvraag uit te geven aan de Microsoft-aanmeldingsservice. U kunt een alternatief hulpprogramma zoals Postman gebruiken, om ervoor te zorgen dat de aanvraag voldoet aan het Bot Framework-verificatieprotocol.

Als u wilt controleren of de app-id en het wachtwoord van uw bot geldig zijn, geeft u de volgende aanvraag uit met behulp van cURL, waarbij u de app-id en het wachtwoord van uw bot vervangt APP_ID en APP_PASSWORD vervangt.

Fooi

Uw wachtwoord kan speciale tekens bevatten die de volgende aanroep ongeldig maken. Zo ja, probeer dan uw wachtwoord te converteren naar URL-codering.

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"

Met deze aanvraag wordt geprobeerd de app-id en het wachtwoord van uw bot uit te wisselen voor een toegangstoken. Als de aanvraag is geslaagd, ontvangt u onder andere een JSON-nettolading die een access_token eigenschap bevat.

{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAJKV1Q..."}

Als de aanvraag is geslaagd, hebt u gecontroleerd of de app-id en het wachtwoord die u in de aanvraag hebt opgegeven, geldig zijn. Ga verder met stap 3.

Als er een fout optreedt in reactie op de aanvraag, bekijkt u het antwoord om de oorzaak van de fout te identificeren. Als het antwoord aangeeft dat de app-id of het wachtwoord ongeldig is, haalt u de juiste waarden op uit de Bot Framework-portal en voert u de aanvraag opnieuw uit met de nieuwe waarden om te bevestigen dat deze geldig zijn.

Stap 3: Beveiliging en testen inschakelen op localhost

Op dit moment hebt u gecontroleerd of uw bot toegankelijk en functioneel is op localhost wanneer de beveiliging is uitgeschakeld en bevestigd dat de app-id en het wachtwoord die de bot voor verificatie zal gebruiken, geldig zijn. In deze stap controleert u of uw bot toegankelijk en functioneel is op localhost wanneer beveiliging is ingeschakeld.

Beveiliging inschakelen

De beveiliging van uw bot is afhankelijk van Microsoft-services, zelfs wanneer uw bot alleen op localhost wordt uitgevoerd. Als u beveiliging voor uw bot wilt inschakelen, bewerkt u de configuratie-instellingen om de app-id en het wachtwoord te vullen met de waarden die u in stap 2 hebt geverifieerd. Zorg er bovendien voor dat uw pakketten up-to-date zijn, met name System.IdentityModel.Tokens.Jwt en Microsoft.IdentityModel.Tokens.

Als u de Bot Framework SDK voor .NET gebruikt, vult u deze instellingen in uw appsettings.config of de bijbehorende waarden in uw appsettings.json bestand:

<appSettings>
  <add key="MicrosoftAppId" value="APP_ID" />
  <add key="MicrosoftAppPassword" value="PASSWORD" />
</appSettings>

Als u de Bot Framework SDK voor Node.js gebruikt, vult u deze instellingen in (of werkt u de bijbehorende omgevingsvariabelen bij):

var connector = new builder.ChatConnector({
  appId: 'APP_ID',
  appPassword: 'PASSWORD'
});

Uw bot testen op localhost

Test vervolgens uw bot op localhost met behulp van de Bot Framework Emulator.

  1. Start uw bot op localhost.
  2. Start de Bot Framework Emulator.
  3. Verbinding maken naar uw bot met behulp van de emulator.
    • Typ http://localhost:port-number/api/messages in de adresbalk van de emulator, waarbij het poortnummer overeenkomt met het poortnummer dat wordt weergegeven in de browser waarin uw toepassing wordt uitgevoerd.
    • Voer de app-id van uw bot in het veld Microsoft App ID in.
    • Voer het wachtwoord van uw bot in het veld Wachtwoord van de Microsoft-app in.
    • Klik op Verbinding maken.
  4. Als u de verbinding met uw bot wilt testen, typt u tekst in de emulator en drukt u op Enter.

Als de bot reageert op de invoer en er geen fouten zijn in het chatvenster, hebt u gecontroleerd of uw bot toegankelijk en functioneel is op localhost wanneer beveiliging is ingeschakeld. Ga verder met stap 4.

Als een of meer fouten worden aangegeven in het chatvenster, klikt u op de fout(en) voor meer informatie. Veelvoorkomende problemen zijn:

  • De emulatorinstellingen geven een onjuist eindpunt voor de bot op. Zorg ervoor dat u het juiste poortnummer hebt opgenomen in de URL en het juiste pad aan het einde van de URL, zoals /api/messages.
  • Met de emulatorinstellingen geeft u een boteindpunt op dat begint met https. Op localhost moet het eindpunt beginnen met http.
  • In de emulatorinstellingen bevatten het veld Microsoft-app-id en/of het Microsoft App-wachtwoord geen geldige waarden. Beide velden moeten worden ingevuld en elk veld moet de bijbehorende waarde bevatten die u in stap 2 hebt geverifieerd.
  • Beveiliging is niet ingeschakeld voor de bot. Controleer of de botconfiguratie-instellingen waarden voor zowel app-id als wachtwoord opgeven.

Stap 4: Uw bot testen in de cloud

Op dit moment hebt u gecontroleerd of uw bot toegankelijk en functioneel is op localhost wanneer beveiliging is uitgeschakeld, bevestigt u dat de app-id en het wachtwoord van uw bot geldig zijn en controleert u of uw bot toegankelijk en functioneel is op localhost wanneer beveiliging is ingeschakeld. In deze stap implementeert u uw bot in de cloud en controleert u of deze daar toegankelijk en functioneel is met beveiliging ingeschakeld.

Uw bot implementeren in de cloud

Het Bot Framework vereist dat bots toegankelijk zijn vanaf internet, dus u moet uw bot implementeren op een cloudhostingplatform zoals Azure. Zorg ervoor dat u de beveiliging voor uw bot inschakelt vóór de implementatie, zoals beschreven in stap 3.

Notitie

Als u nog geen cloudhostingprovider hebt, kunt u zich registreren voor een gratis account.

Als u uw bot implementeert in Azure, wordt SSL automatisch geconfigureerd voor uw toepassing, waardoor het HTTPS-eindpunt wordt ingeschakeld dat het Bot Framework vereist. Als u implementeert in een andere cloudhostingprovider, controleert u of uw toepassing is geconfigureerd voor SSL, zodat de bot een HTTPS-eindpunt heeft.

Uw bot testen

Voer de volgende stappen uit om uw bot in de cloud te testen met beveiliging ingeschakeld.

  1. Zorg ervoor dat uw bot is geïmplementeerd en wordt uitgevoerd.
  2. Meld u aan bij de Azure-portal.
  3. Navigeer in de portal naar de Azure Bot-resource voor uw bot.
  4. Klik op Testen in Webchat in het deelvenster Botbeheer aan de linkerkant.
  5. Als u de verbinding met uw bot wilt testen, typt u tekst in het besturingselement voor webchats en drukt u op Enter.

Als er een fout wordt aangegeven in het chatvenster, gebruikt u het foutbericht om de oorzaak van de fout te bepalen. Veelvoorkomende problemen zijn:

  • Het berichteindpunt dat is opgegeven op de pagina Instellingen voor uw bot in de Bot Framework-portal, is onjuist. Zorg ervoor dat u het juiste pad aan het einde van de URL hebt opgenomen, zoals /api/messages.
  • Het berichteindpunt dat is opgegeven op de pagina Instellingen voor uw bot in de Bot Framework-portal, begint niet met https of wordt niet vertrouwd door Bot Framework. Uw bot moet een geldig, ketenvertrouwenscertificaat hebben.
  • De bot is geconfigureerd met ontbrekende of onjuiste waarden voor app-id of wachtwoord. Controleer of de botconfiguratie-instellingen geldige waarden voor de app-id en het wachtwoord opgeven.

Als de bot op de juiste wijze reageert op de invoer, hebt u gecontroleerd of uw bot toegankelijk en functioneel is in de cloud met beveiliging ingeschakeld. Op dit moment is uw bot klaar om veilig verbinding te maken met een kanaal zoals Facebook Messenger, Direct Line en anderen.

Aanvullende bronnen

Als u nog steeds problemen ondervindt nadat u de bovenstaande stappen hebt voltooid, kunt u het volgende doen: