【问题标题】:Can't create custom attributes in Azure AD B2C with asp.net core Graph API无法使用 asp.net core Graph API 在 Azure AD B2C 中创建自定义属性
【发布时间】:2020-07-16 07:02:13
【问题描述】:

在我的 Azure B2C 目录中,我创建了一个名为 EmployeeId 的自定义属性。我正在使用 Microsoft Graph 库创建用户。我按照这个GitHub Example的例子。

我的实际用户创建代码如下所示:

public async Task InsertEmployee(Employee employee) 
        {
            IDictionary<string, object> extensionInstance = new Dictionary<string, object>();
            extensionInstance.Add("EmployeeId", employee.EmployeeId.ToString());

            var user = new B2cUserModel
            {
                DisplayName = $"{employee.EmployeeFirstName} {employee.EmployeeLastName}",
                GivenName = employee.EmployeeFirstName,
                Surname = employee.EmployeeLastName,
                Password = employee.Password,
                Identities = new List<ObjectIdentity> {
                    new ObjectIdentity {
                        SignInType = "emailAddress",
                        IssuerAssignedId = employee.EmployeeEmail
                    }
                },
                EmployeeId = employee.EmployeeId.ToString()
                AdditionalData = extensionInstance
            };

            user.SetB2CProfile(_domain);
            await _client.Users.Request().AddAsync(user);
        }
    }

但每当我通过代码或通过 user_flow 检索用户详细信息时,EmployeeId 始终为空。谁能发现我做错了什么?

【问题讨论】:

  • 嗨 lenny,你试过我的解决方案了吗?如果有任何进一步的问题,请告诉我。
  • 嘿艾伦,是的,我确实尝试了您的解决方案。它告诉我没有名为“extension_{client_id}_EmployeeId”的属性。 (我实际上并没有放 {client_id},而是实际的客户 ID)。我的时间不够用了,所以我暂时将employeeId 放在了职称中。当我有时间时,我会回来再看看这个。感谢您的建议。
  • 请在应用注册中找到 WebApp-GraphAPI-DirectoryExtensions 应用。我认为您输入了错误的应用 ID。

标签: c# azure microsoft-graph-api azure-ad-b2c


【解决方案1】:

Azure B2C 中的自定义属性以如下格式存储在 Graph 中:extension_{client id of WebApp-GraphAPI-DirectoryExtensions}_{custom attribute}。见参考here

您可以在 Azure 门户 -> 应用注册中找到 WebApp-GraphAPI-DirectoryExtensions Azure AD 应用的客户端 ID。

所以在这种情况下,你应该使用:

extensionInstance.Add("extension_{client id of WebApp-GraphAPI-DirectoryExtensions}_EmployeeId", employee.EmployeeId.ToString());

【讨论】:

    猜你喜欢
    • 2018-03-23
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2021-02-17
    • 1970-01-01
    相关资源
    最近更新 更多