• ASP.NET Web 应用集成Azure AD B2C登录接口验证


    2019-08-28 11:24:08

    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租户

    • 登录到 Azure 门户

    • 请确保使用的是包含订阅的目录。 单击顶部菜单中的“目录和订阅筛选器”,然后选择包含订阅的目录 。 此目录不同于将包含 Azure AD B2C 租户的其他目录。

    • 在 Azure 门户的左上角,选择“创建资源” 。
    • 搜索并选择“Active Directory B2C” ,然后单击“创建” 。
    • 选择“新建 Azure AD B2C 租户” ,输入组织名称和初始域名。 选择国家/地区(以后不能更改),然后单击“创建”。
    • 初始域名用作租户名称的一部分。 在此示例中,租户名是 contoso0926Tenant.partner.onmschina.cn
    • 在“创建新的 B2C 租户或链接到现有租户”页上,选择“将现有 Azure AD B2C 租户链接到 Azure 订阅” 。

      选择已创建的租户,然后选择订阅。

      对于资源组 ,请选择“新建”。 输入将包含该租户的资源组名,选择位置,然后单击“创建” 。

    • 若要开始使用新租户,请确保使用包含 Azure AD B2C 租户的目录,方法是单击顶部菜单中的“目录和订阅筛选器” ,然后选择包含租户的目录。
    • 如果一开始在列表中看不到新的 Azure B2C 租户,请刷新浏览器窗口,然后再次在顶部菜单中选择“目录和订阅筛选器” 。

      

    2.2.1 注册Web应用程序

    • 请确保使用包含 Azure AD B2C 租户的目录,方法是单击顶部菜单中的“目录和订阅筛选器”,然后选择包含租户的目录 。

    • 选择 Azure 门户左上角的“所有服务”,然后搜索并选择“Azure AD B2C” 。

    • 选择“应用程序”,然后选择“添加” 。

    • 输入应用程序的名称。 例如,“webapp1” 。

    • 对于“包括 Web 应用/Web API”和“允许隐式流”,请选择“是”。

    • 对于“回复 URL”,请输入 Azure AD B2C 要将应用程序请求的任何令牌返回到的终结点 。 例如,可将其设置为在 https://localhost:44316 上本地侦听。 如果尚不知道端口号,可以先输入占位符值,以后再进行更改。

      出于测试目的(如本教程),可以将其设置为 https://jwt.ms,以便显示令牌的内容以供检查。 对于本教程,请将回复 URL 设置为 https://jwt.ms

      回复 URL 必须以方案 https 开头,并且所有回复 URL 值必须共享一个 DNS 域。 例如,如果应用程序的回复 URL 为 https://login.contoso.com,则可以像此 URL https://login.contoso.com/new 一样向其添加。 或者,你可以引用 login.contoso.com 的 DNS 子域,例如 https://new.login.contoso.com。 若要将包含 login-east.contoso.com 和 login-west.contoso.com 的应用程序作为回复 URL,则必须按以下顺序添加这些回复 URL:https://contoso.comhttps://login-east.contoso.comhttps://login-west.contoso.com。 可以添加后两个回复 URL,因为它们是第一个回复 URL (contoso.com) 的子域。

    • 单击创建

     2.2.2 创建客户端机密

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

    2.3 创建用户流

    2.3.1 创建注册和登录用户流

    • 登录到 Azure 门户

    • 请确保使用包含 Azure AD B2C 租户的目录,方法是单击顶部菜单中的“目录和订阅筛选器”,然后选择包含租户的目录 。

    • 选择 Azure 门户左上角的“所有服务”,然后搜索并选择“Azure AD B2C” 。

    • 在左侧菜单的“策略”下选择“用户流(策略)”,然后选择“新建用户流”。
    • 在“建议”选项卡上选择“注册和登录”用户流。
    • 输入该用户流的名称。 例如 signupsignin1
    • 对于“标识提供者”,请选择“电子邮件注册”。
    • 对于“用户属性和声明”,请选择在注册期间要从用户收集并发送的声明和属性。 例如,选择“显示更多”,然后选择“国家/地区”、“显示名称”和“邮政编码”所对应的属性和声明。 单击 “确定” 。

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

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

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

    2.3.3 创建密码重置用户流

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

    3.  Azure AD B2C 代码示例

    3.1 clone代码到本地

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

    3.2 打开settings.json文件

    {
      "Authentication": {
        "AzureAdB2C": {
          "ClientId": "90c0fe63-bcf2-44d5-8fb7-b8bbc0b29dc6",
          "Tenant": "fabrikamb2c.onmicrosoft.com",
          "SignUpSignInPolicyId": "b2c_1_susi",
          "ResetPasswordPolicyId": "b2c_1_reset",
          "EditProfilePolicyId": "b2c_1_edit_profile",
          "RedirectUri": "http://localhost:5000/signin-oidc",
          "ClientSecret" : "v0WzLXB(uITV5*Aq",
          "ApiUrl": "https://fabrikamb2chello.azurewebsites.net/hello",
          "ApiScopes": "https://fabrikamb2c.onmicrosoft.com/demoapi/demo.read"
        }
      }
    }

    将ClientId、Tenant、SignUpSignInPolicyId、ResetPasswordPolicyId、ResetPasswordPolicyId、EditProfilePolicyId、ClientSecret修改为前面创建生成的值。

    运行项目。

    注意:如果使用中国区Azure ,

    更正下jwtBearerOptions.Authority的地址:

    https://<your-tenant-name>.b2clogin.cn/tfp/<tenant-id-or-tenant-domain>/<user-flow-policies-name>/v2.0/

  • 相关阅读:
    初入职场的一些感悟
    疲惫于时间管理术-应该如何把握时间
    何为有效沟通
    powdesigner生成模型以后导入erwin大坑 oracle12c
    oracle 12c下载及安装全解析(踩坑注意)-win64-12102版本-2019-10-17
    聚集索引与非聚集索引的用法举例与使用注意
    十分钟,带你了解MobX 与 React
    GET https://pic.qyer.com/avatar/008/23/22/84/200?v=1469960206 403 (Forbidden) 图片防盗链
    writing
    使用github pages搭建博客
  • 原文地址:https://www.cnblogs.com/zmsoftbj/p/11422984.html
Copyright © 2020-2023  润新知