Blazor 应用如何使用 Azure Active Directory 认证登录

点击上方蓝字 / 关注“汪宇杰博客”

原文:Azure Tips and Tricks

翻译:汪宇杰

使用 Azure Active Directory 保护您的应用程序

您可以使用 Azure Active Directory (AAD) 让用户进行身份验证并授权使用您的应用。AAD 提供了一种智能身份即服务来保护您的应用,并且它易于使用和集成。

在这篇文章中,我们将创建一个新的 Blazor WebAssembly 应用程序并在其中集成 Azure Active Directory,以便用户可以在应用中进行身份验证。

前置要求

你需要以下准备:

  • Azure 订阅(如果您没有 Azure 订阅,请在开始之前创建一个免费帐户)

  • .NET Core 最新版本 SDK

在 Blazor WASM 应用中集成 AAD

我们将使用 Azure Active Directory (AAD) 保护独立的 Blazor WebAssembly 应用。为此,我们将首先在 Azure Portal 的 AAD 中注册一个应用。

1. 打开 Azure Portal

2. 选择左上角的菜单,然后选择 Azure Active Directory

3. 在 AAD 中,选择 App registrations

4. 选择  New registration。这将打开注册应用页面。我们将使用它来注册 Blazor 应用程序。

  1. 填写应用名称

  2. Supported account types 设置为 Accounts in this organizational directory only

  3. 在重定向 URI 中,选择 Web 并填写 https://localhost:5001/authentication/login-callback。我们将为应用使用 5001 端口,因为这是它在 IIS express 中的默认端口,但我们可能需要稍后在创建应用程序时更改此端口

  4. 选择 Register 创建应用

5. 注册应用后,您将看到 client id 和 tenant id。把他们复制出来,我们稍后需要。

6. 选择 Authentication  菜单

7. 在 Implicit grant 下,选择 Access tokens 和 ID tokens

8. 点击 Save

9. 搞定!现在,我们可以创建 Blazor 应用。打开命令提示符并使用以下命令创建 Blazor 应用,在其中填写client id 和 tenant id 以及应用注册的名称:

dotnet new blazorwasm -au SingleOrg --client-id "{CLIENT ID}" -o {APP NAME} --tenant-id "{TENANT ID}"

10. 这个命令创建了一个包含 Blazor WebAssembly 应用的文件夹。打开该目录。

11. 运行以下命令编译:

dotnet build

12. 使用以下命令运行:

dotnet run

13. Console 输出将显示应用运行所在的 URL。检查URL的端口是否与我们在AAD(5001)中的注册的程序配置的一样。如果不是,请更改应用程序注册以匹配端口。启动浏览器并打开 Blazor 应用程序的 URL。该程序有一个用于身份认证的登录菜单,点击并使用您的 Azure 帐户或 AAD 租户中存在的其他帐户登录。您将登录成功,并看到您的名字。

结论

Azure Active Directory 让您能够保护您的应用,并无需担心复杂的安全设置。您可以使用它来保护各种类型的应用,包括 Blazor WebAssembly 应用程序。赶紧上手实践吧!

汪宇杰博客

Azure | .NET | 微软 MVP

无广告,不卖课,做纯粹的技术公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python notebook右侧网页_《Python web开发》笔记 一:网页开发基础

网页基础知识网页的构成网页由html、css和Javascript构成,html是框架,CSS是样式和装饰,JS则是各项功能实现。我们把网页的组成类比成一栋房子,Html相当于房子的结构,CSS相当于房子的装修装饰,JavaScript相当…

jQuery中this与$(this)区别

起初以为this和$(this)就是一模子刻出来。但是我在阅读时,和coding时发现,总不是一回事。 What is "this"? In many object-oriented programming languages, this (or self) is a keyword which can be used in instance methods to refer to the objec…

推荐几个超有趣的公众号

全世界只有3.14 % 的人关注了爆炸吧知识想要和别人有聊不完的话题?当然是多读书多看新闻了解新鲜有趣的事物啦如果你没有时间去阅读那么关注以下公号将会让你收获更多信息~长按下方二维码选择“识别图中二维码”订阅疯狂历史ID:fkhistory▼ 简介&#xf…

省钱之道--图解域域树域林根域的含义

如图:contoso这家公司的IT环境中有很多类型的IT资源,而目前这些IT资源都处于一个分散管理的状态中,这样无形中增加了contoso这家公司的管理成本,而且管理制度没有办法落实到实际的生产环境中去。那么,如何解决这个问题…

动态表单实现客户端二次过滤及字段汇总统计

