Можем ли мы создать локальную учетную запись пользователя с адресом Gmail? - PullRequest
1 голос
/ 30 мая 2019

Мы используем ADAL.Net для создания пользователей в Azure AD.используя SinginNames, мы можем предоставить любой адрес электронной почты (электронная почта gmail или не домен) в качестве имени пользователя для создания учетной записи Azure AD Local.

когда мы пытаемся сделать то же самое с помощью Microsoft Graph (MSAL.Net), мыне удалось создать пользователя:

Code: Request_BadRequest
Message: Property userPrincipalName is invalid.

Как мы можем создать адрес Gmail в качестве имени пользователя, используя Microsoft Graph или клиентскую библиотеку Microsoft Graph?

Новая учетная запись должна бытьлокальная учетная запись пользователя, а не гость.

var user = new User
{
    AccountEnabled = true,
    DisplayName = "displayName-value",
    MailNickname = "mailNickname-value",
    UserPrincipalName = "vetrivelmp1@gmail.com",
    PasswordProfile = new PasswordProfile
    {
    ForceChangePasswordNextSignIn = true,
    Password = "Test123!@#"
    }
};

var graphClient = await _msGraphHelper.GetMsGraphClientAsync();
var createdUser = await graphClient
    .Users
    .Request()
    .AddAsync(user);

1 Ответ

0 голосов
/ 30 мая 2019

Нет, вы не можете. Вы должны запросить с tenant specific email следующий образец:

URL запроса: https://graph.microsoft.com/v1.0/users

{
  "accountEnabled": true,
  "displayName": "KironTestDisplayName",
  "mailNickname": "KironTestNickName",
  "userPrincipalName": "KironTestingCreateUserWithMember@MyTenant.onmicrosoft.com",
  "userType":"guest",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "Test@pass420"
  }
}

Очки для запоминания:

  1. Получите соответствующий токен, в котором арендатор вы собираетесь создать, пользователь
  2. Нужен запросить разрешение
  3. userPrincipalName должно следовать как UserName@tenant-value.onmicrosoft.com

  4. "userType": "guest" или "Member" Вы можете добавить

Примечание: Почта должна быть похожа на myUser@Mytenant.onmicrosoft.com В противном случае вы можете столкнуться с ошибкой 400 запросов, например Property userPrincipalName is invalid

Ваш случай:

Если вы хотите создать пользователя с помощью gmail account, тогда шаблон запроса необходимо изменить. Вы должны запросить API приглашения , как показано ниже:

URL запроса: https://graph.microsoft.com/v1.0/invitations

Тело запроса:

{
  "invitedUserEmailAddress": "TestGmailUser@gmailUser",
  "inviteRedirectUrl": "https://myapp.com"
}

Ответ:

enter image description here

Примечание: Если перейти к azure portal, вы увидите, что не можете добавить gmail user в качестве члена домена, добавленного в качестве гостя после приглашения. Так это почему вам нужно выше шаблон запроса. Надеюсь, что вы сейчас ясны.

SDK пользователя Gmail:

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var invitation = new Invitation
{
    InvitedUserEmailAddress = "TestGmailUser@gmailUser",
    InviteRedirectUrl = "https://myapp.com"
};

await graphClient.Invitations
    .Request()
    .AddAsync(invitation);

Проверка портала Azure:

Я успешно добавил gmail user на свой портал, используя указанный выше запрос. Смотрите снимок экрана ниже:

enter image description here

...