允许第三方客户端web应用程序(而不是用户)以及我自己的web客户端应用程序访问我的web api的最佳方式是什么



我一直在研究执行AuthN&一个新项目的AuthZ,但还没有找到任何适合该项目要求的东西。

我有一个.net核心API项目,最初只需要由我的Razor Pages web应用程序(单独的项目)访问。

在不久的将来,我还需要让第三方应用程序可以访问API(因此,如果用户登录此第三方的应用程序,他可以自动访问我的API,而无需再次输入UN/PW-这可能需要第三方团队的一些开发)。

我想在我的Razor Pages Web应用程序中为用户扮演不同的角色;第三方应用程序中的用户(出于授权目的)。

API和Razor Pages应用程序将在Azure中运行。

我想知道是否有一种解决方案可以在API端使用,它将处理来自我的Razor页面的请求(优先使用从B2C身份验证过程中检索到的令牌)和来自其他第三方应用程序的请求。

我已经考虑过生成唯一的JWT,将其发送到第三方应用程序以及我的Razor Pages web应用程序,并在API端使用.net核心jwtBearer身份验证设置来允许身份验证/授权(可能会将用户角色信息作为声明发送)。

不过,这似乎不是一个好的解决方案,因为这些JWT值将被硬编码,不会更新。

请告诉我你认为什么是好的解决方案。

谢谢。

您可能需要考虑提供开箱即用身份验证的Azure AD。Azure AD可用于端到端保护。你只需要通过Azure AD保护你的Web API,任何需要访问你的API的客户端都必须通过Azure AD的身份验证,并将获得访问你的WebAPI的令牌。https://learn.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-auth-aad。要管理授权,您可以考虑角色https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims

最新更新