Нет, вы не можете. Вы должны запросить с 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"
}
}
Очки для запоминания:
- Получите соответствующий токен, в котором арендатор вы собираетесь создать, пользователь
- Нужен запросить разрешение
userPrincipalName
должно следовать как
UserName@tenant-value.onmicrosoft.com
"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"
}
Ответ:
Примечание: Если перейти к 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
на свой портал, используя указанный выше запрос. Смотрите снимок экрана ниже: