哪个选项更好,MSAL.js 或 Web API 上的 OpenIdConnect nuget 包
Which option is better, MSAL.js or OpenIdConnect nuget package at Web API
我们有一个 SharePoint 发布站点,可以匿名访问托管在 Internet 上。根据最新要求,我们需要为门户中的某些页面实现用户登录(AzureAD、Microsoft 个人和工作帐户等)。
我们提出了两种方法:
- 使用 msal.js 文件。在客户端本身实现用户登录并使用用户令牌调用合作伙伴中心 Web API 以检查用户的有效性并执行所需的操作。
- 在 Web API 端创建一个带有 Microsoft.Owin.Security.OpenIdConnect nuget 包的 Web API 来实现登录,并使用它来执行从后端检索和修改数据所需的操作.
哪种方法最适合我们的场景?
还有其他方法可以实现吗?
这两种方法的区别在于它们使用不同的流程与身份数据提供者集成。
使用服务器端代码的第二种方法是使用授权代码授予流程,这是一个与身份数据提供者交互的标准流程。
使用 msal.js 的第一种方法是使用隐式流。是一种简化的授权代码流,针对使用脚本语言(例如 JavaScript)在浏览器中实现的客户端进行了优化。在隐式流程中,不是向客户端颁发授权码,而是直接向客户端颁发访问令牌。
使用 OAuth 2.0 的流程的更多详细信息在 OAuth 2.0 Authorization Framework 中定义。
我们有一个 SharePoint 发布站点,可以匿名访问托管在 Internet 上。根据最新要求,我们需要为门户中的某些页面实现用户登录(AzureAD、Microsoft 个人和工作帐户等)。
我们提出了两种方法:
- 使用 msal.js 文件。在客户端本身实现用户登录并使用用户令牌调用合作伙伴中心 Web API 以检查用户的有效性并执行所需的操作。
- 在 Web API 端创建一个带有 Microsoft.Owin.Security.OpenIdConnect nuget 包的 Web API 来实现登录,并使用它来执行从后端检索和修改数据所需的操作.
哪种方法最适合我们的场景? 还有其他方法可以实现吗?
这两种方法的区别在于它们使用不同的流程与身份数据提供者集成。
使用服务器端代码的第二种方法是使用授权代码授予流程,这是一个与身份数据提供者交互的标准流程。
使用 msal.js 的第一种方法是使用隐式流。是一种简化的授权代码流,针对使用脚本语言(例如 JavaScript)在浏览器中实现的客户端进行了优化。在隐式流程中,不是向客户端颁发授权码,而是直接向客户端颁发访问令牌。
使用 OAuth 2.0 的流程的更多详细信息在 OAuth 2.0 Authorization Framework 中定义。