我正在使用Bot Framework SDK V4(.Net)构建我的Bot服务。我想使用Azure AD启用身份验证。
但这是针对SDK V3的,不适用于V4
有人可以帮助如何为使用V4框架构建的机器人启用Azure AD身份验证吗?
答案 0 :(得分:0)
我知道这是一个较晚的答案,但可能会对某人有所帮助。您需要在Azure中创建漫游器服务,并获取Microsoft应用程序ID和应用程序密码。 然后,您可以提示用户登录。
private static OAuthPrompt Prompt(string connectionName)
{
return new OAuthPrompt(
LoginPromptName,
new OAuthPromptSettings
{
ConnectionName = connectionName,
Text = "Please Sign In",
Title = "Sign In",
Timeout = 300000, // User has 5 minutes to login (1000 * 60 * 5)
});
}
创建一个WaterfallStep
来登录Prompt
。
private static async Task<DialogTurnResult> PromptStepAsync(WaterfallStepContext step, CancellationToken cancellationToken)
{
return await step.BeginDialogAsync(LoginPromptName, cancellationToken: cancellationToken);
}
接下来,您可以继续使用令牌进行任何操作。
private static async Task<DialogTurnResult> LoginStepAsync(WaterfallStepContext step, CancellationToken cancellationToken)
{
// 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)step.Result;
if (tokenResponse != null)
{
// use the token to do exciting things!
}
else
{
// If Bot Service does not have a token, send an OAuth card to sign in
}
await step.Context.SendActivityAsync("Login was not successful please try again.", cancellationToken: cancellationToken);
return Dialog.EndOfTurn;
}
遵循this指南以了解更多信息。
您甚至可以为Azure设置其他OAuth提供程序,例如Github,Facebook。为此,请转到Bot Channels Registration的“设置”,然后找到“添加新连接”选项。
答案 1 :(得分:0)
我正在使用botframework社区的AzureAdAuthMiddleware将Azure AD身份验证功能注入到我的v4聊天机器人中。
您可以在此处查看:https://github.com/BotBuilderCommunity/botbuilder-community-dotnet