最终效果动态表单 1、表格分录首行出现客户端二次过滤行2、表格分录最后一行出现汇总行实现代码转载于:https://www.cnblogs.com/fyq891014/p/4188779.html

SqlBulkCopy只支持SQL Server? EF Core实现支持多数据库类型的Bulk Copy

前言Microsoft SQL Server包含一个名为bcp的命令行实用工具,可以将较大文件快速大容量复制到SQL Server数据库的表或视图中,这种方法被称为Bulk Copy(批量复制)。Bulk Copy相比与循环插入有很大的性能优势,网上有很多测试文章,这里…

小小一招解决“INSERT EXEC 语句不能嵌套”的问题

先看代码CreateProcedureup_test1 asSelect1111--这里没有问题 goCreateProcedureup_test2 AScreatetable#tt (a Varchar(4)) insertinto#tt Execup_test1 goCreateProcedureup_test3 asCreateTable#ttt (b varchar(4)) InsertInto#ttt Execup_…

word2013插入excel对象报错_在Word文档中修改嵌入的Excel对象

好吧,我做到了!感谢Remou发布的链接。在我跨过最初的障碍后,它确实提供了一些支持。。。这是我的代码:WordApp.Documents.Open("C:\Report.docx")Dim iOLE As Int16Dim oSheet As ObjectDim oOLE As ObjectFor iOLE 1 To WordApp.ActiveDocument.Content.ShapeRange…

取消IE不允许下载文件的提示

首先,要在迅雷“配置”——监视——在“监视浏览器”勾选(要新版本的老版本没有此项,如果你使用的迅雷没有此项,点击帮助里面的“检查更新”升级既可),在设置里选“使用迅雷作为默认的下载工具”&#xff0…

让TA们告诉你,疫情当下如何更彪悍的成长

全世界只有3.14 % 的人关注了爆炸吧知识真正决定人与人之间的差距的,其实是我们对事物的见识与内心的格局,见识的深浅决定人生的深浅,格局的大小决定了人生之路是宽是窄。今天给大家推荐几个有深度、有想法的公众号,希望能够给你带…

WEB前端开发规范

为什么80%的码农都做不了架构师?>>> 一、文件命名规范 images //图片资源,如果项目多人开发里面还需要用子文件夹分开fonts //字体资源,一般就是特殊字体嵌入或者图标字体styles //CSS文件- app.css //reset样式,如果项目小…

Execute .NET Code under SQL Server 2005

http://www.codeproject.com/KB/database/Managed_Code_in_SQL.aspx转载于:https://www.cnblogs.com/OceanChen/archive/2010/07/22/1783091.html

MySQL调用mongodb事务回滚_SpringBoot整合MongoDB,在多数据源下实现事务回滚。

项目中用到了MongoDB,准备用来存储业务数据,前提是要实现事务,保证数据一致性,MongoDB从4.0开始支持事务,提供了面向复制集的多文档事务特性。能满足在多个操作,文档,集合,数据库之间…

Goreplay来做流量回放

最近做项目,用到goreplay来做流量回放,什么是goreplay?GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, load testing, monitoring and detailed analysis.本质上就是通…

硬盘知识学习(一)

硬盘相关常识(一)一、硬盘的组成硬盘粗略的讲,包括碟片、磁头,主轴、接口、缓存等组成。二、硬盘的三个基本概念1,什么是磁道(TRACK)。磁道首先是看不到的。他是在格式化的时候在盘面上划分出的…

“Python简直万能!”拜托快醒醒!

全世界只有3.14 % 的人关注了爆炸吧知识在程序员中,一直流传着“Python除了不会生孩子,什么都会”的传说,Python真的是万能语言?很多使用Python的小伙伴,坚信 Python 可以做任何事情。到底是不是真的如传说中那般万能&…

如何对 string 进行Base64编码,解码?

咨询区 Kevin Driedger:如何将指定的 string 编码成 base64。如何将 base64 解码成 string。回答区 andrew.fox:我来分享下对这个问题的处理吧:对 Encoding 类进行扩展,当然扩展方法还支持各种编码格式,不仅仅是 UTF8。…

python编程自然数表达式_[宜配屋]听图阁

普通的数学运算用这个纯抽象的符号演算来定义,计算结果只能在脑子里存在。所以写了点代码,来验证文章中介绍的演算规则。我们来验证文章里介绍的自然数及自然数运算规则。说到自然数,今天还百度了一下,据度娘说,1993年…

Oracle分区表常用命令

一、Oracle分区简介 ORACLE的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作…

linux--web服务器

WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 WWW 是 Internet的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。1.rpm -qa|grep httpd 查询服务是否安装…