Namespace: microsoft.graph
Create a new identityUserFlowAttributeAssignment object in a b2cIdentityUserFlow.
This API is available in the following national cloud deployments.
Global service |
US Government L4 |
US Government L5 (DOD) |
China operated by 21Vianet |
✅ |
✅ |
✅ |
✅ |
Permissions
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permission type |
Least privileged permissions |
Higher privileged permissions |
Delegated (work or school account) |
IdentityUserFlow.ReadWrite.All |
Not available. |
Delegated (personal Microsoft account) |
Not supported. |
Not supported. |
Application |
IdentityUserFlow.ReadWrite.All |
Not available. |
Important
In delegated scenarios with work or school accounts, the signed-in user must be assigned a supported Microsoft Entra role or a custom role with a supported role permission. External ID User Flow Administrator is the least privileged role supported for this operation.
HTTP request
POST /identity/b2cUserFlows/{id}/userAttributeAssignments
Request body
In the request body, supply a JSON representation of the identityUserFlowAttributeAssignment object.
The following table lists the properties that are required when you create the identityUserFlowAttributeAssignment.
Property |
Type |
Description |
displayName |
String |
The display name of the identityUserFlowAttribute within a user flow. |
isOptional |
Boolean |
Determines whether the identityUserFlowAttribute is optional. true means the user doesn't have to provide a value. false means the user cannot complete sign-up without providing a value. |
requiresVerification |
Boolean |
Determines whether the identityUserFlowAttribute requires verification. This is only used for verifying the user's phone number or email address. |
userAttributeValues |
userAttributeValuesItem collection |
The input options for the user flow attribute. Only applicable when the userInputType is radioSingleSelect , dropdownSingleSelect , or checkboxMultiSelect . |
userInputType |
identityUserFlowAttributeInputType |
The input type of the user flow attribute. Possible values are: textBox , dateTimeDropdown , radioSingleSelect , dropdownSingleSelect , emailBox , checkboxMultiSelect . |
userAttribute |
identityUserFlowAttribute |
The identifier for the user flow attribute to include in the user flow assignment. |
Response
If successful, this method returns a 201 Created
response code and an identityUserFlowAttributeAssignment object in the response body.
Examples
Request
POST https://graph.microsoft.com/beta/identity/b2cUserFlows/B2C_1_Consumer/userAttributeAssignments
Content-Type: application/json
{
"isOptional": false,
"requiresVerification": false,
"userInputType": "TextBox",
"displayName": "Shoe size",
"userAttributeValues": [],
"userAttribute": {
"id": "extension_guid_shoeSize"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new IdentityUserFlowAttributeAssignment
{
IsOptional = false,
RequiresVerification = false,
UserInputType = IdentityUserFlowAttributeInputType.TextBox,
DisplayName = "Shoe size",
UserAttributeValues = new List<UserAttributeValuesItem>
{
},
UserAttribute = new IdentityUserFlowAttribute
{
Id = "extension_guid_shoeSize",
},
};
// 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["{b2cIdentityUserFlow-id}"].UserAttributeAssignments.PostAsync(requestBody);
mgc-beta identity b2c-user-flows user-attribute-assignments create --b2c-identity-user-flow-id {b2cIdentityUserFlow-id} --body '{\
"isOptional": false,\
"requiresVerification": false,\
"userInputType": "TextBox",\
"displayName": "Shoe size",\
"userAttributeValues": [],\
"userAttribute": {\
"id": "extension_guid_shoeSize"\
}\
}\
'
// 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.NewIdentityUserFlowAttributeAssignment()
isOptional := false
requestBody.SetIsOptional(&isOptional)
requiresVerification := false
requestBody.SetRequiresVerification(&requiresVerification)
userInputType := graphmodels.TEXTBOX_IDENTITYUSERFLOWATTRIBUTEINPUTTYPE
requestBody.SetUserInputType(&userInputType)
displayName := "Shoe size"
requestBody.SetDisplayName(&displayName)
userAttributeValues := []graphmodels.UserAttributeValuesItemable {
}
requestBody.SetUserAttributeValues(userAttributeValues)
userAttribute := graphmodels.NewIdentityUserFlowAttribute()
id := "extension_guid_shoeSize"
userAttribute.SetId(&id)
requestBody.SetUserAttribute(userAttribute)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
userAttributeAssignments, err := graphClient.Identity().B2cUserFlows().ByB2cIdentityUserFlowId("b2cIdentityUserFlow-id").UserAttributeAssignments().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
IdentityUserFlowAttributeAssignment identityUserFlowAttributeAssignment = new IdentityUserFlowAttributeAssignment();
identityUserFlowAttributeAssignment.setIsOptional(false);
identityUserFlowAttributeAssignment.setRequiresVerification(false);
identityUserFlowAttributeAssignment.setUserInputType(IdentityUserFlowAttributeInputType.TextBox);
identityUserFlowAttributeAssignment.setDisplayName("Shoe size");
LinkedList<UserAttributeValuesItem> userAttributeValues = new LinkedList<UserAttributeValuesItem>();
identityUserFlowAttributeAssignment.setUserAttributeValues(userAttributeValues);
IdentityUserFlowAttribute userAttribute = new IdentityUserFlowAttribute();
userAttribute.setId("extension_guid_shoeSize");
identityUserFlowAttributeAssignment.setUserAttribute(userAttribute);
IdentityUserFlowAttributeAssignment result = graphClient.identity().b2cUserFlows().byB2cIdentityUserFlowId("{b2cIdentityUserFlow-id}").userAttributeAssignments().post(identityUserFlowAttributeAssignment);
const options = {
authProvider,
};
const client = Client.init(options);
const identityUserFlowAttributeAssignment = {
isOptional: false,
requiresVerification: false,
userInputType: 'TextBox',
displayName: 'Shoe size',
userAttributeValues: [],
userAttribute: {
id: 'extension_guid_shoeSize'
}
};
await client.api('/identity/b2cUserFlows/B2C_1_Consumer/userAttributeAssignments')
.version('beta')
.post(identityUserFlowAttributeAssignment);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeAssignment;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeInputType;
use Microsoft\Graph\Beta\Generated\Models\UserAttributeValuesItem;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttribute;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new IdentityUserFlowAttributeAssignment();
$requestBody->setIsOptional(false);
$requestBody->setRequiresVerification(false);
$requestBody->setUserInputType(new IdentityUserFlowAttributeInputType('textBox'));
$requestBody->setDisplayName('Shoe size');
$requestBody->setUserAttributeValues([ ]);
$userAttribute = new IdentityUserFlowAttribute();
$userAttribute->setId('extension_guid_shoeSize');
$requestBody->setUserAttribute($userAttribute);
$result = $graphServiceClient->identity()->b2cUserFlows()->byB2cIdentityUserFlowId('b2cIdentityUserFlow-id')->userAttributeAssignments()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
isOptional = $false
requiresVerification = $false
userInputType = "TextBox"
displayName = "Shoe size"
userAttributeValues = @(
)
userAttribute = @{
id = "extension_guid_shoeSize"
}
}
New-MgBetaIdentityB2CUserFlowUserAttributeAssignment -B2cIdentityUserFlowId $b2cIdentityUserFlowId -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.models.identity_user_flow_attribute_assignment import IdentityUserFlowAttributeAssignment
from msgraph_beta.generated.models.identity_user_flow_attribute_input_type import IdentityUserFlowAttributeInputType
from msgraph_beta.generated.models.user_attribute_values_item import UserAttributeValuesItem
from msgraph_beta.generated.models.identity_user_flow_attribute import IdentityUserFlowAttribute
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = IdentityUserFlowAttributeAssignment(
is_optional = False,
requires_verification = False,
user_input_type = IdentityUserFlowAttributeInputType.TextBox,
display_name = "Shoe size",
user_attribute_values = [
],
user_attribute = IdentityUserFlowAttribute(
id = "extension_guid_shoeSize",
),
)
result = await graph_client.identity.b2c_user_flows.by_b2c_identity_user_flow_id('b2cIdentityUserFlow-id').user_attribute_assignments.post(request_body)
Response
Note: The response object shown here might be shortened for readability.
HTTP/1.1 201 Created
Location: https://graph.microsoft.com/beta/identity/b2xUserFlows/B2C_1_Consumer/userAttributeAssignments/extension_guid_shoeSize
Content-Type: application/json
{
"id": "extension_guid_shoeSize",
"isOptional": false,
"requiresVerification": false,
"userInputType": "TextBox",
"displayName": "Shoe size",
"userAttributeValues": []
}