MSAL 有角度。网络

问题描述 投票:0回答:1

应用-

  1. .Net 6 Web API
  2. 角度前端
  3. SQL 数据库
  4. .Net 6 Windows 服务

我需要实现以下目标 - 授权代码流程,角度应用程序获取授权代码并将其发送到 .net 6 Web api,后者在内部通过授权代码获取访问令牌。 然后 .net 6 windows 服务在内部使用该令牌来调用图形 api,并且如果令牌过期而无需用户交互,也会刷新该令牌。

应用程序用户 - 用户可以是多租户

根据我目前的研究,微软文档展示了使用网络应用程序或角度完成身份验证代码流的方法,我不希望在前端完成此操作,我很困惑如何实现上述场景,如果有人可以指导我一条路会对我有很大帮助,谢谢。

oauth-2.0 outlook microsoft-graph-api msal-angular msal
1个回答
0
投票

前端(角度):

在 Angular 应用程序中实现用户可以登录的登录页面。 成功登录后,使用查询参数中的授权代码将用户重定向到您的 .NET 6 Web API。 使用 Angular 的 HttpClient 将授权代码发送到 .NET 6 Web API。 .NET 6 Web API:

实现一个从 Angular 应用程序接收授权代码的端点。 使用授权代码向身份提供商(Azure AD 或您正在使用的任何其他提供商)请求访问令牌。 安全地存储访问令牌,并实现需要身份验证的 API 端点。 .NET 6 Windows 服务:

应用程序的这一部分将需要服务帐户凭据才能在没有用户交互的情况下进行操作。 实施一种安全存储服务帐户凭据的机制。 使用存储的访问令牌(在 .NET Web API 步骤中获取)调用 Graph API。 代币管理:

由于想要在没有用户交互的情况下刷新令牌,因此需要实现令牌管理机制。 使用 Windows 服务中的后台任务定期检查访问令牌的过期情况。 如果令牌即将过期,请使用刷新令牌获取新的访问令牌。 多租户:

配置您的应用程序以支持多租户。 确保相关租户信息包含在身份验证和授权过程中。 请记住遵循安全最佳实践,例如安全存储机密、使用 HTTPS 进行通信以及实施适当的令牌验证和管理。此外,请确保彻底测试您的实施,以确保其按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.