命名空间:microsoft.graph
重要
Microsoft Graph /beta
版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
创建新的 b2cIdentityUserFlow 对象。
此 API 可用于以下国家级云部署。
全局服务 |
美国政府 L4 |
美国政府 L5 (DOD) |
由世纪互联运营的中国 |
✅ |
✅ |
✅ |
✅ |
权限
为此 API 选择标记为最低特权的权限。
只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
权限类型 |
最低特权权限 |
更高特权权限 |
委派(工作或学校帐户) |
IdentityUserFlow.ReadWrite.All |
不可用。 |
委派(个人 Microsoft 帐户) |
不支持。 |
不支持。 |
应用程序 |
IdentityUserFlow.ReadWrite.All |
不可用。 |
重要
在具有工作或学校帐户的委托方案中,必须为登录用户分配受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。
外部 ID用户流管理员是此操作支持的最低特权角色。
HTTP 请求
POST /identity/b2cUserFlows
名称 |
说明 |
Authorization |
持有者 {token}。 必填。 详细了解 身份验证和授权。 |
Content-Type |
application/json. 必需。 |
请求正文
在请求正文中,提供 b2cIdentityUserFlow 的 JSON 表示形式。
属性 |
类型 |
说明 |
id |
String |
必填。 用户流名称。 如果在请求期间未将前缀添加到名称中,则创建后将添加名称的前面 B2C_1_ 。 |
userFlowType |
字符串 |
必填。 要创建的用户流类型。
userFlowType 支持的值有:
signUp signIn signUpOrSignIn passwordReset profileUpdate resourceOwner
|
userFlowTypeVersion |
浮点 |
必填。 用户流版本。 |
isLanguageCustomizationEnabled |
布尔值 |
可选。 确定是否在 Azure AD B2C 用户流中启用语言自定义。 默认情况下,不会为 Azure AD B2C 用户流启用语言自定义。 |
defaultLanguageTag |
String |
可选。 指定在请求中未 ui_locale 指定标记时使用的 b2cIdentityUserFlow 的默认语言。 此字段符合 RFC 5646。 |
identityProviders |
identityProvider集合 |
可选。 要包含在用户流中的标识提供者。 |
响应
如果成功,此方法返回 201 Created
响应代码和 Location 标头,其中包含为此请求创建的 b2cIdentityUserFlow 对象的 URI,并将 B2C_1_
前缀添加到名称中。 如果失败,将返回错误 4xx
,其中包含特定详细信息。
示例
示例 1:使用默认值创建用户流
请求
下面是请求的示例。
POST https://graph.microsoft.com/beta/identity/b2cUserFlows
Content-type: application/json
{
"id": "Customer",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 3
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new B2cIdentityUserFlow
{
Id = "Customer",
UserFlowType = UserFlowType.SignUpOrSignIn,
UserFlowTypeVersion = 3f,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.B2cUserFlows.PostAsync(requestBody);
mgc-beta identity b2c-user-flows create --body '{\
"id": "Customer",\
"userFlowType": "signUpOrSignIn",\
"userFlowTypeVersion": 3\
}\
'
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewB2cIdentityUserFlow()
id := "Customer"
requestBody.SetId(&id)
userFlowType := graphmodels.SIGNUPORSIGNIN_USERFLOWTYPE
requestBody.SetUserFlowType(&userFlowType)
userFlowTypeVersion := float32(3)
requestBody.SetUserFlowTypeVersion(&userFlowTypeVersion)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
b2cUserFlows, err := graphClient.Identity().B2cUserFlows().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
B2cIdentityUserFlow b2cIdentityUserFlow = new B2cIdentityUserFlow();
b2cIdentityUserFlow.setId("Customer");
b2cIdentityUserFlow.setUserFlowType(UserFlowType.SignUpOrSignIn);
b2cIdentityUserFlow.setUserFlowTypeVersion(3f);
B2cIdentityUserFlow result = graphClient.identity().b2cUserFlows().post(b2cIdentityUserFlow);
const options = {
authProvider,
};
const client = Client.init(options);
const b2cIdentityUserFlow = {
id: 'Customer',
userFlowType: 'signUpOrSignIn',
userFlowTypeVersion: 3
};
await client.api('/identity/b2cUserFlows')
.version('beta')
.post(b2cIdentityUserFlow);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\B2cIdentityUserFlow;
use Microsoft\Graph\Beta\Generated\Models\UserFlowType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new B2cIdentityUserFlow();
$requestBody->setId('Customer');
$requestBody->setUserFlowType(new UserFlowType('signUpOrSignIn'));
$requestBody->setUserFlowTypeVersion(3);
$result = $graphServiceClient->identity()->b2cUserFlows()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.b2c_identity_user_flow import B2cIdentityUserFlow
from msgraph_beta.generated.models.user_flow_type import UserFlowType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = B2cIdentityUserFlow(
id = "Customer",
user_flow_type = UserFlowType.SignUpOrSignIn,
user_flow_type_version = 3,
)
result = await graph_client.identity.b2c_user_flows.post(request_body)
响应
以下是响应示例。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/b2cUserFlows/$entity",
"id": "B2C_1_Customer",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 3,
"isLanguageCustomizationEnabled": false,
"defaultLanguageTag": "en",
"authenticationMethods": "emailWithPassword",
"tokenClaimsConfiguration": {
"isIssuerEntityUserFlow": false
},
"apiConnectorConfiguration": {}
}
示例 2:使用默认值和标识提供者创建用户流
请求
下面是请求的示例。
POST https://graph.microsoft.com/beta/identity/b2cUserFlows
Location: https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')
Content-type: application/json
{
"id": "Customer",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 3,
"identityProviders": [
{
"id": "Facebook-OAuth"
}
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new B2cIdentityUserFlow
{
Id = "Customer",
UserFlowType = UserFlowType.SignUpOrSignIn,
UserFlowTypeVersion = 3f,
IdentityProviders = new List<IdentityProvider>
{
new IdentityProvider
{
Id = "Facebook-OAuth",
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.B2cUserFlows.PostAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Location", "https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')");
});
mgc-beta identity b2c-user-flows create --body '{\
"id": "Customer",\
"userFlowType": "signUpOrSignIn",\
"userFlowTypeVersion": 3,\
"identityProviders": [\
{\
"id": "Facebook-OAuth"\
}\
]\
}\
'
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
graphidentity "github.com/microsoftgraph/msgraph-beta-sdk-go/identity"
//other-imports
)
headers := abstractions.NewRequestHeaders()
headers.Add("Location", "https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')")
configuration := &graphidentity.IdentityB2cUserFlowsRequestBuilderPostRequestConfiguration{
Headers: headers,
}
requestBody := graphmodels.NewB2cIdentityUserFlow()
id := "Customer"
requestBody.SetId(&id)
userFlowType := graphmodels.SIGNUPORSIGNIN_USERFLOWTYPE
requestBody.SetUserFlowType(&userFlowType)
userFlowTypeVersion := float32(3)
requestBody.SetUserFlowTypeVersion(&userFlowTypeVersion)
identityProvider := graphmodels.NewIdentityProvider()
id := "Facebook-OAuth"
identityProvider.SetId(&id)
identityProviders := []graphmodels.IdentityProviderable {
identityProvider,
}
requestBody.SetIdentityProviders(identityProviders)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
b2cUserFlows, err := graphClient.Identity().B2cUserFlows().Post(context.Background(), requestBody, configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
B2cIdentityUserFlow b2cIdentityUserFlow = new B2cIdentityUserFlow();
b2cIdentityUserFlow.setId("Customer");
b2cIdentityUserFlow.setUserFlowType(UserFlowType.SignUpOrSignIn);
b2cIdentityUserFlow.setUserFlowTypeVersion(3f);
LinkedList<IdentityProvider> identityProviders = new LinkedList<IdentityProvider>();
IdentityProvider identityProvider = new IdentityProvider();
identityProvider.setId("Facebook-OAuth");
identityProviders.add(identityProvider);
b2cIdentityUserFlow.setIdentityProviders(identityProviders);
B2cIdentityUserFlow result = graphClient.identity().b2cUserFlows().post(b2cIdentityUserFlow, requestConfiguration -> {
requestConfiguration.headers.add("Location", "https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')");
});
const options = {
authProvider,
};
const client = Client.init(options);
const b2cIdentityUserFlow = {
id: 'Customer',
userFlowType: 'signUpOrSignIn',
userFlowTypeVersion: 3,
identityProviders: [
{
id: 'Facebook-OAuth'
}
]
};
await client.api('/identity/b2cUserFlows')
.version('beta')
.post(b2cIdentityUserFlow);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Identity\B2cUserFlows\B2cUserFlowsRequestBuilderPostRequestConfiguration;
use Microsoft\Graph\Beta\Generated\Models\B2cIdentityUserFlow;
use Microsoft\Graph\Beta\Generated\Models\UserFlowType;
use Microsoft\Graph\Beta\Generated\Models\IdentityProvider;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new B2cIdentityUserFlow();
$requestBody->setId('Customer');
$requestBody->setUserFlowType(new UserFlowType('signUpOrSignIn'));
$requestBody->setUserFlowTypeVersion(3);
$identityProvidersIdentityProvider1 = new IdentityProvider();
$identityProvidersIdentityProvider1->setId('Facebook-OAuth');
$identityProvidersArray []= $identityProvidersIdentityProvider1;
$requestBody->setIdentityProviders($identityProvidersArray);
$requestConfiguration = new B2cUserFlowsRequestBuilderPostRequestConfiguration();
$headers = [
'Location' => 'https://graph.microsoft.com/beta/identity/b2cUserFlows(\'B2C_1_Customer\')',
];
$requestConfiguration->headers = $headers;
$result = $graphServiceClient->identity()->b2cUserFlows()->post($requestBody, $requestConfiguration)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.identity.b2c_user_flows.b2c_user_flows_request_builder import B2cUserFlowsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
from msgraph_beta.generated.models.b2c_identity_user_flow import B2cIdentityUserFlow
from msgraph_beta.generated.models.user_flow_type import UserFlowType
from msgraph_beta.generated.models.identity_provider import IdentityProvider
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = B2cIdentityUserFlow(
id = "Customer",
user_flow_type = UserFlowType.SignUpOrSignIn,
user_flow_type_version = 3,
identity_providers = [
IdentityProvider(
id = "Facebook-OAuth",
),
],
)
request_configuration = RequestConfiguration()
request_configuration.headers.add("Location", "https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')")
result = await graph_client.identity.b2c_user_flows.post(request_body, request_configuration = request_configuration)
响应
以下是响应示例。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/b2cUserFlows/$entity",
"id": "B2C_1_Customer",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 3,
"isLanguageCustomizationEnabled": false,
"defaultLanguageTag": "en",
"authenticationMethods": "0",
"tokenClaimsConfiguration": {
"isIssuerEntityUserFlow": false
},
"apiConnectorConfiguration": {}
}
示例 3:使用 API 连接器的默认值和配置创建用户流
请求
下面是请求的示例。
POST https://graph.microsoft.com/beta/identity/b2cUserFlows
Content-type: application/json
{
"id": "UserFlowWithAPIConnector",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 1,
"apiConnectorConfiguration":{
"postFederationSignup":{
"@odata.id": "{apiConnectorId}"
},
"postAttributeCollection":{
"@odata.id": "{apiConnectorId}"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new B2cIdentityUserFlow
{
Id = "UserFlowWithAPIConnector",
UserFlowType = UserFlowType.SignUpOrSignIn,
UserFlowTypeVersion = 1f,
ApiConnectorConfiguration = new UserFlowApiConnectorConfiguration
{
PostFederationSignup = new IdentityApiConnector
{
AdditionalData = new Dictionary<string, object>
{
{
"@odata.id" , "{apiConnectorId}"
},
},
},
PostAttributeCollection = new IdentityApiConnector
{
AdditionalData = new Dictionary<string, object>
{
{
"@odata.id" , "{apiConnectorId}"
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.B2cUserFlows.PostAsync(requestBody);
mgc-beta identity b2c-user-flows create --body '{\
"id": "UserFlowWithAPIConnector",\
"userFlowType": "signUpOrSignIn",\
"userFlowTypeVersion": 1,\
"apiConnectorConfiguration":{\
"postFederationSignup":{\
"@odata.id": "{apiConnectorId}"\
},\
"postAttributeCollection":{\
"@odata.id": "{apiConnectorId}"\
}\
}\
}\
'
// 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"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewB2cIdentityUserFlow()
id := "UserFlowWithAPIConnector"
requestBody.SetId(&id)
userFlowType := graphmodels.SIGNUPORSIGNIN_USERFLOWTYPE
requestBody.SetUserFlowType(&userFlowType)
userFlowTypeVersion := float32(1)
requestBody.SetUserFlowTypeVersion(&userFlowTypeVersion)
apiConnectorConfiguration := graphmodels.NewUserFlowApiConnectorConfiguration()
postFederationSignup := graphmodels.NewIdentityApiConnector()
additionalData := map[string]interface{}{
"@odata.id" : "{apiConnectorId}",
}
postFederationSignup.SetAdditionalData(additionalData)
apiConnectorConfiguration.SetPostFederationSignup(postFederationSignup)
postAttributeCollection := graphmodels.NewIdentityApiConnector()
additionalData := map[string]interface{}{
"@odata.id" : "{apiConnectorId}",
}
postAttributeCollection.SetAdditionalData(additionalData)
apiConnectorConfiguration.SetPostAttributeCollection(postAttributeCollection)
requestBody.SetApiConnectorConfiguration(apiConnectorConfiguration)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
b2cUserFlows, err := graphClient.Identity().B2cUserFlows().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
B2cIdentityUserFlow b2cIdentityUserFlow = new B2cIdentityUserFlow();
b2cIdentityUserFlow.setId("UserFlowWithAPIConnector");
b2cIdentityUserFlow.setUserFlowType(UserFlowType.SignUpOrSignIn);
b2cIdentityUserFlow.setUserFlowTypeVersion(1f);
UserFlowApiConnectorConfiguration apiConnectorConfiguration = new UserFlowApiConnectorConfiguration();
IdentityApiConnector postFederationSignup = new IdentityApiConnector();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("@odata.id", "{apiConnectorId}");
postFederationSignup.setAdditionalData(additionalData);
apiConnectorConfiguration.setPostFederationSignup(postFederationSignup);
IdentityApiConnector postAttributeCollection = new IdentityApiConnector();
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
additionalData1.put("@odata.id", "{apiConnectorId}");
postAttributeCollection.setAdditionalData(additionalData1);
apiConnectorConfiguration.setPostAttributeCollection(postAttributeCollection);
b2cIdentityUserFlow.setApiConnectorConfiguration(apiConnectorConfiguration);
B2cIdentityUserFlow result = graphClient.identity().b2cUserFlows().post(b2cIdentityUserFlow);
const options = {
authProvider,
};
const client = Client.init(options);
const b2cIdentityUserFlow = {
id: 'UserFlowWithAPIConnector',
userFlowType: 'signUpOrSignIn',
userFlowTypeVersion: 1,
apiConnectorConfiguration: {
postFederationSignup: {
'@odata.id': '{apiConnectorId}'
},
postAttributeCollection: {
'@odata.id': '{apiConnectorId}'
}
}
};
await client.api('/identity/b2cUserFlows')
.version('beta')
.post(b2cIdentityUserFlow);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\B2cIdentityUserFlow;
use Microsoft\Graph\Beta\Generated\Models\UserFlowType;
use Microsoft\Graph\Beta\Generated\Models\UserFlowApiConnectorConfiguration;
use Microsoft\Graph\Beta\Generated\Models\IdentityApiConnector;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new B2cIdentityUserFlow();
$requestBody->setId('UserFlowWithAPIConnector');
$requestBody->setUserFlowType(new UserFlowType('signUpOrSignIn'));
$requestBody->setUserFlowTypeVersion(1);
$apiConnectorConfiguration = new UserFlowApiConnectorConfiguration();
$apiConnectorConfigurationPostFederationSignup = new IdentityApiConnector();
$additionalData = [
'@odata.id' => '{apiConnectorId}',
];
$apiConnectorConfigurationPostFederationSignup->setAdditionalData($additionalData);
$apiConnectorConfiguration->setPostFederationSignup($apiConnectorConfigurationPostFederationSignup);
$apiConnectorConfigurationPostAttributeCollection = new IdentityApiConnector();
$additionalData = [
'@odata.id' => '{apiConnectorId}',
];
$apiConnectorConfigurationPostAttributeCollection->setAdditionalData($additionalData);
$apiConnectorConfiguration->setPostAttributeCollection($apiConnectorConfigurationPostAttributeCollection);
$requestBody->setApiConnectorConfiguration($apiConnectorConfiguration);
$result = $graphServiceClient->identity()->b2cUserFlows()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.b2c_identity_user_flow import B2cIdentityUserFlow
from msgraph_beta.generated.models.user_flow_type import UserFlowType
from msgraph_beta.generated.models.user_flow_api_connector_configuration import UserFlowApiConnectorConfiguration
from msgraph_beta.generated.models.identity_api_connector import IdentityApiConnector
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = B2cIdentityUserFlow(
id = "UserFlowWithAPIConnector",
user_flow_type = UserFlowType.SignUpOrSignIn,
user_flow_type_version = 1,
api_connector_configuration = UserFlowApiConnectorConfiguration(
post_federation_signup = IdentityApiConnector(
additional_data = {
"@odata_id" : "{apiConnectorId}",
}
),
post_attribute_collection = IdentityApiConnector(
additional_data = {
"@odata_id" : "{apiConnectorId}",
}
),
),
)
result = await graph_client.identity.b2c_user_flows.post(request_body)
响应
以下是响应示例。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
注意: 属性 apiConnectorConfiguration
始终返回“”{}值。 若要查看导航属性的完整值,请使用 此 API。
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/beta/identity/b2cUserFlows/B2C_1_Partner
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/b2cUserFlows/$entity",
"id": "B2C_1_UserFlowWithAPIConnector",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 1,
"apiConnectorConfiguration": {}
}