首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Azure AD认证及其与用户的关系

Azure AD认证及其与用户的关系
EN

Stack Overflow用户
提问于 2022-10-13 12:13:28
回答 1查看 34关注 0票数 0

我有一个非常简单的网络核心应用程序,只有可用的身份验证方法是Azure。我没有任何本地帐户,我不想要除Azure AD以外的任何其他身份验证机制。

但是我想知道什么时候和谁创建/修改了任何记录。所以我需要我所有的表和我的用户之间的关系。但是我不能这样做,因为在使用Azure身份验证时,我没有任何保存用户信息的表。

为此,我扩展了IdentityUser,以查看当用户通过Azure进行身份验证时,它是否正在(至少)填充AspNetUserLogins表中的任何数据,但它当然不会这样做。

解决这个问题的最好方法是什么?

我是否应该创建一个包含用户姓名、电子邮件地址、objectId信息的表,在每次用户登录时检查从Azure到name和email address的任何更改?然后使用另一个元表在表之间创建关系?

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 09:24:41

对于Azure身份验证,它将允许您使用microsoft (xx@yy.onmicrosoft.com)在应用程序中签名,因此不需要在应用程序中设置用户管理模块。因此,它将为您提供读取用户信息的功能。

在您的需求中,您需要查看何时/谁修改任何记录。根据我的理解,您应该有一个可能包含以下列的表:id(primary key), operation_type, operation_target, timestamp, user_id...,这样您就可以知道谁在某些页面上做了一些操作。在插入行之前,必须获取用户信息。在用户登录应用程序后,您可以在Contorller中使用var user = HttpContext.User.Identity;获取用户信息。

如果您需要显示包含用户详细信息的操作细节。当数据库中有一个用户表时,可以单独使用user表查询记录表,但是当您使用AAD时,就没有用户表了。因此,当您需要查询用户详细信息时,应该使用Ms图形api来查询用户信息。就像

代码语言:javascript
代码运行次数:0
运行
复制
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
                .AddMicrosoftIdentityWebApp(Configuration)
                .EnableTokenAcquisitionToCallDownstreamApi(initialScopes)
                .AddMicrosoftGraph(Configuration.GetSection("DownstreamApi"))
                .AddInMemoryTokenCaches();

private readonly GraphServiceClient _graphServiceClient;

public HomeController(GraphServiceClient graphServiceClient)
{
    _graphServiceClient = graphServiceClient;
}

currentUser = await _graphServiceClient.Me.Request().GetAsync();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74055593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档