当前位置: 首页 > news >正文

Microsoft 标识平台应用类型和身份验证流

标识平台对各种新式的应用程序体系结构中的身份验证予以支持, 诸多此类体系结构是基于行业标准协议 OAuth 2.0 以及 , 借助 标识平台的身份验证库, 应用程序能够对标识开展身份验证进而获取令牌, 用以访问受保护的 API。

本文介绍身份验证流及其应用方案。

应用程序类别

安全令牌可以从几种类型的应用程序中获取,包括:

亦能够借助于在设备之上运行着的应用程序来获取令牌, 而这些设备是不存在浏览器的, 或者是在物联网(IoT)范畴内运行着的。

以下部分介绍应用程序的类别。

受保护的资源与客户端应用程序

身份验证方案涉及两个活动:

有用户或没有用户

大多数身份验证方案代表已登录的用户获取令牌。

然而, 还有后台程序的应用存在。在这些特定场景之下, 应用程序凭借自身的身份去获取令牌, 并且此过程并不包括用户。

单页应用、公共客户端和机密客户端应用程序

要获取安全令牌, 能够借助多种类型的应用程序, 这些应用程序常常被划分成以下三种类别, 每一种应用程序会与不同的库以及对象搭配使用。

机密客户端应用程序:此类别中的应用包括:

登录受众

可用的身份验证流随登录受众而不同, 有些流只适用于工作或学校帐户, 还有些流适用于工作或学校帐户, 以及个人帐户。

有关详细信息,请参阅。

应用程序类型

标识平台支持对于以下应用体系结构的身份验证:

应用程序运用不一样的身份验证流, 促使用户登录, 进而获取令牌, 以此来调用受保护的 API。

单页应用程序

诸多新式的 Web 应用, 是以客户端单页应用程序的形式构建而成的, 这些应用程序会运用 再者框架(像是 、Vue 以及 React), 这些应用程序于 Web 浏览器当中运行。

在身份验证特征这块, 单页应用程序和传统的服务器端Web应用不一样, 单页应用程序能够借助标识平台来让用户实现登录操作, 进而获取专门用于访问后端服务或者Web API的令牌, 标识平台给应用程序提供了两种授权类型。

MSAL.js (2.x)MSAL.js (1.x)

以用户身份登录的 Web 应用

为了帮助保护以用户身份登录的 Web 应用:

有关详细信息,请参阅 在示例 Web 应用中登录用户。

存在这样一种 Web 应用, 它是以用户的身份来进行登录操作的, 并且也是以用户的身份去调用有着 Web API 的相关内容的。

假定要凭借用户身份经由 Web 应用去调用 Web API, 那就得采用授权代码流, 还要于令牌缓存里存放所获得的令牌。在必要之时, MSAL 能够刷新令牌, 并且控制器能够从缓存中毫无提示地获取令牌。

为获取详细信息, 需参考调用 Web API 的那个 Web 应用呢标点符号。

以登录用户身份调用 Web API 的桌面应用

欲让桌面应用得以凭借登录用户身份去调用Web API, 那就得运用MSAL的交互式令牌获取方式。运用这些交互方式能够对登录UI体验予以控制。MSAL借助Web浏览器来开展此种交互。

对于那种, 已经加入域, 或者由Entra ID管理计算机上的托管应用程序, 存在着另一种会出现的情况。这些应用程序能够凭借集成身份验证,以毫无提示的样子去获取令牌。

运行于无浏览器设备之上的应用程序, 依然能够代表用户去调用 API。倘若要开展身份验证, 那么用户必须登录到具备 Web 浏览器的另一台设备。这种方案需要采用设备代码流。

使用用户名/密码流能够在公共客户端应用程序里进行, 然而我们并不提倡采用。在某些情形(像是)之内仍然对该流有所需求。

用户名/密码流的运用会对应用程序加以限制, 使其不再被视作安全的。比如说, 应用程序没办法凭借需要用到Entra ID里多重身份验证或者条件访问的用户身份去登录。而且, 应用程序也没法从单一登录中获取益处。采用用户名/密码流来进行身份验证的这种方式违背了新式身份验证的原则, 只是基于遗留原因才被提供的。

在桌面应用里, 要是期望令牌缓存具备持久性, 那就得对令牌缓存序列化进行自定义。通过施行双重令牌缓存序列化, 能够运用后向兼容以及前向兼容的令牌缓存。

有关详细信息,请参阅调用 Web API 的桌面应用。

以交互式用户身份调用 Web API 的移动应用

类似于桌面应用, 移动应用调用那种用于获取用于调用 Web API 的令牌的 MSAL 的交互式令牌获取方法 , 来获取令牌。

