簡體   English   中英

通過 Microsoft Graph API 創建新的 AD B2C 用戶

[英]Creating new AD B2C user via Microsoft Graph API

我決定使用Microsoft.Graph .NET SDK,而不是使用帶有手動 HTTP 請求的舊 Azure Graph API。

問題是當我嘗試使用一些電子郵件創建新用戶時,例如 areeller@gmail.com

var req = _client.Users.Request();
var userRes = req.AddAsync(new User()
{
    AccountEnabled = true,
    DisplayName = user.Email,
    MailNickname = user.GivenName,
    GivenName = user.GivenName,
    Surname = user.SurName,
    UserPrincipalName = user.Email,
    PasswordProfile = new PasswordProfile()
    {
        Password = user.Password,
        ForceChangePasswordNextSignIn = true
    },
    PasswordPolicies = "DisablePasswordExpiration, DisableStrongPassword",
    Country = user.Country,
    City = user.City,
    PostalCode = user.ZipCode
}).Result;

我收到一個異常,顯示“屬性 userPrincipalName 無效” 在此處輸入圖片說明

當我將租戶作為域使用電子郵件時,我只能創建用戶,例如areller@mytenant.onmicrosoft.com但這不是我需要的。 我需要能夠以編程方式創建實際的外部用戶。

使用 Azure Graph API 它可以工作 有沒有辦法讓它與 Microsoft Graph API 一起工作?

根據https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management上的 Github。 現在您可以使用 Microsoft Graph 為 Azure AD B2C 創建新用戶,代碼來自https://github.com/Azure-Samples/ms-identity-dotnetcore-b2c-account-management/blob/master/src/Services/用戶服務.cs

var result = await graphClient.Users
            .Request()
            .AddAsync(new User
            {
                GivenName = "Casey",
                Surname = "Jensen",
                DisplayName = "Casey Jensen",
                Identities = new List<ObjectIdentity>
                {
                    new ObjectIdentity()
                    {
                        SignInType = "emailAddress",
                        Issuer = tenantId,
                        IssuerAssignedId = "casey.jensen@example.com"
                    }
                },
                PasswordProfile = new PasswordProfile()
                {
                    Password = Helpers.PasswordHelper.GenerateNewPassword(4, 8, 4)
                },
                PasswordPolicies = "DisablePasswordExpiration",
                AdditionalData = extensionInstance
            });

目前,不能使用 Microsoft Graph 在 Azure AD B2C 租戶中創建用戶,因為它不支持 Azure AD B2C 使用的一些用戶屬性(包括creationTypesignInNames屬性)。

為此,您必須使用 Azure AD Graph

注意:在 Azure AD B2C 租戶中創建用戶時,如果將creationType屬性設置為LocalAccount ,則不必設置userPrincipalName屬性,因為它是包含外部用戶電子郵件地址的signInNames屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM