将 .Net Core Identity 和 OIDC 与多个 .Net Core Web API 结合使用
Posted
技术标签:
【中文标题】将 .Net Core Identity 和 OIDC 与多个 .Net Core Web API 结合使用【英文标题】:Using .Net Core Identity and OIDC with Multiple .Net Core Web API 【发布时间】:2021-11-24 17:32:26 【问题描述】:我需要构建一个前端 (ReactJs) 与后端完全分离的应用程序,后端是使用 Asp.Net Core v5(或更高版本)Web API 构建的。
用户将使用带有 Azure Active Directory 的 OIDC 和本地数据库登录来登录应用程序。
出于性能原因,我想将一些 API 拆分到不同的项目中,并最终将它们安装在不同的服务器上。 我想知道我将放在端点上的 [authorize] 属性是否会像往常一样工作,即使它们在不同的环境中运行。
请注意,它们可能是不同的服务器或不同的 AWS Lambda 函数,但在这两种情况下,它们都可以被视为不同的可执行文件。
这是可能的还是我走错了方向?
【问题讨论】:
这是完全可能的(并且很常见),只要所有 API(可能还有 Lambda,取决于它们的使用方式)针对同一个 Azure Active Directory 实例进行身份验证 @CamiloTerevinto 感谢您的回复。是的,肯定会是同一个 AAD 实例。那么使用 aps.net 身份进行本地登录呢?它也应该没有问题,对吧? 是的,您可以使用本地登录和 AAD 设置 ASP.NET Core 标识而不会出现问题 :) 只需确保您的令牌始终具有必要的范围(以调用系统中的其他 API)跨度> 【参考方案1】:请注意,它们可能是不同的服务器或不同的 AWS Lambda 函数,但在这两种情况下,它们可以被认为是不同的 可执行文件。
这是可能的还是我走错了方向?
谢谢@ Camilo Terevinto,发布您的建议作为帮助其他社区成员的答案。
“这是完全可能的(并且很常见),只要所有 API(可能还有 Lambda,取决于它们的使用方式)都针对同一个 Azure Active Directory 实例进行身份验证。
我们可以设置 ASP。 NET Core Identity 与本地登录和 AAD 没有任何问题。只需确保我们的令牌始终具有必要的范围(以调用我们系统中的其他 API)”
更多信息请参考以下链接:
所以线程:How to use both Azure AD authentication and Identity on ASP.NET Core
博客:Token Based Authentication using ASP. NET Web API 2, Owin, and Identity
【讨论】:
请停止使用人们的 cmets 并将它们变成答案。这是剽窃。你已经解决了其他几个问题。如果有人留下评论,这意味着他们可能认为这不足以成为一个答案,或者这只是一个建议。下一次,如果确实是一个答案,鼓励他们发布一个正确的答案。但是(反复)从别人的内容中获取答案并不是可行的方法。以上是关于将 .Net Core Identity 和 OIDC 与多个 .Net Core Web API 结合使用的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net Core Identity 使用 JWT 中的哪些信息来将令牌授权为有效?
Asp.Net Core 6 将 Bootstrap 添加到脚手架 Identity _Layout.cshtml
ASP.Net Core 如何在 EF Core 和 Identity 中获取用户角色