MSAL iOS以及MSAL默认采用系统Web浏览器;然而, 你能够指示它们转而使用嵌入式Web视图;存在一些具体情况是依据移动平台的, 具体而言是iOS或者。

一些方案, 像那种跟设备 ID 或者设备注册关联的条件访问之类的方案, 是需要在设备这儿安装一个中介的。中介有的例子是具有特性的公司门户, 还有某些特定的具备特点的, 以及 iOS 上面存在的具有特征的。

有关详细信息,请参阅调用 Web API 的移动应用。

注意

运用MSAL iOS或者MSAL的移动应用程式能够施行保护策略, 举例来说, 该策略能够阻拦用户复制受保护的文本, 移动应用由其托管, 被其识别为托管应用, 有关详细信息, 需参阅App SDK概述。

应用所使用的 SDK, 同 MSAL 库相互独立, 它能够依靠自身, 去和 Entra ID 展开数据交互。

受保护的 Web API

去启用标识平台终结点来对Web服务予以保护, 像是应用的API这般, 借助访问令牌去调用受保护的Web API, 此令牌助力保护API的数据, 还能对传入请求做身份验证, Web API调用方会于HTTP请求的授权标头里追加一个访问令牌。

若要对ASP.NET或ASP.NET Core web API予以保护, 那就需验证访问令牌。能够借助ASP.NET JWT中间件来开展此种验证。验证是由适用于.NET的扩展库达成的, 而非由MSAL.NET完成。

有关详细信息,请参阅受保护的 Web API。

以用户身份调用另一个 Web API 的 Web API

为了让受保护的Web API能够依据用户身份去对另一个Web API进行调用, 应用是需要去获得下游Web API的令牌的, 这样的调用有时候会被称作服务到服务调用, 而那个调用其他Web API的Web API是要去提供自定义缓存序列化的。

若是涉及到详细的信息, 那么请去查阅调用Web API的那个Web API。

在守护程序名称中调用 Web API 的守护程序应用

包含长时得以运行进程的应用, 或者是无需用户进行交互就能够运行的应用, 还需要借助某一种方式去访问安全的Web API。 属于此类的应用可以运用应用的标识来开展身份验证, 进而获取令牌。 应用会使用客户端的机密或者证书, 以此来证明自身的身份。

能编写这般采用 MSAL 里的获取方式来获取调用应用令牌的守护程序应用, 这些方法需把客户端机密增添至 Entra ID 里的应用注册处, 而后,该应用会与被调用守护程序分享机密, 此类机密的例子有应用程序密码、证书断言以及客户端断言。

如需了解相关详细信息, 那么请去查阅调用Web API的守护程序应用, 如此这般。

场景和受支持的身份验证流程

通过身份验证流来使请求令牌之运用规划得以实现的该项目安排。于其应用规划与身份验证流之间并不存有一对一的映射关联。

跟获取令牌的方案相关的内容, 还会被映射到OAuth 2.0身份验证流, 关于详细的信息, 要去参阅标识平台上的OAuth 2.0以及协议。

场景详细情景演示OAuth 2.0 流程和许可目标受众

单页应用

采用 PKCE 的授权代码

工作的帐户, 或者学校的帐户, 还有个人的帐户, 以及Azure B2C(Azure AD B2C)。

单页应用

隐式

工作或学校帐户、个人帐户和 Azure B2C (Azure AD B2C)

用于登录用户的 Web 应用

授权代码

工作或学校帐户、个人帐户和 Azure AD B2C

用于调用 Web API 的 Web 应用

授权代码

工作或学校帐户、个人帐户和 Azure AD B2C

用于调用 Web API 的 桌面应用

使用授权代码和 PKCE 的交互式方法

工作或学校帐户、个人帐户和 Azure AD B2C

集成身份验证

工作或学校帐户

资源所有者密码

工作或学校帐户和 Azure AD B2C

无浏览器应用程序

设备代码

具备工作性质的帐户, 或者是学校范畴的帐户, 还有个人性质的帐户, 然而并非是那种Azure AD B2C类型的帐户。

用于调用 Web API 的移动应用

使用授权代码和 PKCE 的交互式方法

工作或学校帐户、个人帐户和 Azure AD B2C

资源所有者密码

工作或学校帐户和 Azure AD B2C

调用 Web API 的守护程序应用

客户端凭据

不涉及用户且仅用于 Entra 组织的仅限应用的权限

用于调用 Web API 的 Web API

代表

工作或学校帐户和个人帐户

方案和受支持的平台和语言

身份验证库支持多种平台:

