如何仅将Azure AD用于API调用等身份验证,而不使用.NET Core中的中间件

4nkexdtk  于 2022-12-30  发布在  .NET
关注(0)|答案(1)|浏览(97)

我有一个现有的应用程序,它有一个auth服务,生成一个JWT令牌来验证应用程序数据库中的用户名和密码。在构建声明时,我们根据数据库中的用户角色Map生成权限。
到目前为止,我们不希望依赖IT部门为特定于应用程序的用户创建角色,因此我们打算仅使用Azure AD进行身份验证,而不进行授权。
我们计划在AD验证成功后使用现有的JWT令牌生成器来生成令牌。请建议如何将AD验证用作API调用,以通过用户名和密码验证用户,成功后我们可以生成自己的JWT令牌。
无论在哪里,我都在寻找解决方案,基本上代表流,我觉得这不是根据我的期望。

8iwquhpp

8iwquhpp1#

您可以使用Azure AD来完成身份验证流程,一旦您从AD获得成功结果和JWT,您就可以通过令牌中的claims检索用户详细信息,然后根据您的应用程序数据库角色执行authorize逻辑。然后使用System.IdentityModel.Tokens.Jwt的JwtSecurityToken类准备一个新的JWT标记。(s)添加到此新令牌的声明部分。此令牌此后可由应用的其余部分用于执行RBAC逻辑。

相关问题