Пригласить пользователя в качестве члена - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь обновить свое существующее приложение новыми функциями. Приложение использует Azure B2B API и приглашает пользователей в качестве гостей. Это работает хорошо, но вызывает проблемы с некоторыми электронными письмами, которые помечены как освоенные у их арендаторов.

Есть ли способ пригласить пользователя с типом пользователя = участник?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Просто второй ответ Тома.

Да, вы можете пригласить пользователя стать участником вашего Арендатора. Но я не рекомендую вам делать это, если это не обязательно.

Решение:

от PowerShell

New-AzureADMSInvitation -InvitedUserEmailAddress "test@contoso.com" -InviteRedirectUrl https://myapps.microsoft.com -InvitedUserDisplayName 'TestUser' -InvitedUserMessageInfo $messageInfo -InvitedUserType member -SendInvitationMessage $true

от Microsoft Graph API

POST https://graph.microsoft.com/beta/invitations

Content-Type: application/json

Content-Length: 161

{"invitedUserEmailAddress":"test@contoso.com","sendInvitationMessage":true,"inviteRedirectUrl":"http://myapps.onmicrosoft.com","invitedUserType":"member"}
0 голосов
/ 07 мая 2018

Есть ли способ пригласить пользователя с типом пользователя = участник?

Да, мы можем сделать это с Microsoft.Graph . Тип по умолчанию - Гость, мы могли бы изменить его с помощью следующего кода. Я тестирую его с разрешением Microsoft.Graph: Directory.ReadWrite.All

 string authority = "https://login.microsoftonline.com/{0}";
 string graphResourceId = "https://graph.microsoft.com";
 string tenantId = "xxxxxx";
 string clientId = "xxxxxx";
 string secret = "xxxxxx";
 authority = String.Format(authority, tenantId);
 AuthenticationContext authContext = new AuthenticationContext(authority);
 var accessToken = authContext.AcquireTokenAsync(graphResourceId, new ClientCredential(clientId, secret)).Result.AccessToken;
            var graphserviceClient = new GraphServiceClient(
                new DelegateAuthenticationProvider(
                    requestMessage =>
                    {
                        requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);

                        return Task.FromResult(0);
                    }));
            var dic = new Dictionary<string, object> { { "@odata.type", "microsoft.graph.invitedUserMessageInfo" } };

            Invitation invitation = new Invitation
            {
                InvitedUserEmailAddress = "email",
                InvitedUserMessageInfo = new InvitedUserMessageInfo { AdditionalData = dic },
                InvitedUserDisplayName = "tomsun-member",
                SendInvitationMessage = false,
                InviteRedirectUrl = "http://localhost",
                InvitedUserType = "Member" //Change the Invited User Type 
            };
            var result = graphserviceClient.Invitations.Request().AddAsync(invitation).Result;

Результат теста:

enter image description here

Проверьте это на портале Azure:

enter image description here

Обновление:

Добавить разрешение от портала Azure

enter image description here

Проверьте разрешение токена доступа с помощью https://jwt.io/

enter image description here

Update2:

Добавьте файл packages.config.

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Graph" version="1.9.0" targetFramework="net471" />
  <package id="Microsoft.Graph.Core" version="1.9.0" targetFramework="net471" />
  <package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="3.19.4" targetFramework="net471" />
  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net471" />
  <package id="System.IO" version="4.3.0" targetFramework="net471" />
  <package id="System.Net.Http" version="4.3.3" targetFramework="net471" />
  <package id="System.Runtime" version="4.3.0" targetFramework="net471" />
  <package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net471" />
  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net471" />
  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net471" />
  <package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net471" />
</packages>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...