十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

Microsoft 标识平台应用类型和身份验证流 标识平台对各种新式的应用程序体系结构中的身份验证予以支持, 诸多此类体系结构是基于行业标准协议 OAuth 2.0 以及 , 借助 标识平台的身份验证库, 应用程序能够对标识开展身份验证进而获取令牌, 用以访问受保护的 API。本文介绍身份验证流及其应用方案。应用程序类别安全令牌可以从几种类型的应用程序中获取包括亦能够借助于在设备之上运行着的应用程序来获取令牌, 而这些设备是不存在浏览器的, 或者是在物联网IoT范畴内运行着的。以下部分介绍应用程序的类别。受保护的资源与客户端应用程序身份验证方案涉及两个活动有用户或没有用户大多数身份验证方案代表已登录的用户获取令牌。然而, 还有后台程序的应用存在。在这些特定场景之下, 应用程序凭借自身的身份去获取令牌, 并且此过程并不包括用户。单页应用、公共客户端和机密客户端应用程序要获取安全令牌, 能够借助多种类型的应用程序, 这些应用程序常常被划分成以下三种类别, 每一种应用程序会与不同的库以及对象搭配使用。机密客户端应用程序此类别中的应用包括登录受众可用的身份验证流随登录受众而不同, 有些流只适用于工作或学校帐户, 还有些流适用于工作或学校帐户, 以及个人帐户。有关详细信息请参阅。应用程序类型标识平台支持对于以下应用体系结构的身份验证应用程序运用不一样的身份验证流, 促使用户登录, 进而获取令牌, 以此来调用受保护的 API。单页应用程序诸多新式的 Web 应用, 是以客户端单页应用程序的形式构建而成的, 这些应用程序会运用 再者框架像是 、Vue 以及 React, 这些应用程序于 Web 浏览器当中运行。在身份验证特征这块, 单页应用程序和传统的服务器端Web应用不一样, 单页应用程序能够借助标识平台来让用户实现登录操作, 进而获取专门用于访问后端服务或者Web API的令牌, 标识平台给应用程序提供了两种授权类型。MSAL.js 2.xMSAL.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 B2CAzure 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.jsMSAL.jsMSAL.jsMSAL.jsMSAL.js单页应用MSAL.jsMSAL.jsMSAL.jsMSAL.jsMSAL.js用于登录用户的 Web 应用ASP.NET 核心MSAL 节点ASP.NET 核心MSAL 节点ASP.NET 核心MSAL 节点用于调用 Web API 的 Web 应用ASP.NET Core MSAL.NETMSAL JavaFlask MSALMSAL 节点ASP.NET Core MSAL.NETMSAL JavaFlask MSALMSAL 节点ASP.NET Core MSAL.NETMSAL JavaFlask MSALMSAL 节点用于调用 Web API 的 桌面应用MSAL.NETMSAL JavaMSALMSAL 节点MSAL.NETMSAL JavaMSALMSAL 节点MSAL.NETMSAL JavaMSALMSAL 节点MSAL.objc用于调用 Web API 的移动应用MSAL.NETMSAL.objcMSAL.安卓守护程序应用MSAL.NETMSAL JavaMSALMSAL 节点MSAL.NETMSAL JavaMSALMSAL 节点MSAL.NETMSAL JavaMSALMSAL 节点用于调用 Web API 的 Web APIASP.NET Core MSAL.NETMSAL JavaMSALMSAL 节点ASP.NET Core MSAL.NETMSAL JavaMSALMSAL 节点ASP.NET Core MSAL.NETMSAL JavaMSALMSAL 节点有关详细信息请参阅 标识平台身份验证库。后续步骤有关身份验证的详细信息请参阅
返回列表