ASP.NET Web项目加入Azure AD B2C登录校验

2019-08-26   18:26:16

1. 项目创建

1.1 安装

  下载.NETCORE SDK 进行安装

  下载NETCORE RUNTIME进行安装.

  下载Runtime & Hosting Bundle进行安装

  下载地址:https://dotnet.microsoft.com/download/dotnet-core

  微软的安装在windows方面很简单,基本就是一键安装.

1.2 开发工具

            VisualStudio 2019

1.3建立项目工程

  点击文件创建项目,出现如下图示

  

  选择画红圈部分,接着出现如下图示

2. Azure AD B2C

2.1 创建Azure Active Directory B2C租户

2.1.1在 Azure 门户的左上角,选择“创建资源”

2.1.2 搜索并选择“Active Directory B2C” ,然后单击“创建” 。

 2.1.3 选择 "创建新的 Azure AD B2C 租户", 并输入组织名称和初始域名。 选择国家/地区 (以后不能更改), 然后单击 "创建"。

初始域名用作你的租户名称的一部分。 在此示例中, 租户名称为contoso0926Tenant.onmicrosoft.com:

2.1.4  在 "创建新的 B2C 租户" 或 "链接到现有租户" 页上, 选择 "将现有 Azure AD B2C 租户链接到我的 Azure 订阅"。

选择创建的租户, 并选择订阅。

2.2 在Azure Active Directory B2C中注册应用程序

2.2.1 选择 Azure 门户左上角的“所有服务”,然后搜索并选择“Azure AD B2C”,选择“应用程序”,然后选择“添加”。

2.2.2 输入应用程序的名称。 例如,“webapp1” ,对于“包括 Web 应用/Web API”和“允许隐式流”,请选择“是”,对于“回复 URL”,请输入 Azure AD B2C 要将应用程序请求的任何令牌返回到的终结点。 例如,可将其设置为在 https://localhost:44316 上本地侦听。

2.2.3 创建客户端机密

  • 在“Azure AD B2C - 应用程序”页中,选择已创建的应用程序,例如 webapp1。
  • 选择“密钥”,然后选择“生成密钥”。
  • 选择“保存”以查看密钥。 记下“应用密钥”值。

2.3 在Azure Active Directory B2C中创建用户流

2.3.1 选择 Azure 门户左上角的“所有服务”,然后搜索并选择“Azure AD B2C”,在 "策略" 下的左侧菜单中, 选择 "用户流 (策略) ", 然后选择 "新建用户流"。

2.3.2 在 "建议" 选项卡上, 选择 "注册和登录用户流"。

 2.3.3 输入该用户流的名称。 例如 signupsignin1,对于“标识提供者”,请选择“电子邮件注册”。

对于“用户属性和声明”,请选择在注册期间要从用户收集并发送的声明和属性。 例如, 选择 "显示更多", 然后选择 "国家/地区"、"显示名称" 和 "邮政编码"。 单击 “确定” 。

单击“创建” 以添加用户流。 名称中会自动追加前缀 B2C_1

2.3.4 创建配置文件编辑用户流

  • 在 Azure AD B2C 租户概述 "页的左侧菜单中, 选择"用户流 (策略) ", 然后选择"新建用户流"。
  • 在“建议”选项卡上选择“个人资料编辑”用户流。
  • 输入该用户流的名称。 例如 profileediting1
  • 对于“标识提供者” ,请选择“本地帐户登录”。
  • 对于“用户属性”,请选择你希望客户能够在其个人资料中编辑的属性。 例如, 选择 "显示更多", 然后选择 "显示名称" 和 "职务" 的属性和声明。 单击 “确定” 。
  • 单击“创建” 以添加用户流。 名称中会自动追加前缀 B2C_1

2.3.5 创建密码重置用户流

  • 在左侧菜单中, 选择 "用户流 (策略) ", 然后选择 "新建用户流"。
  • 在“建议”选项卡上选择“密码重置”用户流。
  • 输入该用户流的名称。 例如 passwordreset1
  • 对于“标识提供者” ,请启用“使用电子邮件地址重置密码”。
  • 在“应用程序声明”下单击“显示更多”,并选择你希望在发回到应用程序的授权令牌中返回的声明。 例如,选择“用户的对象 ID”。
  • 单击 “确定” 。
  • 单击“创建” 以添加用户流。 名称中会自动追加前缀 B2C_1

 

3.4 使用Azure Active Directory B2C在Web应用程序中启用身份验证

3.4.1 更新应用程序

  • 登录到 Azure 门户
  • 请确保使用包含 Azure AD B2C 租户的目录,方法是单击顶部菜单中的“目录和订阅筛选器”,然后选择包含租户的目录 。
  • 选择 Azure 门户左上角的“所有服务”,然后搜索并选择“Azure AD B2C” 。
  • 选择“应用程序”,然后选择“webapp1”应用程序。
  • 在“回复 URL”下添加 https://localhost:44316
  • 选择“保存”。
  • 在属性页上,记录你在配置 Web 应用程序时要使用的应用程序 ID。
  • 依次选择“密钥”、“生成密钥”、“保存”。 记录你在配置 Web 应用程序时要使用的密钥。

3.4.2 配置示例

  在本教程中,你将配置一个可从 GitHub 下载的示例。 该示例使用 ASP.NET 提供简单的待办事项列表。 该示例使用 Microsoft OWIN 中间件组件。 从 GitHub 下载 zip 文件或克隆该示例。 确保将示例文件提取到文件夹中时,路径的总字符长度不到 260。

  git clone https://github.com/Azure-Samples/active-directory-b2c-dotnet-webapp-and-webapi.git

示例解决方案中包含以下两个项目:

  • TaskWebApp - 创建和编辑任务列表。 该示例使用注册或登录用户流来注册或登录用户。
  • TaskService - 支持创建、读取、更新和删除任务列表功能。 该 API 受 Azure AD B2C 的保护,由 TaskWebApp 调用。

将示例更改为使用已在租户中注册的应用程序,包括前面记下的应用程序 ID 和密钥。 此外,配置所创建的用户流。 该示例在 Web.config 文件中将配置值作为设置来定义。 若要更改设置,请执行以下操作:

  • 在 Visual Studio 中打开 B2C-WebAPI-DotNet 解决方案。
  • 在 TaskWebApp 项目中打开 Web.config 文件。 将 ida:Tenant 的值替换为所创建租户的名称。 将 ida:ClientId 的值替换为所记录的应用程序 ID。 将 ida:ClientSecret 的值替换为所记录的密钥。 在将客户端密码添加到 Web.config 之前,必须对其进行 XML 编码。
  • 在 Web.config 文件中,将 ida:SignUpSignInPolicyId 的值替换为 b2c_1_signupsignin1。 将 ida:EditProfilePolicyId 的值替换为 b2c_1_profileediting1。 将 ida:ResetPasswordPolicyId 的值替换为 b2c_1_passwordreset1

运行示例

  • 在解决方案资源管理器中,右键单击 TaskWebApp 项目,然后单击“设为启动项目”。
  • 按 F5。 默认浏览器将启动到本地网站地址 https://localhost:44316/

猜你喜欢

转载自www.cnblogs.com/zmsoftbj/p/11414140.html
今日推荐