我可以在我的 Web API 解决方案中使用 Microsoft.AspNetCore.Identity Nuget 吗?
Can I use Microsoft.AspNetCore.Identity Nuget in my Web API solution?
我目前有一个 Blazor WASM 项目,它从 AspNetCore 5 应用服务获取它的 ID/Access 令牌,Azure 中托管了 IdentityServer4 IDP,利用 Microsoft Identity 进行用户存储。 IDP 中的 MS Identity 组件使用的实际数据库托管在 Azure SQL 中。我还有一个单独的 AspNetCore 5 web API 解决方案,该解决方案针对 IDP 进行了身份验证。
目前,新用户需要在 IDP 中使用 MS 身份注册 UI 进行注册。
现在我有一个请求,允许站点管理员为其组织创建初始用户(可能批量或批量),而不是让用户自己直接访问 IDP 中基于 MS 身份的注册 link .
所以我想我基本上可以在我的 API 中创建一个用户控制器,它连接到我的 IDP 通过 EntityFramework 使用的 Azure SQL 数据库。我希望我能以某种方式利用 Microsoft.AspNetCore.Identity 包来利用 Identity 项目的 类 和我的 AspNetCore 5 API 中用于 UserManager、RoleManager、IdentityUser 等的方法。但是,我这样做看不到如何在 Startup.cs --> ConfigureServices 中注册服务,这样我就可以在 API 的服务中通过 DI 实际访问 UserManager 和 RoleManager 工具(例如)。
我不想在此处实际验证登录或生成我自己的 Identity/Access 令牌。我只想 create/edit 用户,也许批量或分批。
我不认为使用...
services.AddIdentity<User, IdentityRole>()
.AddRoles<IdentityRole>()
.AddRoleManager<RoleManager<IdentityRole>>()
.AddEntityFrameworkStores<UsersDbContext>(); services.AddIdentity
在我的 API 的 startup.cs 中,因为这似乎会干扰...
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
...
...
});
我正在使用访问令牌进行身份验证。
我只是想我可以使用 Microsoft 的 AspNetCore Identity 包从我自己的 API 中访问 CRUD 用户帐户所需的用户和角色工具,也许是分批访问,而不是角色我自己的 类 和我的 API.
中的方法
有谁知道这是否可行,如果可行,如何在 DI 中正确注册 Microsoft AspNetCore Identity 服务?
我的建议是仅使用 AddJwtBearer() 来保护您的 API,并将身份信息放在不同的客户端 service/application 中。因此 API 所要做的就是接受带有访问令牌的请求。这将使您的解决方案更容易推理和理解。
保持API简单纯粹!
事实证明,有一个名为 AddIdentityCore 的 services.AddIdentity 版本,它提供了没有 ID/Access 令牌元素的用户管理实用程序。
将以下代码添加到 Startup.cs --> 我的 API 中的 ConfigureServices 成功了。
services.AddIdentityCore<User>()
.AddRoles<IdentityRole>()
.AddRoleManager<RoleManager<IdentityRole>>()
.AddEntityFrameworkStores<UsersDbContext>()
.AddDefaultTokenProviders();
.AddDefaultTokenProviders() 添加了生成回调中使用的代码的功能 link 当您在创建新帐户时发送确认电子邮件时。
使用 Startup 中的这段代码,我能够根据需要将 Usermanager 和 RoleManager 注入我的服务,并且仍然正确授权 OAuth2 令牌以安全访问 API 本身。
我目前有一个 Blazor WASM 项目,它从 AspNetCore 5 应用服务获取它的 ID/Access 令牌,Azure 中托管了 IdentityServer4 IDP,利用 Microsoft Identity 进行用户存储。 IDP 中的 MS Identity 组件使用的实际数据库托管在 Azure SQL 中。我还有一个单独的 AspNetCore 5 web API 解决方案,该解决方案针对 IDP 进行了身份验证。
目前,新用户需要在 IDP 中使用 MS 身份注册 UI 进行注册。
现在我有一个请求,允许站点管理员为其组织创建初始用户(可能批量或批量),而不是让用户自己直接访问 IDP 中基于 MS 身份的注册 link .
所以我想我基本上可以在我的 API 中创建一个用户控制器,它连接到我的 IDP 通过 EntityFramework 使用的 Azure SQL 数据库。我希望我能以某种方式利用 Microsoft.AspNetCore.Identity 包来利用 Identity 项目的 类 和我的 AspNetCore 5 API 中用于 UserManager、RoleManager、IdentityUser 等的方法。但是,我这样做看不到如何在 Startup.cs --> ConfigureServices 中注册服务,这样我就可以在 API 的服务中通过 DI 实际访问 UserManager 和 RoleManager 工具(例如)。
我不想在此处实际验证登录或生成我自己的 Identity/Access 令牌。我只想 create/edit 用户,也许批量或分批。
我不认为使用...
services.AddIdentity<User, IdentityRole>()
.AddRoles<IdentityRole>()
.AddRoleManager<RoleManager<IdentityRole>>()
.AddEntityFrameworkStores<UsersDbContext>(); services.AddIdentity
在我的 API 的 startup.cs 中,因为这似乎会干扰...
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
...
...
});
我正在使用访问令牌进行身份验证。
我只是想我可以使用 Microsoft 的 AspNetCore Identity 包从我自己的 API 中访问 CRUD 用户帐户所需的用户和角色工具,也许是分批访问,而不是角色我自己的 类 和我的 API.
中的方法有谁知道这是否可行,如果可行,如何在 DI 中正确注册 Microsoft AspNetCore Identity 服务?
我的建议是仅使用 AddJwtBearer() 来保护您的 API,并将身份信息放在不同的客户端 service/application 中。因此 API 所要做的就是接受带有访问令牌的请求。这将使您的解决方案更容易推理和理解。
保持API简单纯粹!
事实证明,有一个名为 AddIdentityCore 的 services.AddIdentity 版本,它提供了没有 ID/Access 令牌元素的用户管理实用程序。
将以下代码添加到 Startup.cs --> 我的 API 中的 ConfigureServices 成功了。
services.AddIdentityCore<User>()
.AddRoles<IdentityRole>()
.AddRoleManager<RoleManager<IdentityRole>>()
.AddEntityFrameworkStores<UsersDbContext>()
.AddDefaultTokenProviders();
.AddDefaultTokenProviders() 添加了生成回调中使用的代码的功能 link 当您在创建新帐户时发送确认电子邮件时。
使用 Startup 中的这段代码,我能够根据需要将 Usermanager 和 RoleManager 注入我的服务,并且仍然正确授权 OAuth2 令牌以安全访问 API 本身。