你还可以使用多种语言来构建你的应用程序。

于下表的“”列里, 每当谈及.NET 之际, 意味着.NET 同样能够使用。省略掉后者是用以防止表格过度繁杂。

场景操作系统

单页应用

MSAL.js

MSAL.js

MSAL.js

MSAL.js

MSAL.js

单页应用

MSAL.js

MSAL.js

MSAL.js

MSAL.js

MSAL.js

用于登录用户的 Web 应用

ASP.NET 核心

MSAL 节点

ASP.NET 核心

MSAL 节点

ASP.NET 核心

MSAL 节点

用于调用 Web API 的 Web 应用

ASP.NET Core + MSAL.NET

MSAL Java

Flask + MSAL

MSAL 节点

ASP.NET Core + MSAL.NET

MSAL Java

Flask + MSAL

MSAL 节点

ASP.NET Core + MSAL.NET

MSAL Java

Flask + MSAL

MSAL 节点

用于调用 Web API 的 桌面应用

MSAL.NET

MSAL Java

MSAL

MSAL 节点

MSAL.NET

MSAL Java

MSAL

MSAL 节点

MSAL.NET

MSAL Java

MSAL

MSAL 节点

MSAL.objc

用于调用 Web API 的移动应用

MSAL.NET

MSAL.objc

MSAL.安卓

守护程序应用

MSAL.NET

MSAL Java

MSAL

MSAL 节点

MSAL.NET

MSAL Java

MSAL

MSAL 节点

MSAL.NET

MSAL Java

MSAL

MSAL 节点

用于调用 Web API 的 Web API

ASP.NET Core + MSAL.NET

MSAL Java

MSAL

MSAL 节点

ASP.NET Core + MSAL.NET

MSAL Java

MSAL

MSAL 节点

ASP.NET Core + MSAL.NET

MSAL Java

MSAL

MSAL 节点

有关详细信息,请参阅 标识平台身份验证库。

后续步骤

有关身份验证的详细信息,请参阅:

http://www.cnnetsun.cn/news/4068125.html

相关文章:

  • LaTeX分段编译实战:用input、include与includeonly提升大型文档编译效率
  • iperf3 Windows版上手指南:5分钟测出你的真实网速
  • RPG-Maker-MV-Decrypter 完整指南:三步打开 RPG Maker 加密素材宝箱(附避坑清单)
  • AI变声从零到一:开源RVC WebUI,10分钟语音就能训练专属音色模型
  • 大模型工具调用新范式:代码优先策略提升AI代理准确性
  • C#枚举绑定ComboBox:告别硬编码,实现类型安全与优雅取值
  • Neo-Async 流程控制一文读懂:parallel、series 与 waterfall 的完整教程
  • 终结磁盘空间紧张局面,针对性处理重复、无用文件
  • Search完全指南:AI的“实时信息获取”能力
  • 多核处理器技术解析:从缓存一致性问题到异构计算演进
  • 电机选型与分类全解析:从原理到实战应用
  • AI知识库(Knowledge Base)核心知识点详解
  • Linux系统管理与运维进阶实战指南
  • 番茄小说下载工具完全指南:5种导出格式、3种运行方式,把心爱小说永久留在本地
  • 告别微信压缩图:5分钟搭建Windows与iPhone的跨平台文件传输通道
  • AI服务器狂飙:算力大周期下,不止是GPU的狂欢
  • pgrust 命令行速查手册:从启动到关闭的常用命令大全
  • MTKClient 联发科刷机一次讲透:从备份救砖到刷入自定义系统的实操路线
  • MiniMax-Music-3 代码实现原理:从文本编码到波形输出的完整生成流水线
  • C语言位操作
  • 杰理之AUX打断播放提示音死机问题【篇】
  • ANARCI抗体序列编号实战指南:一条命令打通从单条序列到万级批量的全流程
  • 游戏串流新手的周末实录:用 Sunshine 免费把 PC 游戏搬进客厅
  • G-Helper华硕笔记本性能调校终极指南:一文告别Armoury Crate的臃肿与卡顿
  • NetKet 源码架构解析:JAX 之上的三层模块设计,读懂量子库的骨架
  • Markdown 浏览器预览一步到位:markdown-viewer 插件配置指南
  • electron-browser-shell 核心源码解析:electron-chrome-extensions 如何在 Electron 中落地 Chrome 扩展 API
  • AI模型评测实战指南:从通用基准到专项任务,构建有效评估体系
  • ModernHttpClient iOS实战:基于NSURLSession的高性能网络客户端完整解析
  • 免费开源的英雄联盟游戏效率工具 League Akari:完整上手与配置指南