我正在尝试创建一个java控制台应用程序,将用户从本地sql数据库批量上载到azure b2c active directory。我创建了一个json文件
{
"users": [
{
"displayName": "Amanda Polly",
"givenName": "Amanda",
"surname": "Polly",
"extension_user_type": "user",
"identities": [
{
"signInType": "emailAddress",
"issuerAssignedId": "amandapolly@gmail.com"
}
],
"extension_timezone": "PST",
"extension_locale": "en-US",
"extension_tenant": "EG1234"
},
{
"displayName": "Lowa Doe",
"givenName": "Lowa",
"surname": "Doe",
"extension_user_type": "user",
"identities": [
{
"signInType": "userName",
"issuerAssignedId": "lowadow123"
}
],
"extension_timezone": "PST",
"extension_locale": "en-US",
"extension_tenant": "EG1234"
}
]
}
这些是我想在b2c上创建的用户,我需要帮助来启动这个,我必须使用microsoft graph api,有人可以指导我通过,我阅读了关于tokens和clientid的内容,但无法理解它。
它长时间处于这种状态。反序列化为json
1条答案
按热度按时间yvt65v4c1#
要调用microsoft graph,您的应用程序必须从microsoft identity platform获取访问令牌。访问令牌包含有关您的应用程序的信息以及它对通过microsoft graph提供的资源和API的权限。若要获取访问令牌,您的应用程序必须在microsoft identity platform中注册,并由用户或管理员授权才能访问它所需的microsoft graph资源。
常见的身份验证流有两种:客户端\凭证流和授权\代码流。前者是app only,后者是app+user。
这里我以“客户机凭证流”为例。
首先你需要注册你的应用程序。这里有更详细的步骤。记住添加并同意
User.ReadWrite.All
azure广告应用程序中的应用程序权限。添加权限后,不要忘记单击“grant admin approvement for{your tenant}”(请参见下面的内容)。
必须创建客户机机密(一旦创建了它就记录下来,因为以后不会看到它)。
还要记住记录应用程序id(客户机id)以备以后使用。
现在,您可以将microsoft graph java sdk安装到项目中,并实现如下所示的客户端凭据提供程序:
你应该有
clientId
以及clientSecret
从前面的步骤。scopes
应该是"https://graph.microsoft.com/.default"
.tenant
应为b2c租户的租户id。endpoint
是微软的国家云。请看这里的示例。然后可以使用以下代码创建用户。请参阅此处的参考资料。
根据需要修改代码。
此外,如果要添加扩展属性,需要参考create extensionproperty。您应该首先创建extensionproperty,然后创建具有扩展属性的用户。看看我的另一个逻辑答案(只需在“then create a claimsmappingpolicy:”之前查看内容