创建 b2cIdentityUserFlow
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
创建新的 b2cIdentityUserFlow 对象。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
IdentityUserFlow.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
IdentityUserFlow.ReadWrite.All |
工作或学校帐户需要属于以下角色之一:
HTTP 请求
POST /identity/b2cUserFlows
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供 b2cIdentityUserFlow的 JSON 表示形式。
| 属性 |
类型 |
说明 |
| id |
String |
必需。 用户流名称。 如果在请求期间未将前缀添加到名称中,则创建后,将预笔写该 B2C_1_ 名称。 |
| userFlowType |
String |
必需。 要创建的用户流的类型。 userFlowType 支持的值有:
signUpsignInsignUpOrSignInpasswordResetprofileUpdateresourceOwner
|
| userFlowTypeVersion |
浮点 |
必需。 用户流版本。 |
| isLanguageCustomizationEnabled |
Boolean |
可选。 确定是否在 B2C 用户流Azure AD语言自定义。 默认情况下,不会为 B2C 用户流Azure AD语言自定义。 |
| defaultLanguageTag |
String |
可选。 指定在请求中未指定标记时所使用的 b2cIdentityUserFlow ui_locale 的默认语言。 此字段符合 RFC 5646。 |
| identityProviders |
identityProvider集合 |
可选。 要包括在用户流中的标识提供程序。 |
响应
如果成功,此方法将返回 响应代码和 Location 标头,其 URI 为为此请求创建的 201 Created b2cIdentityUserFlow 对象,并添加前缀 B2C_1_ 到名称中。 如果失败,将返回 4xx 错误并显示具体详细信息。
示例
示例 1:使用默认值创建用户流
请求
下面展示了示例请求。
POST https://graph.microsoft.com/beta/identity/b2cUserFlows
Content-type: application/json
{
"id": "Customer",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 3
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var b2cIdentityUserFlow = new B2cIdentityUserFlow
{
Id = "Customer",
UserFlowType = UserFlowType.SignUpOrSignIn,
UserFlowTypeVersion = 3f
};
await graphClient.Identity.B2cUserFlows
.Request()
.AddAsync(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);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/identity/b2cUserFlows"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphB2cIdentityUserFlow *b2cIdentityUserFlow = [[MSGraphB2cIdentityUserFlow alloc] init];
[b2cIdentityUserFlow setId:@"Customer"];
[b2cIdentityUserFlow setUserFlowType: [MSGraphUserFlowType signUpOrSignIn]];
[b2cIdentityUserFlow setUserFlowTypeVersion: 3];
NSError *error;
NSData *b2cIdentityUserFlowData = [b2cIdentityUserFlow getSerializedDataWithError:&error];
[urlRequest setHTTPBody:b2cIdentityUserFlowData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
B2cIdentityUserFlow b2cIdentityUserFlow = new B2cIdentityUserFlow();
b2cIdentityUserFlow.id = "Customer";
b2cIdentityUserFlow.userFlowType = UserFlowType.SIGN_UP_OR_SIGN_IN;
b2cIdentityUserFlow.userFlowTypeVersion = 3;
graphClient.identity().b2cUserFlows()
.buildRequest()
.post(b2cIdentityUserFlow);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewB2cIdentityUserFlow()
id := "Customer"
requestBody.SetId(&id)
userFlowType := "signUpOrSignIn"
requestBody.SetUserFlowType(&userFlowType)
userFlowTypeVersion := float32(3)
requestBody.SetUserFlowTypeVersion(&userFlowTypeVersion)
result, err := graphClient.Identity().B2cUserFlows().Post(requestBody)
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
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"
}
]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var b2cIdentityUserFlow = new B2cIdentityUserFlow
{
Id = "Customer",
UserFlowType = UserFlowType.SignUpOrSignIn,
UserFlowTypeVersion = 3f,
IdentityProviders = new B2cIdentityUserFlowIdentityProvidersCollectionWithReferencesPage()
{
new IdentityProvider
{
Id = "Facebook-OAuth"
}
}
};
await graphClient.Identity.B2cUserFlows
.Request()
.Header("Location","https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')")
.AddAsync(b2cIdentityUserFlow);
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);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/identity/b2cUserFlows"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')" forHTTPHeaderField:@"Location"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphB2cIdentityUserFlow *b2cIdentityUserFlow = [[MSGraphB2cIdentityUserFlow alloc] init];
[b2cIdentityUserFlow setId:@"Customer"];
[b2cIdentityUserFlow setUserFlowType: [MSGraphUserFlowType signUpOrSignIn]];
[b2cIdentityUserFlow setUserFlowTypeVersion: 3];
NSMutableArray *identityProvidersList = [[NSMutableArray alloc] init];
MSGraphIdentityProvider *identityProviders = [[MSGraphIdentityProvider alloc] init];
[identityProviders setId:@"Facebook-OAuth"];
[identityProvidersList addObject: identityProviders];
[b2cIdentityUserFlow setIdentityProviders:identityProvidersList];
NSError *error;
NSData *b2cIdentityUserFlowData = [b2cIdentityUserFlow getSerializedDataWithError:&error];
[urlRequest setHTTPBody:b2cIdentityUserFlowData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
LinkedList<Option> requestOptions = new LinkedList<Option>();
requestOptions.add(new HeaderOption("Location", "https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')"));
B2cIdentityUserFlow b2cIdentityUserFlow = new B2cIdentityUserFlow();
b2cIdentityUserFlow.id = "Customer";
b2cIdentityUserFlow.userFlowType = UserFlowType.SIGN_UP_OR_SIGN_IN;
b2cIdentityUserFlow.userFlowTypeVersion = 3;
LinkedList<IdentityProvider> identityProvidersList = new LinkedList<IdentityProvider>();
IdentityProvider identityProviders = new IdentityProvider();
identityProviders.id = "Facebook-OAuth";
identityProvidersList.add(identityProviders);
IdentityProviderCollectionResponse identityProviderCollectionResponse = new IdentityProviderCollectionResponse();
identityProviderCollectionResponse.value = identityProvidersList;
IdentityProviderCollectionPage identityProviderCollectionPage = new IdentityProviderCollectionPage(identityProviderCollectionResponse, null);
b2cIdentityUserFlow.identityProviders = identityProviderCollectionPage;
graphClient.identity().b2cUserFlows()
.buildRequest( requestOptions )
.post(b2cIdentityUserFlow);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewB2cIdentityUserFlow()
id := "Customer"
requestBody.SetId(&id)
userFlowType := "signUpOrSignIn"
requestBody.SetUserFlowType(&userFlowType)
userFlowTypeVersion := float32(3)
requestBody.SetUserFlowTypeVersion(&userFlowTypeVersion)
requestBody.SetIdentityProviders( []IdentityProvider {
msgraphsdk.NewIdentityProvider(),
id := "Facebook-OAuth"
SetId(&id)
}
headers := map[string]string{
"Location": "https://graph.microsoft.com/beta/identity/b2cUserFlows('B2C_1_Customer')"
}
options := &msgraphsdk.B2cUserFlowsRequestBuilderPostRequestConfiguration{
Headers: headers,
}
result, err := graphClient.Identity().B2cUserFlows().PostWithRequestConfigurationAndResponseHandler(requestBody, options, nil)
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
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}"
}
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var b2cIdentityUserFlow = 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}"}
}
}
}
};
await graphClient.Identity.B2cUserFlows
.Request()
.AddAsync(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);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/identity/b2cUserFlows"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphB2cIdentityUserFlow *b2cIdentityUserFlow = [[MSGraphB2cIdentityUserFlow alloc] init];
[b2cIdentityUserFlow setId:@"UserFlowWithAPIConnector"];
[b2cIdentityUserFlow setUserFlowType: [MSGraphUserFlowType signUpOrSignIn]];
[b2cIdentityUserFlow setUserFlowTypeVersion: 1];
MSGraphUserFlowApiConnectorConfiguration *apiConnectorConfiguration = [[MSGraphUserFlowApiConnectorConfiguration alloc] init];
MSGraphIdentityApiConnector *postFederationSignup = [[MSGraphIdentityApiConnector alloc] init];
[apiConnectorConfiguration setPostFederationSignup:postFederationSignup];
MSGraphIdentityApiConnector *postAttributeCollection = [[MSGraphIdentityApiConnector alloc] init];
[apiConnectorConfiguration setPostAttributeCollection:postAttributeCollection];
[b2cIdentityUserFlow setApiConnectorConfiguration:apiConnectorConfiguration];
NSError *error;
NSData *b2cIdentityUserFlowData = [b2cIdentityUserFlow getSerializedDataWithError:&error];
[urlRequest setHTTPBody:b2cIdentityUserFlowData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
B2cIdentityUserFlow b2cIdentityUserFlow = new B2cIdentityUserFlow();
b2cIdentityUserFlow.id = "UserFlowWithAPIConnector";
b2cIdentityUserFlow.userFlowType = UserFlowType.SIGN_UP_OR_SIGN_IN;
b2cIdentityUserFlow.userFlowTypeVersion = 1;
UserFlowApiConnectorConfiguration apiConnectorConfiguration = new UserFlowApiConnectorConfiguration();
IdentityApiConnector postFederationSignup = new IdentityApiConnector();
postFederationSignup.additionalDataManager().put("@odata.id", new JsonPrimitive("{apiConnectorId}"));
apiConnectorConfiguration.postFederationSignup = postFederationSignup;
IdentityApiConnector postAttributeCollection = new IdentityApiConnector();
postAttributeCollection.additionalDataManager().put("@odata.id", new JsonPrimitive("{apiConnectorId}"));
apiConnectorConfiguration.postAttributeCollection = postAttributeCollection;
b2cIdentityUserFlow.apiConnectorConfiguration = apiConnectorConfiguration;
graphClient.identity().b2cUserFlows()
.buildRequest()
.post(b2cIdentityUserFlow);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewB2cIdentityUserFlow()
id := "UserFlowWithAPIConnector"
requestBody.SetId(&id)
userFlowType := "signUpOrSignIn"
requestBody.SetUserFlowType(&userFlowType)
userFlowTypeVersion := float32(1)
requestBody.SetUserFlowTypeVersion(&userFlowTypeVersion)
apiConnectorConfiguration := msgraphsdk.NewUserFlowApiConnectorConfiguration()
requestBody.SetApiConnectorConfiguration(apiConnectorConfiguration)
postFederationSignup := msgraphsdk.NewIdentityApiConnector()
apiConnectorConfiguration.SetPostFederationSignup(postFederationSignup)
postFederationSignup.SetAdditionalData(map[string]interface{}{
"@odata.id": "{apiConnectorId}",
}
postAttributeCollection := msgraphsdk.NewIdentityApiConnector()
apiConnectorConfiguration.SetPostAttributeCollection(postAttributeCollection)
postAttributeCollection.SetAdditionalData(map[string]interface{}{
"@odata.id": "{apiConnectorId}",
}
result, err := graphClient.Identity().B2cUserFlows().Post(requestBody)
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
注意: 属性 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": {}
}