Пространство имен: microsoft.graph
Создайте конфигурацию партнера в политике доступа между клиентами.
Этот API доступен в следующих национальных облачных развертываниях.
| Глобальная служба |
Правительство США L4 |
Правительство США L5 (DOD) |
Китай управляется 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
| Тип разрешения |
Разрешения с наименьшими привилегиями |
Более высокие привилегированные разрешения |
| Делегированные (рабочая или учебная учетная запись) |
Policy.ReadWrite.CrossTenantAccess |
Недоступно. |
| Делегированные (личная учетная запись Майкрософт) |
Не поддерживается. |
Не поддерживается. |
| Приложение |
Policy.ReadWrite.CrossTenantAccess |
Недоступно. |
Важно!
Для делегированного доступа с использованием рабочих или учебных учетных записей, в которых пользователь, выполнив вход, работает с другим пользователем, ему должна быть назначена поддерживаемая Microsoft Entra роль или настраиваемая роль, которая предоставляет разрешения, необходимые для этой операции. Эта операция поддерживает следующие встроенные роли, которые предоставляют только минимальные необходимые привилегии:
- Администратор Teams — исключение параметров синхронизации удостоверений
- Администратор безопасности
HTTP-запрос
POST /policies/crossTenantAccessPolicy/partners
Текст запроса
В тексте запроса укажите представление объекта crossTenantAccessPolicyConfigurationPartner в формате JSON.
В следующей таблице перечислены свойства, необходимые при создании crossTenantAccessPolicyConfigurationPartner.
| Свойство |
Тип |
Описание |
| automaticUserConsentSettings |
inboundOutboundPolicyConfiguration |
Определяет конфигурацию для партнера для параметров автоматического согласия пользователя. Если это не настроено специально, свойства inboundAllowed и outboundAllowed являются и наследуются null от параметров по умолчанию, которые всегда falseимеют значение . |
| b2bCollaborationInbound |
crossTenantAccessPolicyB2BSetting |
Определяет конфигурацию партнера для пользователей из других организаций, обращаюющихся к вашим ресурсам через Microsoft Entra совместной работы B2B. |
| b2bCollaborationOutbound |
crossTenantAccessPolicyB2BSetting |
Определяет конфигурацию партнера для пользователей в вашей организации, которые будут получать исходящий доступ к ресурсам в другой организации через Microsoft Entra совместной работы B2B. |
| b2bDirectConnectInbound |
crossTenantAccessPolicyB2BSetting |
Определяет конфигурацию партнера для пользователей из других организаций, обращаюющихся к вашим ресурсам через Microsoft Entra прямом подключении B2B. |
| b2bDirectConnectOutbound |
crossTenantAccessPolicyB2BSetting |
Определяет конфигурацию конкретного партнера для пользователей в вашей организации, которые получают исходящий доступ к ресурсам в другой организации через Microsoft Entra прямое подключение B2B. |
| inboundTrust |
crossTenantAccessPolicyInboundTrust |
Определяет конфигурацию для конкретного партнера для доверия другим утверждениям условного доступа из внешних Microsoft Entra организаций. |
| isServiceProvider |
Логический |
Определяет, является ли конфигурация партнера поставщиком облачных служб для вашей организации. |
| tenantId |
String |
Идентификатор клиента для организации партнера Microsoft Entra. Только для чтения. Ключ. |
Отклик
В случае успешного выполнения этот метод возвращает код отклика 201 Created и объект crossTenantAccessPolicyConfigurationPartner в теле отклика.
Примеры
Запрос
POST https://graph.microsoft.com/v1.0/policies/crossTenantAccessPolicy/partners
Content-Type: application/json
{
"tenantId": "3d0f5dec-5d3d-455c-8016-e2af1ae4d31a",
"b2bDirectConnectOutbound":
{
"usersAndGroups":
{
"accessType": "blocked",
"targets": [
{
"target": "6f546279-4da5-4b53-a095-09ea0cef9971",
"targetType": "group"
}
]
}
},
"b2bDirectConnectInbound":
{
"applications":
{
"accessType": "allowed",
"targets": [
{
"target": "Office365",
"targetType": "application"
}
]
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new CrossTenantAccessPolicyConfigurationPartner
{
TenantId = "3d0f5dec-5d3d-455c-8016-e2af1ae4d31a",
B2bDirectConnectOutbound = new CrossTenantAccessPolicyB2BSetting
{
UsersAndGroups = new CrossTenantAccessPolicyTargetConfiguration
{
AccessType = CrossTenantAccessPolicyTargetConfigurationAccessType.Blocked,
Targets = new List<CrossTenantAccessPolicyTarget>
{
new CrossTenantAccessPolicyTarget
{
Target = "6f546279-4da5-4b53-a095-09ea0cef9971",
TargetType = CrossTenantAccessPolicyTargetType.Group,
},
},
},
},
B2bDirectConnectInbound = new CrossTenantAccessPolicyB2BSetting
{
Applications = new CrossTenantAccessPolicyTargetConfiguration
{
AccessType = CrossTenantAccessPolicyTargetConfigurationAccessType.Allowed,
Targets = new List<CrossTenantAccessPolicyTarget>
{
new CrossTenantAccessPolicyTarget
{
Target = "Office365",
TargetType = CrossTenantAccessPolicyTargetType.Application,
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Policies.CrossTenantAccessPolicy.Partners.PostAsync(requestBody);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewCrossTenantAccessPolicyConfigurationPartner()
tenantId := "3d0f5dec-5d3d-455c-8016-e2af1ae4d31a"
requestBody.SetTenantId(&tenantId)
b2bDirectConnectOutbound := graphmodels.NewCrossTenantAccessPolicyB2BSetting()
usersAndGroups := graphmodels.NewCrossTenantAccessPolicyTargetConfiguration()
accessType := graphmodels.BLOCKED_CROSSTENANTACCESSPOLICYTARGETCONFIGURATIONACCESSTYPE
usersAndGroups.SetAccessType(&accessType)
crossTenantAccessPolicyTarget := graphmodels.NewCrossTenantAccessPolicyTarget()
target := "6f546279-4da5-4b53-a095-09ea0cef9971"
crossTenantAccessPolicyTarget.SetTarget(&target)
targetType := graphmodels.GROUP_CROSSTENANTACCESSPOLICYTARGETTYPE
crossTenantAccessPolicyTarget.SetTargetType(&targetType)
targets := []graphmodels.CrossTenantAccessPolicyTargetable {
crossTenantAccessPolicyTarget,
}
usersAndGroups.SetTargets(targets)
b2bDirectConnectOutbound.SetUsersAndGroups(usersAndGroups)
requestBody.SetB2bDirectConnectOutbound(b2bDirectConnectOutbound)
b2bDirectConnectInbound := graphmodels.NewCrossTenantAccessPolicyB2BSetting()
applications := graphmodels.NewCrossTenantAccessPolicyTargetConfiguration()
accessType := graphmodels.ALLOWED_CROSSTENANTACCESSPOLICYTARGETCONFIGURATIONACCESSTYPE
applications.SetAccessType(&accessType)
crossTenantAccessPolicyTarget := graphmodels.NewCrossTenantAccessPolicyTarget()
target := "Office365"
crossTenantAccessPolicyTarget.SetTarget(&target)
targetType := graphmodels.APPLICATION_CROSSTENANTACCESSPOLICYTARGETTYPE
crossTenantAccessPolicyTarget.SetTargetType(&targetType)
targets := []graphmodels.CrossTenantAccessPolicyTargetable {
crossTenantAccessPolicyTarget,
}
applications.SetTargets(targets)
b2bDirectConnectInbound.SetApplications(applications)
requestBody.SetB2bDirectConnectInbound(b2bDirectConnectInbound)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
partners, err := graphClient.Policies().CrossTenantAccessPolicy().Partners().Post(context.Background(), requestBody, nil)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
CrossTenantAccessPolicyConfigurationPartner crossTenantAccessPolicyConfigurationPartner = new CrossTenantAccessPolicyConfigurationPartner();
crossTenantAccessPolicyConfigurationPartner.setTenantId("3d0f5dec-5d3d-455c-8016-e2af1ae4d31a");
CrossTenantAccessPolicyB2BSetting b2bDirectConnectOutbound = new CrossTenantAccessPolicyB2BSetting();
CrossTenantAccessPolicyTargetConfiguration usersAndGroups = new CrossTenantAccessPolicyTargetConfiguration();
usersAndGroups.setAccessType(CrossTenantAccessPolicyTargetConfigurationAccessType.Blocked);
LinkedList<CrossTenantAccessPolicyTarget> targets = new LinkedList<CrossTenantAccessPolicyTarget>();
CrossTenantAccessPolicyTarget crossTenantAccessPolicyTarget = new CrossTenantAccessPolicyTarget();
crossTenantAccessPolicyTarget.setTarget("6f546279-4da5-4b53-a095-09ea0cef9971");
crossTenantAccessPolicyTarget.setTargetType(CrossTenantAccessPolicyTargetType.Group);
targets.add(crossTenantAccessPolicyTarget);
usersAndGroups.setTargets(targets);
b2bDirectConnectOutbound.setUsersAndGroups(usersAndGroups);
crossTenantAccessPolicyConfigurationPartner.setB2bDirectConnectOutbound(b2bDirectConnectOutbound);
CrossTenantAccessPolicyB2BSetting b2bDirectConnectInbound = new CrossTenantAccessPolicyB2BSetting();
CrossTenantAccessPolicyTargetConfiguration applications = new CrossTenantAccessPolicyTargetConfiguration();
applications.setAccessType(CrossTenantAccessPolicyTargetConfigurationAccessType.Allowed);
LinkedList<CrossTenantAccessPolicyTarget> targets1 = new LinkedList<CrossTenantAccessPolicyTarget>();
CrossTenantAccessPolicyTarget crossTenantAccessPolicyTarget1 = new CrossTenantAccessPolicyTarget();
crossTenantAccessPolicyTarget1.setTarget("Office365");
crossTenantAccessPolicyTarget1.setTargetType(CrossTenantAccessPolicyTargetType.Application);
targets1.add(crossTenantAccessPolicyTarget1);
applications.setTargets(targets1);
b2bDirectConnectInbound.setApplications(applications);
crossTenantAccessPolicyConfigurationPartner.setB2bDirectConnectInbound(b2bDirectConnectInbound);
CrossTenantAccessPolicyConfigurationPartner result = graphClient.policies().crossTenantAccessPolicy().partners().post(crossTenantAccessPolicyConfigurationPartner);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const crossTenantAccessPolicyConfigurationPartner = {
tenantId: '3d0f5dec-5d3d-455c-8016-e2af1ae4d31a',
b2bDirectConnectOutbound:
{
usersAndGroups:
{
accessType: 'blocked',
targets: [
{
target: '6f546279-4da5-4b53-a095-09ea0cef9971',
targetType: 'group'
}
]
}
},
b2bDirectConnectInbound:
{
applications:
{
accessType: 'allowed',
targets: [
{
target: 'Office365',
targetType: 'application'
}
]
}
}
};
await client.api('/policies/crossTenantAccessPolicy/partners')
.post(crossTenantAccessPolicyConfigurationPartner);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\CrossTenantAccessPolicyConfigurationPartner;
use Microsoft\Graph\Generated\Models\CrossTenantAccessPolicyB2BSetting;
use Microsoft\Graph\Generated\Models\CrossTenantAccessPolicyTargetConfiguration;
use Microsoft\Graph\Generated\Models\CrossTenantAccessPolicyTargetConfigurationAccessType;
use Microsoft\Graph\Generated\Models\CrossTenantAccessPolicyTarget;
use Microsoft\Graph\Generated\Models\CrossTenantAccessPolicyTargetType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CrossTenantAccessPolicyConfigurationPartner();
$requestBody->setTenantId('3d0f5dec-5d3d-455c-8016-e2af1ae4d31a');
$b2bDirectConnectOutbound = new CrossTenantAccessPolicyB2BSetting();
$b2bDirectConnectOutboundUsersAndGroups = new CrossTenantAccessPolicyTargetConfiguration();
$b2bDirectConnectOutboundUsersAndGroups->setAccessType(new CrossTenantAccessPolicyTargetConfigurationAccessType('blocked'));
$targetsCrossTenantAccessPolicyTarget1 = new CrossTenantAccessPolicyTarget();
$targetsCrossTenantAccessPolicyTarget1->setTarget('6f546279-4da5-4b53-a095-09ea0cef9971');
$targetsCrossTenantAccessPolicyTarget1->setTargetType(new CrossTenantAccessPolicyTargetType('group'));
$targetsArray []= $targetsCrossTenantAccessPolicyTarget1;
$b2bDirectConnectOutboundUsersAndGroups->setTargets($targetsArray);
$b2bDirectConnectOutbound->setUsersAndGroups($b2bDirectConnectOutboundUsersAndGroups);
$requestBody->setB2bDirectConnectOutbound($b2bDirectConnectOutbound);
$b2bDirectConnectInbound = new CrossTenantAccessPolicyB2BSetting();
$b2bDirectConnectInboundApplications = new CrossTenantAccessPolicyTargetConfiguration();
$b2bDirectConnectInboundApplications->setAccessType(new CrossTenantAccessPolicyTargetConfigurationAccessType('allowed'));
$targetsCrossTenantAccessPolicyTarget1 = new CrossTenantAccessPolicyTarget();
$targetsCrossTenantAccessPolicyTarget1->setTarget('Office365');
$targetsCrossTenantAccessPolicyTarget1->setTargetType(new CrossTenantAccessPolicyTargetType('application'));
$targetsArray []= $targetsCrossTenantAccessPolicyTarget1;
$b2bDirectConnectInboundApplications->setTargets($targetsArray);
$b2bDirectConnectInbound->setApplications($b2bDirectConnectInboundApplications);
$requestBody->setB2bDirectConnectInbound($b2bDirectConnectInbound);
$result = $graphServiceClient->policies()->crossTenantAccessPolicy()->partners()->post($requestBody)->wait();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Import-Module Microsoft.Graph.Identity.SignIns
$params = @{
tenantId = "3d0f5dec-5d3d-455c-8016-e2af1ae4d31a"
b2bDirectConnectOutbound = @{
usersAndGroups = @{
accessType = "blocked"
targets = @(
@{
target = "6f546279-4da5-4b53-a095-09ea0cef9971"
targetType = "group"
}
)
}
}
b2bDirectConnectInbound = @{
applications = @{
accessType = "allowed"
targets = @(
@{
target = "Office365"
targetType = "application"
}
)
}
}
}
New-MgPolicyCrossTenantAccessPolicyPartner -BodyParameter $params
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.cross_tenant_access_policy_configuration_partner import CrossTenantAccessPolicyConfigurationPartner
from msgraph.generated.models.cross_tenant_access_policy_b2_b_setting import CrossTenantAccessPolicyB2BSetting
from msgraph.generated.models.cross_tenant_access_policy_target_configuration import CrossTenantAccessPolicyTargetConfiguration
from msgraph.generated.models.cross_tenant_access_policy_target_configuration_access_type import CrossTenantAccessPolicyTargetConfigurationAccessType
from msgraph.generated.models.cross_tenant_access_policy_target import CrossTenantAccessPolicyTarget
from msgraph.generated.models.cross_tenant_access_policy_target_type import CrossTenantAccessPolicyTargetType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = CrossTenantAccessPolicyConfigurationPartner(
tenant_id = "3d0f5dec-5d3d-455c-8016-e2af1ae4d31a",
b2b_direct_connect_outbound = CrossTenantAccessPolicyB2BSetting(
users_and_groups = CrossTenantAccessPolicyTargetConfiguration(
access_type = CrossTenantAccessPolicyTargetConfigurationAccessType.Blocked,
targets = [
CrossTenantAccessPolicyTarget(
target = "6f546279-4da5-4b53-a095-09ea0cef9971",
target_type = CrossTenantAccessPolicyTargetType.Group,
),
],
),
),
b2b_direct_connect_inbound = CrossTenantAccessPolicyB2BSetting(
applications = CrossTenantAccessPolicyTargetConfiguration(
access_type = CrossTenantAccessPolicyTargetConfigurationAccessType.Allowed,
targets = [
CrossTenantAccessPolicyTarget(
target = "Office365",
target_type = CrossTenantAccessPolicyTargetType.Application,
),
],
),
),
)
result = await graph_client.policies.cross_tenant_access_policy.partners.post(request_body)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 201 Created
Content-Type: application/json
{
"tenantId": "3d0f5dec-5d3d-455c-8016-e2af1ae4d31a",
"inboundTrust": null,
"b2bCollaborationInbound": null,
"b2bCollaborationOutbound": null,
"b2bDirectConnectOutbound":
{
"usersAndGroups":
{
"accessType": "blocked",
"targets": [
{
"target": "6f546279-4da5-4b53-a095-09ea0cef9971",
"targetType": "group"
}
]
}
},
"b2bDirectConnectInbound":
{
"applications":
{
"accessType": "allowed",
"targets": [
{
"target": "Office365",
"targetType": "application"
}
]
}
}
}