Lägga till autentisering i en robot
GÄLLER FÖR: SDK v4
Azure AI Bot Service v4 SDK underlättar utvecklingen av robotar som kan komma åt onlineresurser som kräver användarautentisering. Roboten behöver inte hantera autentiseringstoken eftersom Azure gör det åt dig att använda OAuth 2.0 för att generera en token baserat på varje användares autentiseringsuppgifter. Roboten använder den token som genereras av Azure för att få åtkomst till dessa resurser. På så sätt behöver användaren inte ange ID och lösenord till roboten för att få åtkomst till en säker resurs utan bara till en betrodd identitetsprovider.
En översikt över hur Bot Framework hanterar den här typen av autentisering finns i Användarautentisering.
Den här artikeln refererar till två exempel. En visar hur du hämtar en autentiseringstoken. Den andra är mer komplex och visar hur du kommer åt Microsoft Graph för användarens räkning. I båda fallen kan du använda Azure AD v1 eller v2 som identitetsprovider för att hämta en OAuth-token för roboten. Den här artikeln beskriver hur du:
- Skapa en Azure Bot-resurs
- Skapa Microsoft Entra ID-identitetsprovidern
- Registrera Microsoft Entra ID-identitetsprovidern med roboten
- Förbereda robotkoden
När du har slutfört den här artikeln har du en robot som kan svara på några enkla uppgifter. I Microsoft Graph-exemplet kan du skicka ett e-postmeddelande, visa vem du är och kontrollera de senaste e-postmeddelandena. Du behöver inte publicera roboten för att testa OAuth-funktionerna. Roboten behöver dock ett giltigt Azure-app-ID och lösenord.
Kommentar
Bot Framework JavaScript-, C#- och Python-SDK:erna fortsätter att stödjas, men Java SDK dras tillbaka med slutligt långsiktigt stöd som slutar i november 2023.
Befintliga robotar som skapats med Java SDK fortsätter att fungera.
Om du vill skapa en ny robot kan du använda Microsoft Copilot Studio och läsa om hur du väljer rätt copilot-lösning.
Mer information finns i Framtiden för robotbygge.
Överväganden för webbchatt och direktlinje
Viktigt!
Du måste använda Direct Line med förbättrad autentisering aktiverad för att minska säkerhetsriskerna när du ansluter till en robot med hjälp av webchattkontrollen. Mer information finns i Utökad direktlinjeautentisering.
Förutsättningar
Kunskap om grunderna i roboten, hantering av tillstånd, dialogrutebiblioteket och hur du implementerar sekventiellt konversationsflöde och hur du återanvänder dialogrutor.
Kunskap om Azure- och OAuth 2.0-utveckling.
Visual Studio 2017 eller senare för .NET.
Node.js för JavaScript.
Python 3.8+ för Python.
Ett av exemplen nedan.
Exempel BotBuilder-version Demonstrationer Autentisering i C# eller JavaScript eller Java eller Python v4 OAuthCard-stöd Autentisering för Microsoft Graph i C# eller JavaScript eller Java eller Python v4 Stöd för Microsoft Graph API med OAuth 2.0 Autentisering för Microsoft Teams i C# eller JavaScript eller Java eller Python v4 Stöd för Microsoft Graph API med OAuth 2.0 Om du vill köra exemplen som refereras i den här artikeln behöver du:
- Ett Microsoft Entra-ID-program som du kan registrera en robotresurs med i Azure. Med det här programmet kan roboten komma åt en extern skyddad resurs, till exempel Microsoft Graph. Det gör också att användaren kan kommunicera med roboten via flera kanaler, till exempel webbchatt.
- Ett separat Microsoft Entra-ID-program som fungerar som identitetsprovider. Det här programmet tillhandahåller de autentiseringsuppgifter som krävs för att upprätta en OAuth-anslutning mellan roboten och den skyddade resursen. Observera att den här artikeln använder Active Directory som identitetsprovider. Många andra leverantörer stöds också.
Viktigt!
När du registrerar en robot i Azure tilldelas den ett Microsoft Entra-ID-program. Det här programmet skyddar dock kanal-till-robot-åtkomst. Du behöver ytterligare ett Microsoft Entra-ID-program för varje externt skyddad resurs som du vill att roboten ska få åtkomst till för användarens räkning.
Skapa resursen
Skapa Azure Bot-resursen så att du kan registrera din robot med Azure AI Bot Service.
Dricks
Det går inte att skapa nya registreringsresurser för webbappsrobotar och robotkanaler . Alla befintliga resurser som är konfigurerade och distribuerade fortsätter dock att fungera. Robotar som skapats från en VSIX- eller Yeoman-mall från SDK version 4.14.1.2 eller senare innehåller ARM-mallar som genererar en Azure Bot-resurs.
Gå till Azure-portalen.
I den högra rutan väljer du Skapa en resurs.
I sökrutan anger du
bot
och trycker sedan på Retur.Välj Azure Bot-kortet.
Välj Skapa.
Ange värden i de obligatoriska fälten och granska och uppdatera inställningarna.
Ange information under Projektinformation. Välj om din robot ska ha global eller lokal dataplacering. För närvarande är funktionen lokal datahemvist tillgänglig för resurser i regionen "westeurope" och "centralindia". Mer information finns i Regionalisering i Azure AI Bot Service.
Ange information under Microsoft App-ID. Välj hur robotidentiteten ska hanteras i Azure och om du vill skapa en ny identitet eller använda en befintlig.
Välj Granska + skapa.
Om valideringen godkänns väljer du Skapa.
När distributionen är klar väljer du Gå till resurs. Du bör se roboten och relaterade resurser i den resursgrupp som du har valt.
Om du inte redan har Bot Framework SDK väljer du Ladda ned från GitHub för att lära dig hur du använder paketen för önskat språk.
Nu är du redo att skapa din robot med Bot Framework SDK.
Dricks
När Azure skapar en ny Azure Bot-resurs med en enda klientorganisation eller flera klientorganisationer med ett nytt app-ID genereras även ett lösenord.
Information om robotidentitet
Följ de här stegen för att lägga till identitetsinformation i robotens konfigurationsfil. Filen skiljer sig beroende på vilket programmeringsspråk du använder för att skapa roboten.
Viktigt!
Java-versionen av Bot Framework SDK stöder endast robotar med flera klientorganisationer. C#-, JavaScript- och Python-versionerna stöder alla tre programtyperna för att hantera robotens identitet.
Språk | Filnamn | Kommentar |
---|---|---|
C# | appsettings.json | Stöder alla tre programtyperna för att hantera robotens identitet. |
JavaScript | .Env | Stöder alla tre programtyperna för att hantera robotens identitet. |
Java | application.properties | Stöder endast robotar med flera klientorganisationer. |
Python | config.py | Stöder alla tre programtyperna för att hantera robotens identitet. |
Identitetsinformationen som du behöver lägga till beror på robotens programtyp. Ange följande värden i konfigurationsfilen.
Tillgänglig för C#-, JavaScript- och Python-robotar.
Property | Värde |
---|---|
MicrosoftAppType |
UserAssignedMSI |
MicrosoftAppId |
Klient-ID för den användartilldelade hanterade identiteten. |
MicrosoftAppPassword |
Ej tillämpbart. Lämna detta tomt för en användartilldelad hanterad identitetsrobot. |
MicrosoftAppTenantId |
Klientorganisations-ID för den användartilldelade hanterade identiteten. |
Så här uppdaterar du din apptjänst
Om du har en befintlig App Service-resurs (webbapp) för din robot och roboten är ett användartilldelat program för hanterad identitet kan du behöva uppdatera robotens apptjänst:
- Gå till App Service-bladet för robotens webbapp.
- Under Inställningar väljer du Identitet.
- På bladet Identitet väljer du fliken Användartilldelad och Lägg till (+).
- På bladet Lägg till användartilldelad hanterad identitet:
Välj din prenumeration.
För Användartilldelade hanterade identiteter väljer du den hanterade identiteten för din robot. Om den hanterade identiteten genererades automatiskt åt dig har den samma namn som roboten.
Välj Lägg till för att använda den här identiteten för din robot.
Hämta din app eller ditt klient-ID
Så här hämtar du robotens app- eller klient-ID:
- Gå till Azure Bot-resursbladet för din robot.
- Gå till robotens konfigurationsblad. På det här bladet kan du kopiera robotens Microsoft App-ID eller appklient-ID.
Så här genererar du ett nytt lösenord
Robotar med en klientorganisation och flera klientorganisationer har en apphemlighet eller ett lösenord som du behöver för vissa åtgärder. Azure AI Bot Service döljer din robothemlighet. Ägaren till robotens App Service-resurs kan dock generera ett nytt lösenord:
- Gå till Azure Bot-resursbladet för din robot.
- Gå till robotens konfigurationsblad.
- Välj Hantera bredvid Microsoft App-ID för att gå till bladet Certifikat + hemligheter för apptjänsten.
- Följ anvisningarna på bladet för att skapa en ny klienthemlighet och registrera värdet på en säker plats.
Identitetstjänst för Microsoft Entra-ID
Microsoft Entra ID är en molnidentitetstjänst som gör att du kan skapa program som loggar in användare på ett säkert sätt med hjälp av branschstandardprotokoll som OAuth 2.0.
Du kan använda någon av dessa två identitetstjänster:
- Microsoft Entra ID Developer Platform (v1.0). Kallas även Azure AD v1-slutpunkt, som gör att du kan skapa appar som loggar in användare på ett säkert sätt med ett Microsoft-arbets- eller skolkonto. Mer information finns i Översikt över Microsoft Entra-ID för utvecklare (v1.0).
- Microsoft platforma za identitete (v2.0). Kallas även Microsoft Entra ID-slutpunkt, vilket är en utveckling av Azure AD-plattformen (v1.0). Det gör att du kan skapa program som loggar in på alla Microsoft-identitetsprovidrar och hämta token för att anropa Microsoft-API:er, till exempel Microsoft Graph, eller andra API:er som utvecklare har skapat. Mer information finns i översikten över Microsoft platforma za identitete (v2.0).
Information om skillnaderna mellan v1- och v2-slutpunkterna finns i Varför uppdateras till Microsoft platforma za identitete (v2.0)?. Fullständig information finns i Microsoft platforma za identitete (tidigare Microsoft Entra-ID för utvecklare).
Skapa Microsoft Entra ID-identitetsprovidern
Det här avsnittet visar hur du skapar en Microsoft Entra ID-identitetsprovider som använder OAuth 2.0 för att autentisera roboten. Du kan använda Azure AD v1- eller Microsoft Entra-ID-slutpunkter.
Dricks
Du måste skapa och registrera Microsoft Entra-ID-programmet i en klientorganisation där du kan samtycka till att delegera behörigheter som begärs av ett program.
Öppna microsoft entra-ID-panelen i Azure-portalen. Om du inte är i rätt klient väljer du Växla katalog för att växla till rätt klientorganisation. (Information om hur du skapar en klient finns i Öppna portalen och skapa en klient.)
Öppna panelen Appregistreringar .
I panelen Appregistreringar väljer du Ny registrering.
Fyll i de obligatoriska fälten och skapa appregistreringen.
Namnge ditt program.
Välj kontotyper som stöds för ditt program. (Något av dessa alternativ fungerar med det här exemplet.)
För omdirigerings-URI väljer du Webb och anger URL:en till en av de OAuth-omdirigerings-URL:er som stöds.
Välj Registrera.
- När den har skapats visar Azure sidan Översikt för appen.
- Registrera värdet program-ID (klient). Du använder det här värdet senare som klient-ID när du skapar niska veze och registrerar Microsoft Entra-ID-providern med robotregistreringen.
- Registrera ID-värdet för Katalog (klientorganisation). Du använder det här värdet för att registrera det här providerprogrammet med din robot.
I navigeringsfönstret väljer du Certifikat och hemligheter för att skapa en hemlighet för ditt program.
- Under Klienthemligheter väljer du Ny klienthemlighet.
- Lägg till en beskrivning för att identifiera den här hemligheten från andra som du kan behöva skapa för den här appen, till exempel
bot login
. - För Upphör att gälla väljer du en tidsperiod efter vilken hemligheten upphör att gälla.
- Markera Lägga till.
- Registrera hemligheten innan du lämnar Certifikat och hemligheter. Du använder det här värdet senare som klienthemlighet när du registrerar ditt Microsoft Entra-ID-program med din robot.
I navigeringsfönstret väljer du API-behörigheter för att öppna panelen API-behörigheter . Det är en bra idé att uttryckligen ange API-behörigheterna för appen.
Välj Lägg till en behörighet för att visa fönstret Api-behörigheter för begäran.
I det här exemplet väljer du Microsoft API:er och Microsoft Graph.
Välj Delegerade behörigheter och kontrollera att de behörigheter du behöver är markerade. Det här exemplet kräver dessa behörigheter.
Kommentar
Alla behörigheter som har markerats som ADMINISTRATÖRSMEDGIVANDE KRÄVS kräver att både en användare och en klientorganisationsadministratör loggar in, så för din robot tenderar att hålla sig borta från dessa.
- openid
- profil
- Mail.Read
- Mail.Send
- User.Read
- User.ReadBasic.All
Välj Lägg till behörigheter. (Första gången en användare får åtkomst till den här appen via roboten måste de bevilja medgivande.)
Nu har du konfigurerat ett Microsoft Entra-ID-program.
Kommentar
Du tilldelar program-ID :t (klient) och klienthemligheten när du skapar niska veze och registrerar identitetsprovidern med robotregistreringen. Se nästa avsnitt.
Registrera Microsoft Entra ID-identitetsprovidern med roboten
Nästa steg är att registrera din identitetsprovider med din robot.
Öppna robotens Resurssida för Azure Bot i Azure-portalen.
Välj Inställningar.
Under OAuth-anslutningsinställningar längst ned på sidan väljer du Lägg till inställning.
Fyll i formuläret på följande sätt:
Namn. Ange ett namn för anslutningen. Du använder den i robotkoden.
Tjänstleverantör. Välj Microsoft Entra-ID för att visa Microsoft Entra ID-specifika fält.
Klient-ID. Ange det program-ID (klient)-ID som du registrerade för din Microsoft Entra ID-identitetsprovider.
Klienthemlighet. Ange hemligheten som du registrerade för din Microsoft Entra ID-identitetsprovider.
Dricks
Om du vill använda certifikat kan du välja AAD v2 med certifikatprovidern . Du måste ge Bot Service Token Store (appid: 5b404cf4-a79d-4cfe-b866-24bf8e1a4921) behörighet att hämta certifikatet.
Token Exchange URL. Lämna det tomt eftersom det endast används för enkel inloggning i Microsoft Entra-ID.
Klientorganisations-ID. Ange det katalog-ID (klient)-ID som du registrerade tidigare för din Microsoft Entra-ID-app eller vanligt beroende på vilka kontotyper som stöds som valdes när du skapade Azure DD-appen. Följ dessa kriterier för att bestämma vilket värde som ska tilldelas:
- När du skapar Microsoft Entra-ID-appen anger du det klient-ID som du registrerade tidigare för Microsoft Entra-ID-appen om du valde Endast Konton i den här organisationskatalogen (endast Microsoft – enskild klientorganisation).
- Men om du har valt Konton i någon organisationskatalog (Microsoft Entra-ID-katalog – Flera klient- och personliga Microsoft-konton, t.ex. Xbox, Outlook.com) eller Konton i en organisationskatalog (Microsoft Entra ID-katalog – Flera klientorganisationer), anger du
common
i stället för ett klient-ID. Annars verifierar Microsoft Entra-ID-appen via klientorganisationen vars ID har valts och exkluderar personliga Microsoft-konton.
Det här är den klientorganisation som är associerad med de användare som kan autentiseras. Mer information finns i Innehavare i Microsoft Entra-ID.
För Omfång anger du namnen på den behörighet som du valde från programregistreringen. I testsyfte kan du bara ange:
openid profile
.Kommentar
För Microsoft Entra-ID tar fältet Scopes en skiftlägeskänslig , utrymmesavgränsad lista med värden.
Välj Spara.
Kommentar
Dessa värden gör att ditt program kan komma åt Office 365-data via Microsoft Graph API. Token Exchange-URL:en bör också lämnas tom eftersom den endast används för enkel inloggning i Microsoft Entra-ID.
Testa anslutningen
- Välj i anslutningsposten för att öppna anslutningen som du skapade.
- Välj Testa anslutning överst i fönstret Anslutningsinställning för tjänstleverantör.
- Första gången bör du öppna en ny webbläsarflik som visar de behörigheter som appen begär och uppmanar dig att acceptera.
- Välj Godkänn.
- Detta bör sedan omdirigera dig till en testanslutning till <sidan med ditt anslutningsnamn> Lyckades .
Du kan nu använda det här anslutningsnamnet i robotkoden för att hämta användartoken.
Förbereda robotkoden
Du behöver robotens app-ID och lösenord för att slutföra den här processen.
Klona från GitHub-lagringsplatsen det exempel som du vill arbeta med: Robotautentisering eller robotautentisering för Microsoft Graph.
Uppdatera appsettings.json:
Ange
ConnectionName
namnet på den OAuth-anslutningsinställning som du lade till i roboten.Ange
MicrosoftAppId
ochMicrosoftAppPassword
till robotens app-ID och apphemlighet.Beroende på tecknen i robothemligheten kan du behöva undvika lösenordet för XML. Till exempel måste alla &ers (&) kodas som
&
.
{ "MicrosoftAppType": "", "MicrosoftAppId": "", "MicrosoftAppPassword": "", "MicrosoftAppTenantId": "", "ConnectionName": "" }
Om du vill använda OAuth i roboten med datahemvist i det offentliga molnet måste du lägga till följande konfigurationer i dina apparinställningar
"OAuthUrl": "<Regional-OAuth-Uri>", "ToChannelFromBotOAuthScope": "https://api.botframework.com", "ToChannelFromBotLoginUrlTemplate": "https://api.botframework.com", "PublicAzureChannel": "https://api.botframework.com", "ToBotFromChannelOpenIdMetadataUrl": "https://login.botframework.com/v1/.well-known/openidconfiguration", "ToBotFromEmulatorOpenIdMetadataUrl": "https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration", "ToBotFromChannelTokenIssuer": "https://api.botframework.com", "ToChannelFromBotLoginUrl": "https://login.microsoftonline.com/botframework.com",
Där <Regional-OAuth-Url> är en av följande URI:er:
URI beskrivning https://europe.api.botframework.com
För offentliga molnrobotar med datahemvist i Europa. https://unitedstates.api.botframework.com
För offentliga molnrobotar med datahemvist i USA. https://india.api.botframework.com
För offentliga molnrobotar med datahemvist i Indien. Uppdatera Startup.cs:
Om du vill använda OAuth i icke-offentliga Azure-moln, till exempel myndighetsmolnet, måste du lägga till följande kod i filen Startup.cs .
string uri = "<uri-to-use>"; MicrosoftAppCredentials.TrustServiceUrl(uri); OAuthClientConfig.OAuthEndpoint = uri;
Där <uri-to-use> är en av följande URI:er:
URI beskrivning https://api.botframework.azure.us
För amerikanska myndighetsmolnrobotar utan datahemvist. https://api.botframework.com
För offentliga molnrobotar utan datahemvist. Detta är standard-URI:n och kräver ingen ändring av Startup.cs.
Information om hur du hämtar microsofts app-ID och lösenordsvärden för Microsoft-appar finns i Hämta registreringslösenord.
Kommentar
Du kan nu publicera den här robotkoden till din Azure-prenumeration (högerklicka i projektet och välj Publicera), men det är inte nödvändigt för den här artikeln. Du skulle behöva konfigurera en publiceringskonfiguration som använder programmet och värdplanen som du använde när du konfigurerade roboten i Azure-portalen.
Testa roboten med emulatorn
Om du inte redan har gjort det installerar du Bot Framework-emulatorn. Se även Felsöka med emulatorn.
För att robotexemplet ska fungera måste du konfigurera emulatorn enligt beskrivningen i Konfigurera emulatorn för autentisering.
Testning
När du har konfigurerat autentiseringsmekanismen kan du utföra den faktiska robotexempletestningen.
Kommentar
Du kan bli ombedd att ange en magisk kod eftersom robotexemplet implementeras. Den här magiska koden är en del av RFC#7636 och finns där för att lägga till ett extra säkerhetselement. Genom att ta bort den magiska koden finns det en ökad säkerhetsrisk. Detta kan minimeras med hjälp av Direct Line med förbättrad autentisering aktiverad. Mer information finns i Förbättrad autentisering i Bot Framework.
- Kör robotexemplet lokalt på datorn.
- Starta emulatorn.
- Du måste ange robotens app-ID och lösenord när du ansluter till roboten.
- Du får app-ID:t och lösenordet från Azure-appregistreringen. Det här är samma värden som du tilldelade robotappen
appsettings.json
i filen eller.env
. I emulatorn tilldelar du dessa värden i konfigurationsfilen eller första gången du ansluter till roboten. - Om du behöver XML-escape-lösenordet i robotkoden måste du också göra det här.
- Du får app-ID:t och lösenordet från Azure-appregistreringen. Det här är samma värden som du tilldelade robotappen
- Skriv
help
för att se en lista över tillgängliga kommandon för roboten och testa autentiseringsfunktionerna. - När du har loggat in behöver du inte ange dina autentiseringsuppgifter igen förrän du har loggat ut.
- Om du vill logga ut och avbryta autentiseringen skriver du
logout
.
Kommentar
Robotautentisering kräver användning av Bot Connector-tjänsten. Tjänsten kommer åt information från din Azure Bot-resurs.
Autentiseringsexempel
I exemplet med robotautentisering är dialogrutan utformad för att hämta användartoken när användaren har loggat in.
Autentisering för Microsoft Graph-exempel
I robotautentiseringen för Microsoft Graph-exemplet är dialogrutan utformad för att acceptera en begränsad uppsättning kommandon när användaren har loggat in.
Ytterligare information
När en användare ber roboten att göra något som kräver att roboten har användaren inloggad kan roboten använda en OAuthPrompt
för att initiera hämtning av en token för en viss anslutning. OAuthPrompt
Skapar ett flöde för tokenhämtning som består av:
- Kontrollera om Azure AI Bot Service redan har en token för den aktuella användaren och anslutningen. Om det finns en token returneras token.
- Om Azure AI Bot Service inte har en cachelagrad token skapas en
OAuthCard
som är en inloggningsknapp som användaren kan välja på. - När användaren har valt inloggningsknappen
OAuthCard
skickar Azure AI Bot Service antingen roboten användarens token direkt eller presenterar användaren med en 6-siffrig autentiseringskod som ska anges i chattfönstret. - Om användaren visas med en autentiseringskod byter roboten den här autentiseringskoden mot användarens token.
I följande avsnitt beskrivs hur exemplet implementerar några vanliga autentiseringsuppgifter.
Använd en OAuth-uppmaning för att logga in användaren och hämta en token
Dialogrutor\MainDialog.cs
Lägg till en OAuth-prompt till MainDialog i konstruktorn. Här hämtades värdet för anslutningsnamnet från filen appsettings.json .
AddDialog(new OAuthPrompt(
nameof(OAuthPrompt),
new OAuthPromptSettings
{
ConnectionName = ConnectionName,
Text = "Please Sign In",
Title = "Sign In",
Timeout = 300000, // User has 5 minutes to login (1000 * 60 * 5)
}));
I ett dialogsteg använder du BeginDialogAsync
för att starta OAuth-prompten, som ber användaren att logga in.
- Om användaren redan är inloggad genereras en tokensvarshändelse utan att användaren uppmanas att göra det.
- Annars uppmanas användaren att logga in. Azure AI Bot Service skickar tokensvarshändelsen när användaren försöker logga in.
return await stepContext.BeginDialogAsync(nameof(OAuthPrompt), null, cancellationToken);
I följande dialogsteg kontrollerar du om det finns en token i resultatet från föregående steg. Om den inte är null har användaren loggat in.
// Get the token from the previous step. Note that we could also have gotten the
// token directly from the prompt itself. There is an example of this in the next method.
var tokenResponse = (TokenResponse)stepContext.Result;
Vänta på en TokenResponseEvent
När du startar en OAuth-fråga väntar den på en tokensvarshändelse, från vilken användarens token hämtas.
Robotar\AuthBot.cs
AuthBot härleder från ActivityHandler
och hanterar uttryckligen händelseaktiviteter för tokensvar. Här fortsätter vi den aktiva dialogrutan, vilket gör att OAuth-prompten kan bearbeta händelsen och hämta token.
protected override async Task OnTokenResponseEventAsync(ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
{
Logger.LogInformation("Running dialog with Token Response Event Activity.");
// Run the Dialog with the new Token Response Event Activity.
await Dialog.RunAsync(turnContext, ConversationState.CreateProperty<DialogState>(nameof(DialogState)), cancellationToken);
}
Logga ut användaren
Det är bästa praxis att låta användarna uttryckligen logga ut, i stället för att förlita sig på att anslutningen överskrider tidsgränsen.
Dialogrutor\LogoutDialog.cs
private async Task<DialogTurnResult> InterruptAsync(DialogContext innerDc, CancellationToken cancellationToken = default(CancellationToken))
{
if (innerDc.Context.Activity.Type == ActivityTypes.Message)
{
var text = innerDc.Context.Activity.Text.ToLowerInvariant();
if (text == "logout")
{
// The UserTokenClient encapsulates the authentication processes.
var userTokenClient = innerDc.Context.TurnState.Get<UserTokenClient>();
await userTokenClient.SignOutUserAsync(innerDc.Context.Activity.From.Id, ConnectionName, innerDc.Context.Activity.ChannelId, cancellationToken).ConfigureAwait(false);
await innerDc.Context.SendActivityAsync(MessageFactory.Text("You have been signed out."), cancellationToken);
return await innerDc.CancelAllDialogsAsync(cancellationToken);
}
}
return null;
}
Lägga till Teams-autentisering
OAuth hanteras annorlunda i Teams än i andra kanaler. Exempel på Teams-autentiseringsrobot (i C#, JavaScript, Java eller Python) visar hur du implementerar autentisering för Teams korrekt.
Ytterligare läsning
- Bot Framework ytterligare resurser innehåller länkar för ytterligare support.
- Bot Framework SDK-lagringsplatsen innehåller mer information om lagringsplatser, exempel, verktyg och specifikationer som är associerade med Bot Builder SDK.