Bot Framework SDK V4进行Azure AD身份验证

时间:2018-08-21 06:14:07

标签: botframework

我正在使用Bot Framework SDK V4(.Net)构建我的Bot服务。我想使用Azure AD启用身份验证。

我找到了这些步骤-https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tutorial-authentication?view=azure-bot-service-3.0

但这是针对SDK V3的,不适用于V4

有人可以帮助如何为使用V4框架构建的机器人启用Azure AD身份验证吗?

2 个答案:

答案 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的“设置”,然后找到“添加新连接”选项。

enter image description here

答案 1 :(得分:0)

我正在使用botframework社区的AzureAdAuthMiddleware将Azure AD身份验证功能注入到我的v4聊天机器人中。

您可以在此处查看:https://github.com/BotBuilderCommunity/botbuilder-community-dotnet