Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Преобразование пользователя, прошедшего внешнюю проверку подлинности, во внутреннего пользователя. Пользователь может войти в клиент узла в качестве внутреннего пользователя и получить доступ к ресурсам в качестве участника. Дополнительные сведения об этом преобразовании см. в разделе Преобразование внешних пользователей во внутренних пользователей.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба |
Правительство США L4 |
Правительство США L5 (DOD) |
Китай управляется 21Vianet |
✅ |
✅ |
✅ |
✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения |
Разрешения с наименьшими привилегиями |
Более высокие привилегированные разрешения |
Делегированные (рабочая или учебная учетная запись) |
User-ConvertToInternal.ReadWrite.All |
User.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) |
Не поддерживается. |
Не поддерживается. |
Приложение |
User-ConvertToInternal.ReadWrite.All |
User.ReadWrite.All |
Важно!
В делегированных сценариях с рабочими или учебными учетными записями вошедшему пользователю должна быть назначена поддерживаемая роль Microsoft Entra или настраиваемая роль с разрешением поддерживаемой роли.
Администратор пользователей — это наименее привилегированная роль, поддерживаемая для этой операции.
HTTP-запрос
POST /users/{usersId}/convertExternalToInternalMemberUser
Текст запроса
В тексте запроса укажите представление параметров в формате JSON.
В следующей таблице перечислены параметры, необходимые при вызове этого действия.
Параметр |
Тип |
Описание |
почта; |
String |
Необязательный параметр. |
passwordProfile |
passwordProfile |
Требуется для пользователей, проверка подлинности которых осуществляется в облаке. |
userPrincipalName |
String |
Требуется, чтобы облачные пользователи изменили userPrincipalName. Не требуется для локальных синхронизированных пользователей, так как их userPrincipalName управляется локально. |
Отклик
В случае успешного выполнения этот метод возвращает код отклика 200 OK
и объект ответа conversionUserDetails .
Примеры
Пример 1. Преобразование пользователя в облако и требование сброса пароля при следующем входе
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/beta/users/0b8cc234-ef87-4015-9785-cbb42000d41c/convertExternalToInternalMemberUser
Content-type: application/json
{
"userPrincipalName": "[email protected]",
"passwordProfile": {
"password": "Zdi087#2jhkahf",
"forceChangePasswordNextSignIn": "true"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Users.Item.ConvertExternalToInternalMemberUser;
using Microsoft.Graph.Beta.Models;
var requestBody = new ConvertExternalToInternalMemberUserPostRequestBody
{
UserPrincipalName = "[email protected]",
PasswordProfile = new PasswordProfile
{
Password = "Zdi087#2jhkahf",
ForceChangePasswordNextSignIn = true,
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].ConvertExternalToInternalMemberUser.PostAsync(requestBody);
mgc-beta users convert-external-to-internal-member-user post --user-id {user-id} --body '{\
"userPrincipalName": "[email protected]",\
"passwordProfile": {\
"password": "Zdi087#2jhkahf",\
"forceChangePasswordNextSignIn": "true"\
}\
}\
'
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-beta-sdk-go/users"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphusers.NewConvertExternalToInternalMemberUserPostRequestBody()
userPrincipalName := "[email protected]"
requestBody.SetUserPrincipalName(&userPrincipalName)
passwordProfile := graphmodels.NewPasswordProfile()
password := "Zdi087#2jhkahf"
passwordProfile.SetPassword(&password)
forceChangePasswordNextSignIn := true
passwordProfile.SetForceChangePasswordNextSignIn(&forceChangePasswordNextSignIn)
requestBody.SetPasswordProfile(passwordProfile)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
convertExternalToInternalMemberUser, err := graphClient.Users().ByUserId("user-id").ConvertExternalToInternalMemberUser().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.users.item.convertexternaltointernalmemberuser.ConvertExternalToInternalMemberUserPostRequestBody convertExternalToInternalMemberUserPostRequestBody = new com.microsoft.graph.beta.users.item.convertexternaltointernalmemberuser.ConvertExternalToInternalMemberUserPostRequestBody();
convertExternalToInternalMemberUserPostRequestBody.setUserPrincipalName("[email protected]");
PasswordProfile passwordProfile = new PasswordProfile();
passwordProfile.setPassword("Zdi087#2jhkahf");
passwordProfile.setForceChangePasswordNextSignIn(true);
convertExternalToInternalMemberUserPostRequestBody.setPasswordProfile(passwordProfile);
var result = graphClient.users().byUserId("{user-id}").convertExternalToInternalMemberUser().post(convertExternalToInternalMemberUserPostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const conversionUserDetails = {
userPrincipalName: '[email protected]',
passwordProfile: {
password: 'Zdi087#2jhkahf',
forceChangePasswordNextSignIn: 'true'
}
};
await client.api('/users/0b8cc234-ef87-4015-9785-cbb42000d41c/convertExternalToInternalMemberUser')
.version('beta')
.post(conversionUserDetails);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Users\Item\ConvertExternalToInternalMemberUser\ConvertExternalToInternalMemberUserPostRequestBody;
use Microsoft\Graph\Beta\Generated\Models\PasswordProfile;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ConvertExternalToInternalMemberUserPostRequestBody();
$requestBody->setUserPrincipalName('[email protected]');
$passwordProfile = new PasswordProfile();
$passwordProfile->setPassword('Zdi087#2jhkahf');
$passwordProfile->setForceChangePasswordNextSignIn(true);
$requestBody->setPasswordProfile($passwordProfile);
$result = $graphServiceClient->users()->byUserId('user-id')->convertExternalToInternalMemberUser()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users.Actions
$params = @{
userPrincipalName = "[email protected]"
passwordProfile = @{
password = "Zdi087#2jhkahf"
forceChangePasswordNextSignIn = "true"
}
}
Convert-MgBetaUserExternalToInternalMemberUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.users.item.convert_external_to_internal_member_user.convert_external_to_internal_member_user_post_request_body import ConvertExternalToInternalMemberUserPostRequestBody
from msgraph_beta.generated.models.password_profile import PasswordProfile
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ConvertExternalToInternalMemberUserPostRequestBody(
user_principal_name = "[email protected]",
password_profile = PasswordProfile(
password = "Zdi087#2jhkahf",
force_change_password_next_sign_in = True,
),
)
result = await graph_client.users.by_user_id('user-id').convert_external_to_internal_member_user.post(request_body)
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.conversionUserDetails",
"displayName": "Adele Vance",
"userPrincipalName": "[email protected]",
"convertedToInternalUserDateTime": "2024-02-05T20:16:37.5012924Z",
"mail": "[email protected]"
}
Пример 2. Преобразование облачного пользователя, изменение адреса электронной почты и требование сброса пароля при следующем входе
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/beta/users/0b8cc234-ef87-4015-9785-cbb42000d41c/convertExternalToInternalMemberUser
Content-type: application/json
{
"userPrincipalName": "[email protected]",
"passwordProfile": {
"password": "Zdi087#2jhkahf",
"forceChangePasswordNextSignIn": "true"
},
"mail": "[email protected]"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Users.Item.ConvertExternalToInternalMemberUser;
using Microsoft.Graph.Beta.Models;
var requestBody = new ConvertExternalToInternalMemberUserPostRequestBody
{
UserPrincipalName = "[email protected]",
PasswordProfile = new PasswordProfile
{
Password = "Zdi087#2jhkahf",
ForceChangePasswordNextSignIn = true,
},
Mail = "[email protected]",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].ConvertExternalToInternalMemberUser.PostAsync(requestBody);
mgc-beta users convert-external-to-internal-member-user post --user-id {user-id} --body '{\
"userPrincipalName": "[email protected]",\
"passwordProfile": {\
"password": "Zdi087#2jhkahf",\
"forceChangePasswordNextSignIn": "true"\
},\
"mail": "[email protected]"\
}\
'
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-beta-sdk-go/users"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphusers.NewConvertExternalToInternalMemberUserPostRequestBody()
userPrincipalName := "[email protected]"
requestBody.SetUserPrincipalName(&userPrincipalName)
passwordProfile := graphmodels.NewPasswordProfile()
password := "Zdi087#2jhkahf"
passwordProfile.SetPassword(&password)
forceChangePasswordNextSignIn := true
passwordProfile.SetForceChangePasswordNextSignIn(&forceChangePasswordNextSignIn)
requestBody.SetPasswordProfile(passwordProfile)
mail := "[email protected]"
requestBody.SetMail(&mail)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
convertExternalToInternalMemberUser, err := graphClient.Users().ByUserId("user-id").ConvertExternalToInternalMemberUser().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.users.item.convertexternaltointernalmemberuser.ConvertExternalToInternalMemberUserPostRequestBody convertExternalToInternalMemberUserPostRequestBody = new com.microsoft.graph.beta.users.item.convertexternaltointernalmemberuser.ConvertExternalToInternalMemberUserPostRequestBody();
convertExternalToInternalMemberUserPostRequestBody.setUserPrincipalName("[email protected]");
PasswordProfile passwordProfile = new PasswordProfile();
passwordProfile.setPassword("Zdi087#2jhkahf");
passwordProfile.setForceChangePasswordNextSignIn(true);
convertExternalToInternalMemberUserPostRequestBody.setPasswordProfile(passwordProfile);
convertExternalToInternalMemberUserPostRequestBody.setMail("[email protected]");
var result = graphClient.users().byUserId("{user-id}").convertExternalToInternalMemberUser().post(convertExternalToInternalMemberUserPostRequestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const conversionUserDetails = {
userPrincipalName: '[email protected]',
passwordProfile: {
password: 'Zdi087#2jhkahf',
forceChangePasswordNextSignIn: 'true'
},
mail: '[email protected]'
};
await client.api('/users/0b8cc234-ef87-4015-9785-cbb42000d41c/convertExternalToInternalMemberUser')
.version('beta')
.post(conversionUserDetails);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Users\Item\ConvertExternalToInternalMemberUser\ConvertExternalToInternalMemberUserPostRequestBody;
use Microsoft\Graph\Beta\Generated\Models\PasswordProfile;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ConvertExternalToInternalMemberUserPostRequestBody();
$requestBody->setUserPrincipalName('[email protected]');
$passwordProfile = new PasswordProfile();
$passwordProfile->setPassword('Zdi087#2jhkahf');
$passwordProfile->setForceChangePasswordNextSignIn(true);
$requestBody->setPasswordProfile($passwordProfile);
$requestBody->setMail('[email protected]');
$result = $graphServiceClient->users()->byUserId('user-id')->convertExternalToInternalMemberUser()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Users.Actions
$params = @{
userPrincipalName = "[email protected]"
passwordProfile = @{
password = "Zdi087#2jhkahf"
forceChangePasswordNextSignIn = "true"
}
mail = "[email protected]"
}
Convert-MgBetaUserExternalToInternalMemberUser -UserId $userId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.users.item.convert_external_to_internal_member_user.convert_external_to_internal_member_user_post_request_body import ConvertExternalToInternalMemberUserPostRequestBody
from msgraph_beta.generated.models.password_profile import PasswordProfile
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ConvertExternalToInternalMemberUserPostRequestBody(
user_principal_name = "[email protected]",
password_profile = PasswordProfile(
password = "Zdi087#2jhkahf",
force_change_password_next_sign_in = True,
),
mail = "[email protected]",
)
result = await graph_client.users.by_user_id('user-id').convert_external_to_internal_member_user.post(request_body)
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.conversionUserDetails",
"displayName": "Adele Vance",
"userPrincipalName": "[email protected]",
"convertedToInternalUserDateTime": "2024-02-05T20:16:37.5012924Z",
"mail": "[email protected]"
}
Пример 3. Преобразование внешнего пользователя во внутренний для пользователя, синхронизированного из локальной службы AD
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/beta/users/0b8cc234-ef87-4015-9785-cbb42000d41c/convertExternalToInternalMemberUser
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].ConvertExternalToInternalMemberUser.PostAsync(null);
mgc-beta users convert-external-to-internal-member-user post --user-id {user-id}
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
//other-imports
)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
convertExternalToInternalMemberUser, err := graphClient.Users().ByUserId("user-id").ConvertExternalToInternalMemberUser().Post(context.Background(), nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
var result = graphClient.users().byUserId("{user-id}").convertExternalToInternalMemberUser().post(null);
const options = {
authProvider,
};
const client = Client.init(options);
await client.api('/users/0b8cc234-ef87-4015-9785-cbb42000d41c/convertExternalToInternalMemberUser')
.version('beta')
.post();
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->users()->byUserId('user-id')->convertExternalToInternalMemberUser()->post()->wait();
Import-Module Microsoft.Graph.Beta.Users.Actions
Convert-MgBetaUserExternalToInternalMemberUser -UserId $userId
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
result = await graph_client.users.by_user_id('user-id').convert_external_to_internal_member_user.post(None)
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.conversionUserDetails",
"displayName": "Adele Vance",
"userPrincipalName": "[email protected]",
"convertedToInternalUserDateTime": "2024-02-05T20:16:37.5012924Z",
"mail": "[email protected]"
}
Связанные материалы