C# 如何在Azure B2C上获取或编辑我的租户中已注册的用户

C# 如何在Azure B2C上获取或编辑我的租户中已注册的用户,c#,azure,xamarin.forms,azure-ad-b2c,C#,Azure,Xamarin.forms,Azure Ad B2c,我已经在Azure AD B2C中创建了租户,我已经设置了策略和范围。在Xamarin中,我已经设置了我的租户属性,我可以使用MSAL成功登录或注册我的应用程序。 现在,一旦我已经注册了我的应用程序,我想将一些数据从我的应用程序表单发送到AD B2C-Users中的用户数据。这是通过Azure AD Graph或Microsoft Graph完成的。我在文档中搜索,但没有任何东西指向我试图实现的目标 (我尝试过Microsoft Graph方法,但在github上的每次尝试和示例中,它都会告诉我

我已经在Azure AD B2C中创建了租户,我已经设置了策略和范围。在Xamarin中,我已经设置了我的租户属性,我可以使用MSAL成功登录或注册我的应用程序。 现在,一旦我已经注册了我的应用程序,我想将一些数据从我的应用程序表单发送到AD B2C-Users中的用户数据。这是通过Azure AD Graph或Microsoft Graph完成的。我在文档中搜索,但没有任何东西指向我试图实现的目标


(我尝试过Microsoft Graph方法,但在github上的每次尝试和示例中,它都会告诉我令牌无效,即使我重新要求它)

要以编程方式管理用户,必须使用Azure AD Graph API(而不是Microsoft Graph API)。这在这里有很好的记录:

对于自动、连续的任务,您应该使用某种类型的服务帐户,该帐户具有执行管理任务所需的特权。在Azure AD中,您可以通过注册应用程序并向Azure AD进行身份验证来完成此操作。这可以通过使用OAuth 2.0客户端凭据授予的应用程序ID来完成。在这种情况下,应用程序作为自身而不是用户来调用Graph API

在这里,您可以找到一个GitHub示例,它完全符合您的要求:


假设您正在谈论一个移动应用程序,那么您应该托管一个后端服务,该服务从您的用户接收信息,然后使用客户端凭据与Azure AD Graph API通信。不要直接从您的移动应用程序使用客户端凭据

如果我没记错的话,您需要使用客户端凭据流在后端进行更新。B2C文档中有一节介绍如何使用图形API。@juunas Right!我想我在提出这个问题之前没有考虑到这一点,因为我想看看是否还有其他的方法……很好的信息。就在那里!但是对于您提到的托管后端和处理客户端凭据,我提出了一个问题;在Azure AD B2C策略上使用用户属性不是更好吗?我的意思是,我确保在SigninoSignup策略(例如)中返回用户的ID,然后,使用该ID,我将所有需要的数据存储在一个数据库中,其中包含我需要的te必填字段,并在我的应用程序中使用该数据库。当然,您可以使用数据库来存储此类附加信息(因此,在AAD B2C之外)。但是,如果您希望将它们持久化到AAD B2C中,则必须通过自定义策略或Azure AD Graph API来编写它们