Créer authenticationEventsFlow
Article 08/09/2024
8 contributeurs
Commentaires
Dans cet article
Espace de noms: microsoft.graph
Importante
Les API sous la version /beta
dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .
Créez un objet authenticationEventsFlow du type spécifié dans le corps de la requête. Vous pouvez créer uniquement un type d’objet externalUsersSelfServiceSignupEventsFlow .
Cette API est disponible dans les déploiements de cloud national suivants.
Service global
Gouvernement des États-Unis L4
Us Government L5 (DOD)
Chine gérée par 21Vianet
✅
❌
❌
✅
Autorisations
Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin . Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations . Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations .
Type d’autorisation
Autorisations avec privilèges minimum
Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire)
EventListener.ReadWrite.All
Non disponible.
Déléguée (compte Microsoft personnel)
Non prise en charge.
Non prise en charge.
Application
EventListener.ReadWrite.All
Non disponible.
Importante
Dans les scénarios délégués avec des comptes professionnels ou scolaires, l’utilisateur connecté doit être propriétaire ou membre du groupe ou se voir attribuer un rôle Microsoft Entra pris en charge ou un rôle personnalisé avec une autorisation de rôle prise en charge.
ID externe’administrateur de flux utilisateur est le rôle le moins privilégié pris en charge pour cette opération.
Requête HTTP
POST /identity/authenticationEventsFlows
Corps de la demande
Dans le corps de la demande, fournissez une représentation JSON de l’objet authenticationEventsFlow .
Vous pouvez spécifier les propriétés suivantes lors de la création d’un authenticationEventsFlow . Vous devez inclure la propriété @odata.type avec une valeur du type de flux utilisateur spécifique dans le corps. Par exemple : "@odata.type": "#microsoft.graph.externalUsersSelfServiceSignupEventsFlow"
.
Propriété
Type
Description
displayName
String
Obligatoire. Nom d’affichage de la stratégie d’événements. Doit être unique.
description
String
Facultatif. Description de la stratégie d’événements.
conditions
authenticationConditions
Optional. Conditions représentant le contexte de la demande d’authentification utilisée pour déterminer si la stratégie d’événements est appelée.
priorité
Int32
Optional. Priorité à utiliser pour chaque événement individuel de la stratégie d’événements. Si plusieurs écouteurs concurrents pour un événement ont la même priorité, un est choisi et une erreur est consignée en mode silencieux. La valeur par défaut est 500.
onInteractiveAuthFlowStart
onInteractiveAuthFlowStartHandler
Obligatoire. Configuration de ce qu’il faut appeler lorsqu’un flux d’authentification est prêt à être lancé.
onAuthenticationMethodLoadStart
onAuthenticationMethodLoadStartHandler
Obligatoire. Configuration de ce qu’il faut appeler lorsque les méthodes d’authentification sont prêtes à être présentées à l’utilisateur. Doit avoir au moins un fournisseur d’identité lié.
onAttributeCollection
onAttributeCollectionHandler
Optional. Configuration de ce qu’il faut appeler lorsque les attributs sont prêts à être collectés auprès de l’utilisateur. Pour configurer cette propriété, vous devez spécifier des attributs et des objets devues onAttributeCollectionPage >.
onUserCreateStart
onUserCreateStartHandler
Optional. Configuration de ce qu’il faut appeler lors de la création de l’utilisateur.
Réponse
Si elle réussit, cette méthode renvoie un 201 Created
code de réponse et une représentation JSON d’un objet authenticationEventsFlow dans le corps de la réponse. Une propriété @odata.type avec la valeur du type de flux utilisateur spécifique créé est incluse dans le corps de la réponse. Par exemple : "@odata.type": "#microsoft.graph.externalUsersSelfServiceSignupEventsFlow"
.
Exemples
Exemple 1 : Créer un flux d’utilisateur d’inscription et de connexion d’identités externes de base dans un locataire externe
Demande
L’exemple suivant illustre une demande. Dans cet exemple, vous créez un flux utilisateur nommé « Flux utilisateur Woodgrove » avec la configuration suivante.
Autoriser l’inscription et la connexion.
Autoriser les utilisateurs à créer un e-mail local avec un compte de mot de passe.
Collectez l’attribut intégré Nom d’affichage de l’utilisateur.
Définit la façon dont les attributs à collecter seront affichés à l’utilisateur.
POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
"displayName": "Woodgrove Drive User Flow",
"onAuthenticationMethodLoadStart": {
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
"identityProviders": [
{
"id": "EmailPassword-OAUTH"
}
]
},
"onInteractiveAuthFlowStart": {
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
"isSignUpAllowed": true
},
"onAttributeCollection": {
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
"attributes": [
{
"id": "email",
"displayName": "Email Address",
"description": "Email address of the user",
"userFlowAttributeType": "builtIn",
"dataType": "string"
},
{
"id": "displayName",
"displayName": "Display Name",
"description": "Display Name of the User.",
"userFlowAttributeType": "builtIn",
"dataType": "string"
}
],
"attributeCollectionPage": {
"views": [
{
"inputs": [
{
"attribute": "email",
"label": "Email Address",
"inputType": "Text",
"hidden": true,
"editable": false,
"writeToDirectory": true,
"required": true,
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
},
{
"attribute": "displayName",
"label": "Display Name",
"inputType": "text",
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
]
}
]
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new ExternalUsersSelfServiceSignUpEventsFlow
{
OdataType = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
DisplayName = "Woodgrove Drive User Flow",
OnAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
IdentityProviders = new List<IdentityProviderBase>
{
new IdentityProviderBase
{
Id = "EmailPassword-OAUTH",
},
},
},
OnInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
IsSignUpAllowed = true,
},
OnAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
Attributes = new List<IdentityUserFlowAttribute>
{
new IdentityUserFlowAttribute
{
Id = "email",
DisplayName = "Email Address",
Description = "Email address of the user",
UserFlowAttributeType = IdentityUserFlowAttributeType.BuiltIn,
DataType = IdentityUserFlowAttributeDataType.String,
},
new IdentityUserFlowAttribute
{
Id = "displayName",
DisplayName = "Display Name",
Description = "Display Name of the User.",
UserFlowAttributeType = IdentityUserFlowAttributeType.BuiltIn,
DataType = IdentityUserFlowAttributeDataType.String,
},
},
AttributeCollectionPage = new AuthenticationAttributeCollectionPage
{
Views = new List<AuthenticationAttributeCollectionPageViewConfiguration>
{
new AuthenticationAttributeCollectionPageViewConfiguration
{
Inputs = new List<AuthenticationAttributeCollectionInputConfiguration>
{
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "email",
Label = "Email Address",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = true,
Editable = false,
WriteToDirectory = true,
Required = true,
ValidationRegEx = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
},
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "displayName",
Label = "Display Name",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = false,
Editable = true,
WriteToDirectory = true,
Required = false,
ValidationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
},
},
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.AuthenticationEventsFlows.PostAsync(requestBody);
mgc-beta identity authentication-events-flows create --body '{\
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",\
"displayName": "Woodgrove Drive User Flow",\
"onAuthenticationMethodLoadStart": {\
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",\
"identityProviders": [\
{\
"id": "EmailPassword-OAUTH"\
}\
]\
}, \
"onInteractiveAuthFlowStart": {\
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",\
"isSignUpAllowed": true\
},\
"onAttributeCollection": {\
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",\
"attributes": [\
{\
"id": "email",\
"displayName": "Email Address",\
"description": "Email address of the user",\
"userFlowAttributeType": "builtIn",\
"dataType": "string"\
},\
{\
"id": "displayName",\
"displayName": "Display Name",\
"description": "Display Name of the User.",\
"userFlowAttributeType": "builtIn",\
"dataType": "string"\
}\
],\
"attributeCollectionPage": {\
"views": [\
{\
"inputs": [\
{\
"attribute": "email",\
"label": "Email Address",\
"inputType": "Text",\
"hidden": true,\
"editable": false,\
"writeToDirectory": true,\
"required": true,\
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"\
},\
{\
"attribute": "displayName",\
"label": "Display Name",\
"inputType": "text",\
"hidden": false,\
"editable": true,\
"writeToDirectory": true,\
"required": false,\
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"\
}\
]\
}\
]\
}\
}\
}\
'
// 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.NewAuthenticationEventsFlow()
displayName := "Woodgrove Drive User Flow"
requestBody.SetDisplayName(&displayName)
onAuthenticationMethodLoadStart := graphmodels.NewOnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp()
identityProviderBase := graphmodels.NewIdentityProviderBase()
id := "EmailPassword-OAUTH"
identityProviderBase.SetId(&id)
identityProviders := []graphmodels.IdentityProviderBaseable {
identityProviderBase,
}
onAuthenticationMethodLoadStart.SetIdentityProviders(identityProviders)
requestBody.SetOnAuthenticationMethodLoadStart(onAuthenticationMethodLoadStart)
onInteractiveAuthFlowStart := graphmodels.NewOnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp()
isSignUpAllowed := true
onInteractiveAuthFlowStart.SetIsSignUpAllowed(&isSignUpAllowed)
requestBody.SetOnInteractiveAuthFlowStart(onInteractiveAuthFlowStart)
onAttributeCollection := graphmodels.NewOnAttributeCollectionExternalUsersSelfServiceSignUp()
identityUserFlowAttribute := graphmodels.NewIdentityUserFlowAttribute()
id := "email"
identityUserFlowAttribute.SetId(&id)
displayName := "Email Address"
identityUserFlowAttribute.SetDisplayName(&displayName)
description := "Email address of the user"
identityUserFlowAttribute.SetDescription(&description)
userFlowAttributeType := graphmodels.BUILTIN_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute.SetDataType(&dataType)
identityUserFlowAttribute1 := graphmodels.NewIdentityUserFlowAttribute()
id := "displayName"
identityUserFlowAttribute1.SetId(&id)
displayName := "Display Name"
identityUserFlowAttribute1.SetDisplayName(&displayName)
description := "Display Name of the User."
identityUserFlowAttribute1.SetDescription(&description)
userFlowAttributeType := graphmodels.BUILTIN_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute1.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute1.SetDataType(&dataType)
attributes := []graphmodels.IdentityUserFlowAttributeable {
identityUserFlowAttribute,
identityUserFlowAttribute1,
}
onAttributeCollection.SetAttributes(attributes)
attributeCollectionPage := graphmodels.NewAuthenticationAttributeCollectionPage()
authenticationAttributeCollectionPageViewConfiguration := graphmodels.NewAuthenticationAttributeCollectionPageViewConfiguration()
authenticationAttributeCollectionInputConfiguration := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "email"
authenticationAttributeCollectionInputConfiguration.SetAttribute(&attribute)
label := "Email Address"
authenticationAttributeCollectionInputConfiguration.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration.SetInputType(&inputType)
hidden := true
authenticationAttributeCollectionInputConfiguration.SetHidden(&hidden)
editable := false
authenticationAttributeCollectionInputConfiguration.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration.SetWriteToDirectory(&writeToDirectory)
required := true
authenticationAttributeCollectionInputConfiguration.SetRequired(&required)
validationRegEx := "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
authenticationAttributeCollectionInputConfiguration.SetValidationRegEx(&validationRegEx)
authenticationAttributeCollectionInputConfiguration1 := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "displayName"
authenticationAttributeCollectionInputConfiguration1.SetAttribute(&attribute)
label := "Display Name"
authenticationAttributeCollectionInputConfiguration1.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration1.SetInputType(&inputType)
hidden := false
authenticationAttributeCollectionInputConfiguration1.SetHidden(&hidden)
editable := true
authenticationAttributeCollectionInputConfiguration1.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration1.SetWriteToDirectory(&writeToDirectory)
required := false
authenticationAttributeCollectionInputConfiguration1.SetRequired(&required)
validationRegEx := "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
authenticationAttributeCollectionInputConfiguration1.SetValidationRegEx(&validationRegEx)
inputs := []graphmodels.AuthenticationAttributeCollectionInputConfigurationable {
authenticationAttributeCollectionInputConfiguration,
authenticationAttributeCollectionInputConfiguration1,
}
authenticationAttributeCollectionPageViewConfiguration.SetInputs(inputs)
views := []graphmodels.AuthenticationAttributeCollectionPageViewConfigurationable {
authenticationAttributeCollectionPageViewConfiguration,
}
attributeCollectionPage.SetViews(views)
onAttributeCollection.SetAttributeCollectionPage(attributeCollectionPage)
requestBody.SetOnAttributeCollection(onAttributeCollection)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
authenticationEventsFlows, err := graphClient.Identity().AuthenticationEventsFlows().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ExternalUsersSelfServiceSignUpEventsFlow authenticationEventsFlow = new ExternalUsersSelfServiceSignUpEventsFlow();
authenticationEventsFlow.setOdataType("#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow");
authenticationEventsFlow.setDisplayName("Woodgrove Drive User Flow");
OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp onAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp();
onAuthenticationMethodLoadStart.setOdataType("#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp");
LinkedList<IdentityProviderBase> identityProviders = new LinkedList<IdentityProviderBase>();
IdentityProviderBase identityProviderBase = new IdentityProviderBase();
identityProviderBase.setId("EmailPassword-OAUTH");
identityProviders.add(identityProviderBase);
onAuthenticationMethodLoadStart.setIdentityProviders(identityProviders);
authenticationEventsFlow.setOnAuthenticationMethodLoadStart(onAuthenticationMethodLoadStart);
OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp onInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp();
onInteractiveAuthFlowStart.setOdataType("#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp");
onInteractiveAuthFlowStart.setIsSignUpAllowed(true);
authenticationEventsFlow.setOnInteractiveAuthFlowStart(onInteractiveAuthFlowStart);
OnAttributeCollectionExternalUsersSelfServiceSignUp onAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp();
onAttributeCollection.setOdataType("#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp");
LinkedList<IdentityUserFlowAttribute> attributes = new LinkedList<IdentityUserFlowAttribute>();
IdentityUserFlowAttribute identityUserFlowAttribute = new IdentityUserFlowAttribute();
identityUserFlowAttribute.setId("email");
identityUserFlowAttribute.setDisplayName("Email Address");
identityUserFlowAttribute.setDescription("Email address of the user");
identityUserFlowAttribute.setUserFlowAttributeType(IdentityUserFlowAttributeType.BuiltIn);
identityUserFlowAttribute.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute);
IdentityUserFlowAttribute identityUserFlowAttribute1 = new IdentityUserFlowAttribute();
identityUserFlowAttribute1.setId("displayName");
identityUserFlowAttribute1.setDisplayName("Display Name");
identityUserFlowAttribute1.setDescription("Display Name of the User.");
identityUserFlowAttribute1.setUserFlowAttributeType(IdentityUserFlowAttributeType.BuiltIn);
identityUserFlowAttribute1.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute1);
onAttributeCollection.setAttributes(attributes);
AuthenticationAttributeCollectionPage attributeCollectionPage = new AuthenticationAttributeCollectionPage();
LinkedList<AuthenticationAttributeCollectionPageViewConfiguration> views = new LinkedList<AuthenticationAttributeCollectionPageViewConfiguration>();
AuthenticationAttributeCollectionPageViewConfiguration authenticationAttributeCollectionPageViewConfiguration = new AuthenticationAttributeCollectionPageViewConfiguration();
LinkedList<AuthenticationAttributeCollectionInputConfiguration> inputs = new LinkedList<AuthenticationAttributeCollectionInputConfiguration>();
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration.setAttribute("email");
authenticationAttributeCollectionInputConfiguration.setLabel("Email Address");
authenticationAttributeCollectionInputConfiguration.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration.setHidden(true);
authenticationAttributeCollectionInputConfiguration.setEditable(false);
authenticationAttributeCollectionInputConfiguration.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration.setRequired(true);
authenticationAttributeCollectionInputConfiguration.setValidationRegEx("^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$");
inputs.add(authenticationAttributeCollectionInputConfiguration);
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration1 = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration1.setAttribute("displayName");
authenticationAttributeCollectionInputConfiguration1.setLabel("Display Name");
authenticationAttributeCollectionInputConfiguration1.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration1.setHidden(false);
authenticationAttributeCollectionInputConfiguration1.setEditable(true);
authenticationAttributeCollectionInputConfiguration1.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration1.setRequired(false);
authenticationAttributeCollectionInputConfiguration1.setValidationRegEx("^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$");
inputs.add(authenticationAttributeCollectionInputConfiguration1);
authenticationAttributeCollectionPageViewConfiguration.setInputs(inputs);
views.add(authenticationAttributeCollectionPageViewConfiguration);
attributeCollectionPage.setViews(views);
onAttributeCollection.setAttributeCollectionPage(attributeCollectionPage);
authenticationEventsFlow.setOnAttributeCollection(onAttributeCollection);
AuthenticationEventsFlow result = graphClient.identity().authenticationEventsFlows().post(authenticationEventsFlow);
const options = {
authProvider,
};
const client = Client.init(options);
const authenticationEventsFlow = {
'@odata.type': '#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow',
displayName: 'Woodgrove Drive User Flow',
onAuthenticationMethodLoadStart: {
'@odata.type': '#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp',
identityProviders: [
{
id: 'EmailPassword-OAUTH'
}
]
},
onInteractiveAuthFlowStart: {
'@odata.type': '#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp',
isSignUpAllowed: true
},
onAttributeCollection: {
'@odata.type': '#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp',
attributes: [
{
id: 'email',
displayName: 'Email Address',
description: 'Email address of the user',
userFlowAttributeType: 'builtIn',
dataType: 'string'
},
{
id: 'displayName',
displayName: 'Display Name',
description: 'Display Name of the User.',
userFlowAttributeType: 'builtIn',
dataType: 'string'
}
],
attributeCollectionPage: {
views: [
{
inputs: [
{
attribute: 'email',
label: 'Email Address',
inputType: 'Text',
hidden: true,
editable: false,
writeToDirectory: true,
required: true,
validationRegEx: '^[a-zA-Z0-9.!#$%&’\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$'
},
{
attribute: 'displayName',
label: 'Display Name',
inputType: 'text',
hidden: false,
editable: true,
writeToDirectory: true,
required: false,
validationRegEx: '^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$'
}
]
}
]
}
}
};
await client.api('/identity/authenticationEventsFlows')
.version('beta')
.post(authenticationEventsFlow);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\ExternalUsersSelfServiceSignUpEventsFlow;
use Microsoft\Graph\Beta\Generated\Models\OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\IdentityProviderBase;
use Microsoft\Graph\Beta\Generated\Models\OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\OnAttributeCollectionExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttribute;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeType;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeDataType;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionPage;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionPageViewConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionInputConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionInputType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ExternalUsersSelfServiceSignUpEventsFlow();
$requestBody->setOdataType('#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow');
$requestBody->setDisplayName('Woodgrove Drive User Flow');
$onAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp();
$onAuthenticationMethodLoadStart->setOdataType('#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp');
$identityProvidersIdentityProviderBase1 = new IdentityProviderBase();
$identityProvidersIdentityProviderBase1->setId('EmailPassword-OAUTH');
$identityProvidersArray []= $identityProvidersIdentityProviderBase1;
$onAuthenticationMethodLoadStart->setIdentityProviders($identityProvidersArray);
$requestBody->setOnAuthenticationMethodLoadStart($onAuthenticationMethodLoadStart);
$onInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp();
$onInteractiveAuthFlowStart->setOdataType('#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp');
$onInteractiveAuthFlowStart->setIsSignUpAllowed(true);
$requestBody->setOnInteractiveAuthFlowStart($onInteractiveAuthFlowStart);
$onAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp();
$onAttributeCollection->setOdataType('#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp');
$attributesIdentityUserFlowAttribute1 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute1->setId('email');
$attributesIdentityUserFlowAttribute1->setDisplayName('Email Address');
$attributesIdentityUserFlowAttribute1->setDescription('Email address of the user');
$attributesIdentityUserFlowAttribute1->setUserFlowAttributeType(new IdentityUserFlowAttributeType('builtIn'));
$attributesIdentityUserFlowAttribute1->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute1;
$attributesIdentityUserFlowAttribute2 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute2->setId('displayName');
$attributesIdentityUserFlowAttribute2->setDisplayName('Display Name');
$attributesIdentityUserFlowAttribute2->setDescription('Display Name of the User.');
$attributesIdentityUserFlowAttribute2->setUserFlowAttributeType(new IdentityUserFlowAttributeType('builtIn'));
$attributesIdentityUserFlowAttribute2->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute2;
$onAttributeCollection->setAttributes($attributesArray);
$onAttributeCollectionAttributeCollectionPage = new AuthenticationAttributeCollectionPage();
$viewsAuthenticationAttributeCollectionPageViewConfiguration1 = new AuthenticationAttributeCollectionPageViewConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration1 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration1->setAttribute('email');
$inputsAuthenticationAttributeCollectionInputConfiguration1->setLabel('Email Address');
$inputsAuthenticationAttributeCollectionInputConfiguration1->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration1->setHidden(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setEditable(false);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setRequired(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setValidationRegEx('^[a-zA-Z0-9.!#$%&’\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration1;
$inputsAuthenticationAttributeCollectionInputConfiguration2 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration2->setAttribute('displayName');
$inputsAuthenticationAttributeCollectionInputConfiguration2->setLabel('Display Name');
$inputsAuthenticationAttributeCollectionInputConfiguration2->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration2->setHidden(false);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setEditable(true);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setRequired(false);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setValidationRegEx('^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration2;
$viewsAuthenticationAttributeCollectionPageViewConfiguration1->setInputs($inputsArray);
$viewsArray []= $viewsAuthenticationAttributeCollectionPageViewConfiguration1;
$onAttributeCollectionAttributeCollectionPage->setViews($viewsArray);
$onAttributeCollection->setAttributeCollectionPage($onAttributeCollectionAttributeCollectionPage);
$requestBody->setOnAttributeCollection($onAttributeCollection);
$result = $graphServiceClient->identity()->authenticationEventsFlows()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@odata.type" = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow"
displayName = "Woodgrove Drive User Flow"
onAuthenticationMethodLoadStart = @{
"@odata.type" = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp"
identityProviders = @(
@{
id = "EmailPassword-OAUTH"
}
)
}
onInteractiveAuthFlowStart = @{
"@odata.type" = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp"
isSignUpAllowed = $true
}
onAttributeCollection = @{
"@odata.type" = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp"
attributes = @(
@{
id = "email"
displayName = "Email Address"
description = "Email address of the user"
userFlowAttributeType = "builtIn"
dataType = "string"
}
@{
id = "displayName"
displayName = "Display Name"
description = "Display Name of the User."
userFlowAttributeType = "builtIn"
dataType = "string"
}
)
attributeCollectionPage = @{
views = @(
@{
inputs = @(
@{
attribute = "email"
label = "Email Address"
inputType = "Text"
hidden = $true
editable = $false
writeToDirectory = $true
required = $true
validationRegEx = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
}
@{
attribute = "displayName"
label = "Display Name"
inputType = "text"
hidden = $false
editable = $true
writeToDirectory = $true
required = $false
validationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
)
}
)
}
}
}
New-MgBetaIdentityAuthenticationEventFlow -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.external_users_self_service_sign_up_events_flow import ExternalUsersSelfServiceSignUpEventsFlow
from msgraph_beta.generated.models.on_authentication_method_load_start_external_users_self_service_sign_up import OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.identity_provider_base import IdentityProviderBase
from msgraph_beta.generated.models.on_interactive_auth_flow_start_external_users_self_service_sign_up import OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.on_attribute_collection_external_users_self_service_sign_up import OnAttributeCollectionExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.identity_user_flow_attribute import IdentityUserFlowAttribute
from msgraph_beta.generated.models.identity_user_flow_attribute_type import IdentityUserFlowAttributeType
from msgraph_beta.generated.models.identity_user_flow_attribute_data_type import IdentityUserFlowAttributeDataType
from msgraph_beta.generated.models.authentication_attribute_collection_page import AuthenticationAttributeCollectionPage
from msgraph_beta.generated.models.authentication_attribute_collection_page_view_configuration import AuthenticationAttributeCollectionPageViewConfiguration
from msgraph_beta.generated.models.authentication_attribute_collection_input_configuration import AuthenticationAttributeCollectionInputConfiguration
from msgraph_beta.generated.models.authentication_attribute_collection_input_type import AuthenticationAttributeCollectionInputType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ExternalUsersSelfServiceSignUpEventsFlow(
odata_type = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
display_name = "Woodgrove Drive User Flow",
on_authentication_method_load_start = OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
identity_providers = [
IdentityProviderBase(
id = "EmailPassword-OAUTH",
),
],
),
on_interactive_auth_flow_start = OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
is_sign_up_allowed = True,
),
on_attribute_collection = OnAttributeCollectionExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
attributes = [
IdentityUserFlowAttribute(
id = "email",
display_name = "Email Address",
description = "Email address of the user",
user_flow_attribute_type = IdentityUserFlowAttributeType.BuiltIn,
data_type = IdentityUserFlowAttributeDataType.String,
),
IdentityUserFlowAttribute(
id = "displayName",
display_name = "Display Name",
description = "Display Name of the User.",
user_flow_attribute_type = IdentityUserFlowAttributeType.BuiltIn,
data_type = IdentityUserFlowAttributeDataType.String,
),
],
attribute_collection_page = AuthenticationAttributeCollectionPage(
views = [
AuthenticationAttributeCollectionPageViewConfiguration(
inputs = [
AuthenticationAttributeCollectionInputConfiguration(
attribute = "email",
label = "Email Address",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = True,
editable = False,
write_to_directory = True,
required = True,
validation_reg_ex = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
),
AuthenticationAttributeCollectionInputConfiguration(
attribute = "displayName",
label = "Display Name",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = False,
editable = True,
write_to_directory = True,
required = False,
validation_reg_ex = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
),
],
),
],
),
),
)
result = await graph_client.identity.authentication_events_flows.post(request_body)
Réponse
L’exemple suivant illustre la réponse.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/authenticationEventsFlows/$entity",
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
"id": "0313cc37-d421-421d-857b-87804d61e33e",
"displayName": "Woodgrove Drive User Flow",
"conditions": {
"applications": {
"includeAllApplications": false
}
},
"onInteractiveAuthFlowStart": {
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
"isSignUpAllowed": true
},
"onAuthenticationMethodLoadStart": {
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp"
},
"onAttributeCollection": {
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
"accessPackages": [],
"attributeCollectionPage": {
"customStringsFileId": null,
"views": [
{
"title": null,
"description": null,
"inputs": [
{
"attribute": "email",
"label": "Email Address",
"inputType": "text",
"defaultValue": null,
"hidden": true,
"editable": false,
"writeToDirectory": true,
"required": true,
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
"options": []
},
{
"attribute": "displayName",
"label": "Display Name",
"inputType": "text",
"defaultValue": null,
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
"options": []
}
]
}
]
}
}
}
Exemple 2 : Créer un flux d’utilisateur d’inscription et de connexion d’identités externes de base avec une application attachée dans un locataire externe
Demande
L’exemple suivant illustre une demande. Dans cet exemple, vous créez un flux utilisateur nommé « Flux utilisateur Woodgrove » avec la configuration suivante.
Autoriser l’inscription et la connexion.
Autoriser les utilisateurs à créer un e-mail local avec un compte de mot de passe.
Collectez l’attribut intégré Nom d’affichage de l’utilisateur.
Définit la façon dont les attributs à collecter seront affichés à l’utilisateur.
POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
"displayName": "Woodgrove Drive User Flow",
"conditions": {
"applications": {
"includeApplications": [
{
"appId": "63856651-13d9-4784-9abf-20758d509e19"
}
]
}
},
"onAuthenticationMethodLoadStart": {
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
"identityProviders": [
{
"id": "EmailPassword-OAUTH"
}
]
},
"onInteractiveAuthFlowStart": {
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
"isSignUpAllowed": true
},
"onAttributeCollection": {
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
"attributes": [
{
"id": "email",
"displayName": "Email Address",
"description": "Email address of the user",
"userFlowAttributeType": "builtIn",
"dataType": "string"
},
{
"id": "displayName",
"displayName": "Display Name",
"description": "Display Name of the User.",
"userFlowAttributeType": "builtIn",
"dataType": "string"
}
],
"attributeCollectionPage": {
"views": [
{
"inputs": [
{
"attribute": "email",
"label": "Email Address",
"inputType": "Text",
"hidden": true,
"editable": false,
"writeToDirectory": true,
"required": true,
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
},
{
"attribute": "displayName",
"label": "Display Name",
"inputType": "text",
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
]
}
]
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new ExternalUsersSelfServiceSignUpEventsFlow
{
OdataType = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
DisplayName = "Woodgrove Drive User Flow",
Conditions = new AuthenticationConditions
{
Applications = new AuthenticationConditionsApplications
{
IncludeApplications = new List<AuthenticationConditionApplication>
{
new AuthenticationConditionApplication
{
AppId = "63856651-13d9-4784-9abf-20758d509e19",
},
},
},
},
OnAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
IdentityProviders = new List<IdentityProviderBase>
{
new IdentityProviderBase
{
Id = "EmailPassword-OAUTH",
},
},
},
OnInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
IsSignUpAllowed = true,
},
OnAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
Attributes = new List<IdentityUserFlowAttribute>
{
new IdentityUserFlowAttribute
{
Id = "email",
DisplayName = "Email Address",
Description = "Email address of the user",
UserFlowAttributeType = IdentityUserFlowAttributeType.BuiltIn,
DataType = IdentityUserFlowAttributeDataType.String,
},
new IdentityUserFlowAttribute
{
Id = "displayName",
DisplayName = "Display Name",
Description = "Display Name of the User.",
UserFlowAttributeType = IdentityUserFlowAttributeType.BuiltIn,
DataType = IdentityUserFlowAttributeDataType.String,
},
},
AttributeCollectionPage = new AuthenticationAttributeCollectionPage
{
Views = new List<AuthenticationAttributeCollectionPageViewConfiguration>
{
new AuthenticationAttributeCollectionPageViewConfiguration
{
Inputs = new List<AuthenticationAttributeCollectionInputConfiguration>
{
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "email",
Label = "Email Address",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = true,
Editable = false,
WriteToDirectory = true,
Required = true,
ValidationRegEx = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
},
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "displayName",
Label = "Display Name",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = false,
Editable = true,
WriteToDirectory = true,
Required = false,
ValidationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
},
},
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.AuthenticationEventsFlows.PostAsync(requestBody);
mgc-beta identity authentication-events-flows create --body '{\
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",\
"displayName": "Woodgrove Drive User Flow",\
"conditions": {\
"applications": {\
"includeApplications": [\
{\
"appId": "63856651-13d9-4784-9abf-20758d509e19"\
}\
]\
}\
},\
"onAuthenticationMethodLoadStart": {\
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",\
"identityProviders": [\
{\
"id": "EmailPassword-OAUTH"\
}\
]\
}, \
"onInteractiveAuthFlowStart": {\
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",\
"isSignUpAllowed": true\
},\
"onAttributeCollection": {\
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",\
"attributes": [\
{\
"id": "email",\
"displayName": "Email Address",\
"description": "Email address of the user",\
"userFlowAttributeType": "builtIn",\
"dataType": "string"\
},\
{\
"id": "displayName",\
"displayName": "Display Name",\
"description": "Display Name of the User.",\
"userFlowAttributeType": "builtIn",\
"dataType": "string"\
}\
],\
"attributeCollectionPage": {\
"views": [\
{\
"inputs": [\
{\
"attribute": "email",\
"label": "Email Address",\
"inputType": "Text",\
"hidden": true,\
"editable": false,\
"writeToDirectory": true,\
"required": true,\
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"\
},\
{\
"attribute": "displayName",\
"label": "Display Name",\
"inputType": "text",\
"hidden": false,\
"editable": true,\
"writeToDirectory": true,\
"required": false,\
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"\
}\
]\
}\
]\
}\
}\
}\
'
// 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.NewAuthenticationEventsFlow()
displayName := "Woodgrove Drive User Flow"
requestBody.SetDisplayName(&displayName)
conditions := graphmodels.NewAuthenticationConditions()
applications := graphmodels.NewAuthenticationConditionsApplications()
authenticationConditionApplication := graphmodels.NewAuthenticationConditionApplication()
appId := "63856651-13d9-4784-9abf-20758d509e19"
authenticationConditionApplication.SetAppId(&appId)
includeApplications := []graphmodels.AuthenticationConditionApplicationable {
authenticationConditionApplication,
}
applications.SetIncludeApplications(includeApplications)
conditions.SetApplications(applications)
requestBody.SetConditions(conditions)
onAuthenticationMethodLoadStart := graphmodels.NewOnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp()
identityProviderBase := graphmodels.NewIdentityProviderBase()
id := "EmailPassword-OAUTH"
identityProviderBase.SetId(&id)
identityProviders := []graphmodels.IdentityProviderBaseable {
identityProviderBase,
}
onAuthenticationMethodLoadStart.SetIdentityProviders(identityProviders)
requestBody.SetOnAuthenticationMethodLoadStart(onAuthenticationMethodLoadStart)
onInteractiveAuthFlowStart := graphmodels.NewOnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp()
isSignUpAllowed := true
onInteractiveAuthFlowStart.SetIsSignUpAllowed(&isSignUpAllowed)
requestBody.SetOnInteractiveAuthFlowStart(onInteractiveAuthFlowStart)
onAttributeCollection := graphmodels.NewOnAttributeCollectionExternalUsersSelfServiceSignUp()
identityUserFlowAttribute := graphmodels.NewIdentityUserFlowAttribute()
id := "email"
identityUserFlowAttribute.SetId(&id)
displayName := "Email Address"
identityUserFlowAttribute.SetDisplayName(&displayName)
description := "Email address of the user"
identityUserFlowAttribute.SetDescription(&description)
userFlowAttributeType := graphmodels.BUILTIN_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute.SetDataType(&dataType)
identityUserFlowAttribute1 := graphmodels.NewIdentityUserFlowAttribute()
id := "displayName"
identityUserFlowAttribute1.SetId(&id)
displayName := "Display Name"
identityUserFlowAttribute1.SetDisplayName(&displayName)
description := "Display Name of the User."
identityUserFlowAttribute1.SetDescription(&description)
userFlowAttributeType := graphmodels.BUILTIN_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute1.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute1.SetDataType(&dataType)
attributes := []graphmodels.IdentityUserFlowAttributeable {
identityUserFlowAttribute,
identityUserFlowAttribute1,
}
onAttributeCollection.SetAttributes(attributes)
attributeCollectionPage := graphmodels.NewAuthenticationAttributeCollectionPage()
authenticationAttributeCollectionPageViewConfiguration := graphmodels.NewAuthenticationAttributeCollectionPageViewConfiguration()
authenticationAttributeCollectionInputConfiguration := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "email"
authenticationAttributeCollectionInputConfiguration.SetAttribute(&attribute)
label := "Email Address"
authenticationAttributeCollectionInputConfiguration.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration.SetInputType(&inputType)
hidden := true
authenticationAttributeCollectionInputConfiguration.SetHidden(&hidden)
editable := false
authenticationAttributeCollectionInputConfiguration.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration.SetWriteToDirectory(&writeToDirectory)
required := true
authenticationAttributeCollectionInputConfiguration.SetRequired(&required)
validationRegEx := "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
authenticationAttributeCollectionInputConfiguration.SetValidationRegEx(&validationRegEx)
authenticationAttributeCollectionInputConfiguration1 := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "displayName"
authenticationAttributeCollectionInputConfiguration1.SetAttribute(&attribute)
label := "Display Name"
authenticationAttributeCollectionInputConfiguration1.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration1.SetInputType(&inputType)
hidden := false
authenticationAttributeCollectionInputConfiguration1.SetHidden(&hidden)
editable := true
authenticationAttributeCollectionInputConfiguration1.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration1.SetWriteToDirectory(&writeToDirectory)
required := false
authenticationAttributeCollectionInputConfiguration1.SetRequired(&required)
validationRegEx := "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
authenticationAttributeCollectionInputConfiguration1.SetValidationRegEx(&validationRegEx)
inputs := []graphmodels.AuthenticationAttributeCollectionInputConfigurationable {
authenticationAttributeCollectionInputConfiguration,
authenticationAttributeCollectionInputConfiguration1,
}
authenticationAttributeCollectionPageViewConfiguration.SetInputs(inputs)
views := []graphmodels.AuthenticationAttributeCollectionPageViewConfigurationable {
authenticationAttributeCollectionPageViewConfiguration,
}
attributeCollectionPage.SetViews(views)
onAttributeCollection.SetAttributeCollectionPage(attributeCollectionPage)
requestBody.SetOnAttributeCollection(onAttributeCollection)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
authenticationEventsFlows, err := graphClient.Identity().AuthenticationEventsFlows().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ExternalUsersSelfServiceSignUpEventsFlow authenticationEventsFlow = new ExternalUsersSelfServiceSignUpEventsFlow();
authenticationEventsFlow.setOdataType("#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow");
authenticationEventsFlow.setDisplayName("Woodgrove Drive User Flow");
AuthenticationConditions conditions = new AuthenticationConditions();
AuthenticationConditionsApplications applications = new AuthenticationConditionsApplications();
LinkedList<AuthenticationConditionApplication> includeApplications = new LinkedList<AuthenticationConditionApplication>();
AuthenticationConditionApplication authenticationConditionApplication = new AuthenticationConditionApplication();
authenticationConditionApplication.setAppId("63856651-13d9-4784-9abf-20758d509e19");
includeApplications.add(authenticationConditionApplication);
applications.setIncludeApplications(includeApplications);
conditions.setApplications(applications);
authenticationEventsFlow.setConditions(conditions);
OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp onAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp();
onAuthenticationMethodLoadStart.setOdataType("#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp");
LinkedList<IdentityProviderBase> identityProviders = new LinkedList<IdentityProviderBase>();
IdentityProviderBase identityProviderBase = new IdentityProviderBase();
identityProviderBase.setId("EmailPassword-OAUTH");
identityProviders.add(identityProviderBase);
onAuthenticationMethodLoadStart.setIdentityProviders(identityProviders);
authenticationEventsFlow.setOnAuthenticationMethodLoadStart(onAuthenticationMethodLoadStart);
OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp onInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp();
onInteractiveAuthFlowStart.setOdataType("#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp");
onInteractiveAuthFlowStart.setIsSignUpAllowed(true);
authenticationEventsFlow.setOnInteractiveAuthFlowStart(onInteractiveAuthFlowStart);
OnAttributeCollectionExternalUsersSelfServiceSignUp onAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp();
onAttributeCollection.setOdataType("#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp");
LinkedList<IdentityUserFlowAttribute> attributes = new LinkedList<IdentityUserFlowAttribute>();
IdentityUserFlowAttribute identityUserFlowAttribute = new IdentityUserFlowAttribute();
identityUserFlowAttribute.setId("email");
identityUserFlowAttribute.setDisplayName("Email Address");
identityUserFlowAttribute.setDescription("Email address of the user");
identityUserFlowAttribute.setUserFlowAttributeType(IdentityUserFlowAttributeType.BuiltIn);
identityUserFlowAttribute.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute);
IdentityUserFlowAttribute identityUserFlowAttribute1 = new IdentityUserFlowAttribute();
identityUserFlowAttribute1.setId("displayName");
identityUserFlowAttribute1.setDisplayName("Display Name");
identityUserFlowAttribute1.setDescription("Display Name of the User.");
identityUserFlowAttribute1.setUserFlowAttributeType(IdentityUserFlowAttributeType.BuiltIn);
identityUserFlowAttribute1.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute1);
onAttributeCollection.setAttributes(attributes);
AuthenticationAttributeCollectionPage attributeCollectionPage = new AuthenticationAttributeCollectionPage();
LinkedList<AuthenticationAttributeCollectionPageViewConfiguration> views = new LinkedList<AuthenticationAttributeCollectionPageViewConfiguration>();
AuthenticationAttributeCollectionPageViewConfiguration authenticationAttributeCollectionPageViewConfiguration = new AuthenticationAttributeCollectionPageViewConfiguration();
LinkedList<AuthenticationAttributeCollectionInputConfiguration> inputs = new LinkedList<AuthenticationAttributeCollectionInputConfiguration>();
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration.setAttribute("email");
authenticationAttributeCollectionInputConfiguration.setLabel("Email Address");
authenticationAttributeCollectionInputConfiguration.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration.setHidden(true);
authenticationAttributeCollectionInputConfiguration.setEditable(false);
authenticationAttributeCollectionInputConfiguration.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration.setRequired(true);
authenticationAttributeCollectionInputConfiguration.setValidationRegEx("^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$");
inputs.add(authenticationAttributeCollectionInputConfiguration);
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration1 = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration1.setAttribute("displayName");
authenticationAttributeCollectionInputConfiguration1.setLabel("Display Name");
authenticationAttributeCollectionInputConfiguration1.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration1.setHidden(false);
authenticationAttributeCollectionInputConfiguration1.setEditable(true);
authenticationAttributeCollectionInputConfiguration1.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration1.setRequired(false);
authenticationAttributeCollectionInputConfiguration1.setValidationRegEx("^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$");
inputs.add(authenticationAttributeCollectionInputConfiguration1);
authenticationAttributeCollectionPageViewConfiguration.setInputs(inputs);
views.add(authenticationAttributeCollectionPageViewConfiguration);
attributeCollectionPage.setViews(views);
onAttributeCollection.setAttributeCollectionPage(attributeCollectionPage);
authenticationEventsFlow.setOnAttributeCollection(onAttributeCollection);
AuthenticationEventsFlow result = graphClient.identity().authenticationEventsFlows().post(authenticationEventsFlow);
const options = {
authProvider,
};
const client = Client.init(options);
const authenticationEventsFlow = {
'@odata.type': '#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow',
displayName: 'Woodgrove Drive User Flow',
conditions: {
applications: {
includeApplications: [
{
appId: '63856651-13d9-4784-9abf-20758d509e19'
}
]
}
},
onAuthenticationMethodLoadStart: {
'@odata.type': '#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp',
identityProviders: [
{
id: 'EmailPassword-OAUTH'
}
]
},
onInteractiveAuthFlowStart: {
'@odata.type': '#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp',
isSignUpAllowed: true
},
onAttributeCollection: {
'@odata.type': '#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp',
attributes: [
{
id: 'email',
displayName: 'Email Address',
description: 'Email address of the user',
userFlowAttributeType: 'builtIn',
dataType: 'string'
},
{
id: 'displayName',
displayName: 'Display Name',
description: 'Display Name of the User.',
userFlowAttributeType: 'builtIn',
dataType: 'string'
}
],
attributeCollectionPage: {
views: [
{
inputs: [
{
attribute: 'email',
label: 'Email Address',
inputType: 'Text',
hidden: true,
editable: false,
writeToDirectory: true,
required: true,
validationRegEx: '^[a-zA-Z0-9.!#$%&’\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$'
},
{
attribute: 'displayName',
label: 'Display Name',
inputType: 'text',
hidden: false,
editable: true,
writeToDirectory: true,
required: false,
validationRegEx: '^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$'
}
]
}
]
}
}
};
await client.api('/identity/authenticationEventsFlows')
.version('beta')
.post(authenticationEventsFlow);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\ExternalUsersSelfServiceSignUpEventsFlow;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationConditions;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationConditionsApplications;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationConditionApplication;
use Microsoft\Graph\Beta\Generated\Models\OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\IdentityProviderBase;
use Microsoft\Graph\Beta\Generated\Models\OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\OnAttributeCollectionExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttribute;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeType;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeDataType;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionPage;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionPageViewConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionInputConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionInputType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ExternalUsersSelfServiceSignUpEventsFlow();
$requestBody->setOdataType('#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow');
$requestBody->setDisplayName('Woodgrove Drive User Flow');
$conditions = new AuthenticationConditions();
$conditionsApplications = new AuthenticationConditionsApplications();
$includeApplicationsAuthenticationConditionApplication1 = new AuthenticationConditionApplication();
$includeApplicationsAuthenticationConditionApplication1->setAppId('63856651-13d9-4784-9abf-20758d509e19');
$includeApplicationsArray []= $includeApplicationsAuthenticationConditionApplication1;
$conditionsApplications->setIncludeApplications($includeApplicationsArray);
$conditions->setApplications($conditionsApplications);
$requestBody->setConditions($conditions);
$onAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp();
$onAuthenticationMethodLoadStart->setOdataType('#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp');
$identityProvidersIdentityProviderBase1 = new IdentityProviderBase();
$identityProvidersIdentityProviderBase1->setId('EmailPassword-OAUTH');
$identityProvidersArray []= $identityProvidersIdentityProviderBase1;
$onAuthenticationMethodLoadStart->setIdentityProviders($identityProvidersArray);
$requestBody->setOnAuthenticationMethodLoadStart($onAuthenticationMethodLoadStart);
$onInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp();
$onInteractiveAuthFlowStart->setOdataType('#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp');
$onInteractiveAuthFlowStart->setIsSignUpAllowed(true);
$requestBody->setOnInteractiveAuthFlowStart($onInteractiveAuthFlowStart);
$onAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp();
$onAttributeCollection->setOdataType('#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp');
$attributesIdentityUserFlowAttribute1 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute1->setId('email');
$attributesIdentityUserFlowAttribute1->setDisplayName('Email Address');
$attributesIdentityUserFlowAttribute1->setDescription('Email address of the user');
$attributesIdentityUserFlowAttribute1->setUserFlowAttributeType(new IdentityUserFlowAttributeType('builtIn'));
$attributesIdentityUserFlowAttribute1->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute1;
$attributesIdentityUserFlowAttribute2 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute2->setId('displayName');
$attributesIdentityUserFlowAttribute2->setDisplayName('Display Name');
$attributesIdentityUserFlowAttribute2->setDescription('Display Name of the User.');
$attributesIdentityUserFlowAttribute2->setUserFlowAttributeType(new IdentityUserFlowAttributeType('builtIn'));
$attributesIdentityUserFlowAttribute2->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute2;
$onAttributeCollection->setAttributes($attributesArray);
$onAttributeCollectionAttributeCollectionPage = new AuthenticationAttributeCollectionPage();
$viewsAuthenticationAttributeCollectionPageViewConfiguration1 = new AuthenticationAttributeCollectionPageViewConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration1 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration1->setAttribute('email');
$inputsAuthenticationAttributeCollectionInputConfiguration1->setLabel('Email Address');
$inputsAuthenticationAttributeCollectionInputConfiguration1->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration1->setHidden(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setEditable(false);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setRequired(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setValidationRegEx('^[a-zA-Z0-9.!#$%&’\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration1;
$inputsAuthenticationAttributeCollectionInputConfiguration2 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration2->setAttribute('displayName');
$inputsAuthenticationAttributeCollectionInputConfiguration2->setLabel('Display Name');
$inputsAuthenticationAttributeCollectionInputConfiguration2->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration2->setHidden(false);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setEditable(true);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setRequired(false);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setValidationRegEx('^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration2;
$viewsAuthenticationAttributeCollectionPageViewConfiguration1->setInputs($inputsArray);
$viewsArray []= $viewsAuthenticationAttributeCollectionPageViewConfiguration1;
$onAttributeCollectionAttributeCollectionPage->setViews($viewsArray);
$onAttributeCollection->setAttributeCollectionPage($onAttributeCollectionAttributeCollectionPage);
$requestBody->setOnAttributeCollection($onAttributeCollection);
$result = $graphServiceClient->identity()->authenticationEventsFlows()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@odata.type" = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow"
displayName = "Woodgrove Drive User Flow"
conditions = @{
applications = @{
includeApplications = @(
@{
appId = "63856651-13d9-4784-9abf-20758d509e19"
}
)
}
}
onAuthenticationMethodLoadStart = @{
"@odata.type" = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp"
identityProviders = @(
@{
id = "EmailPassword-OAUTH"
}
)
}
onInteractiveAuthFlowStart = @{
"@odata.type" = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp"
isSignUpAllowed = $true
}
onAttributeCollection = @{
"@odata.type" = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp"
attributes = @(
@{
id = "email"
displayName = "Email Address"
description = "Email address of the user"
userFlowAttributeType = "builtIn"
dataType = "string"
}
@{
id = "displayName"
displayName = "Display Name"
description = "Display Name of the User."
userFlowAttributeType = "builtIn"
dataType = "string"
}
)
attributeCollectionPage = @{
views = @(
@{
inputs = @(
@{
attribute = "email"
label = "Email Address"
inputType = "Text"
hidden = $true
editable = $false
writeToDirectory = $true
required = $true
validationRegEx = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
}
@{
attribute = "displayName"
label = "Display Name"
inputType = "text"
hidden = $false
editable = $true
writeToDirectory = $true
required = $false
validationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
)
}
)
}
}
}
New-MgBetaIdentityAuthenticationEventFlow -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.external_users_self_service_sign_up_events_flow import ExternalUsersSelfServiceSignUpEventsFlow
from msgraph_beta.generated.models.authentication_conditions import AuthenticationConditions
from msgraph_beta.generated.models.authentication_conditions_applications import AuthenticationConditionsApplications
from msgraph_beta.generated.models.authentication_condition_application import AuthenticationConditionApplication
from msgraph_beta.generated.models.on_authentication_method_load_start_external_users_self_service_sign_up import OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.identity_provider_base import IdentityProviderBase
from msgraph_beta.generated.models.on_interactive_auth_flow_start_external_users_self_service_sign_up import OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.on_attribute_collection_external_users_self_service_sign_up import OnAttributeCollectionExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.identity_user_flow_attribute import IdentityUserFlowAttribute
from msgraph_beta.generated.models.identity_user_flow_attribute_type import IdentityUserFlowAttributeType
from msgraph_beta.generated.models.identity_user_flow_attribute_data_type import IdentityUserFlowAttributeDataType
from msgraph_beta.generated.models.authentication_attribute_collection_page import AuthenticationAttributeCollectionPage
from msgraph_beta.generated.models.authentication_attribute_collection_page_view_configuration import AuthenticationAttributeCollectionPageViewConfiguration
from msgraph_beta.generated.models.authentication_attribute_collection_input_configuration import AuthenticationAttributeCollectionInputConfiguration
from msgraph_beta.generated.models.authentication_attribute_collection_input_type import AuthenticationAttributeCollectionInputType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ExternalUsersSelfServiceSignUpEventsFlow(
odata_type = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
display_name = "Woodgrove Drive User Flow",
conditions = AuthenticationConditions(
applications = AuthenticationConditionsApplications(
include_applications = [
AuthenticationConditionApplication(
app_id = "63856651-13d9-4784-9abf-20758d509e19",
),
],
),
),
on_authentication_method_load_start = OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
identity_providers = [
IdentityProviderBase(
id = "EmailPassword-OAUTH",
),
],
),
on_interactive_auth_flow_start = OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
is_sign_up_allowed = True,
),
on_attribute_collection = OnAttributeCollectionExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
attributes = [
IdentityUserFlowAttribute(
id = "email",
display_name = "Email Address",
description = "Email address of the user",
user_flow_attribute_type = IdentityUserFlowAttributeType.BuiltIn,
data_type = IdentityUserFlowAttributeDataType.String,
),
IdentityUserFlowAttribute(
id = "displayName",
display_name = "Display Name",
description = "Display Name of the User.",
user_flow_attribute_type = IdentityUserFlowAttributeType.BuiltIn,
data_type = IdentityUserFlowAttributeDataType.String,
),
],
attribute_collection_page = AuthenticationAttributeCollectionPage(
views = [
AuthenticationAttributeCollectionPageViewConfiguration(
inputs = [
AuthenticationAttributeCollectionInputConfiguration(
attribute = "email",
label = "Email Address",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = True,
editable = False,
write_to_directory = True,
required = True,
validation_reg_ex = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
),
AuthenticationAttributeCollectionInputConfiguration(
attribute = "displayName",
label = "Display Name",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = False,
editable = True,
write_to_directory = True,
required = False,
validation_reg_ex = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
),
],
),
],
),
),
)
result = await graph_client.identity.authentication_events_flows.post(request_body)
Réponse
L’exemple suivant illustre la réponse.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/authenticationEventsFlows/$entity",
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
"id": "1d51b447-eb52-4ec8-ae4e-0a35ebc148ea",
"displayName": "Woodgrove Drive User Flow",
"description": null,
"priority": 500,
"onAttributeCollectionStart": null,
"onAttributeCollectionSubmit": null,
"onUserCreateStart": null,
"conditions": {
"applications": {
"includeAllApplications": false
}
},
"onInteractiveAuthFlowStart": {
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
"isSignUpAllowed": true
},
"onAuthenticationMethodLoadStart": {
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp"
},
"onAttributeCollection": {
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
"accessPackages": [],
"attributeCollectionPage": {
"customStringsFileId": null,
"views": [
{
"title": null,
"description": null,
"inputs": [
{
"attribute": "email",
"label": "Email Address",
"inputType": "text",
"defaultValue": null,
"hidden": true,
"editable": false,
"writeToDirectory": true,
"required": true,
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
"options": []
},
{
"attribute": "displayName",
"label": "Display Name",
"inputType": "text",
"defaultValue": null,
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
"options": []
}
]
}
]
}
}
}
Exemple 3 : Créer un flux d’utilisateur d’inscription et de connexion aux identités externes avec des fournisseurs de réseaux sociaux et un attribut personnalisé
Demande
L’exemple suivant illustre une demande. Dans cet exemple, vous créez un flux utilisateur nommé « Flux utilisateur de lecteur Woodgrove » avec la configuration suivante
Autoriser l’inscription et la connexion.
Autoriser les utilisateurs à créer un e-mail local avec un compte de mot de passe ou à s’authentifier auprès de Google ou Facebook
Collectez l’attribut intégré Nom d’affichage et un attribut personnalisé Couleur favorite .
POST https://graph.microsoft.com/beta/identity/authenticationEventsFlows
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
"displayName": "Woodgrove User Flow 2",
"onAuthenticationMethodLoadStart": {
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
"identityProviders": [
{
"id": "EmailPassword-OAUTH"
},
{
"id": "Google-OAUTH"
},
{
"id": "Facebook-OAUTH"
}
]
},
"onInteractiveAuthFlowStart": {
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
"isSignUpAllowed": true
},
"onAttributeCollection": {
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
"attributes": [
{
"id": "email",
"displayName": "Email Address",
"description": "Email address of the user",
"userFlowAttributeType": "builtIn",
"dataType": "string"
},
{
"id": "displayName",
"displayName": "Display Name",
"description": "Display Name of the User.",
"userFlowAttributeType": "builtIn",
"dataType": "string"
},
{
"id": "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
"displayName": "Favorite color",
"description": "what is your favorite color",
"userFlowAttributeType": "custom",
"dataType": "string"
}
],
"attributeCollectionPage": {
"views": [
{
"inputs": [
{
"attribute": "email",
"label": "Email Address",
"inputType": "Text",
"hidden": true,
"editable": false,
"writeToDirectory": true,
"required": true,
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
},
{
"attribute": "displayName",
"label": "Display Name",
"inputType": "text",
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
},
{
"attribute": "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
"label": "Favorite color",
"inputType": "text",
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
]
}
]
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new ExternalUsersSelfServiceSignUpEventsFlow
{
OdataType = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
DisplayName = "Woodgrove User Flow 2",
OnAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
IdentityProviders = new List<IdentityProviderBase>
{
new IdentityProviderBase
{
Id = "EmailPassword-OAUTH",
},
new IdentityProviderBase
{
Id = "Google-OAUTH",
},
new IdentityProviderBase
{
Id = "Facebook-OAUTH",
},
},
},
OnInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
IsSignUpAllowed = true,
},
OnAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp
{
OdataType = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
Attributes = new List<IdentityUserFlowAttribute>
{
new IdentityUserFlowAttribute
{
Id = "email",
DisplayName = "Email Address",
Description = "Email address of the user",
UserFlowAttributeType = IdentityUserFlowAttributeType.BuiltIn,
DataType = IdentityUserFlowAttributeDataType.String,
},
new IdentityUserFlowAttribute
{
Id = "displayName",
DisplayName = "Display Name",
Description = "Display Name of the User.",
UserFlowAttributeType = IdentityUserFlowAttributeType.BuiltIn,
DataType = IdentityUserFlowAttributeDataType.String,
},
new IdentityUserFlowAttribute
{
Id = "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
DisplayName = "Favorite color",
Description = "what is your favorite color",
UserFlowAttributeType = IdentityUserFlowAttributeType.Custom,
DataType = IdentityUserFlowAttributeDataType.String,
},
},
AttributeCollectionPage = new AuthenticationAttributeCollectionPage
{
Views = new List<AuthenticationAttributeCollectionPageViewConfiguration>
{
new AuthenticationAttributeCollectionPageViewConfiguration
{
Inputs = new List<AuthenticationAttributeCollectionInputConfiguration>
{
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "email",
Label = "Email Address",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = true,
Editable = false,
WriteToDirectory = true,
Required = true,
ValidationRegEx = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
},
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "displayName",
Label = "Display Name",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = false,
Editable = true,
WriteToDirectory = true,
Required = false,
ValidationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
},
new AuthenticationAttributeCollectionInputConfiguration
{
Attribute = "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
Label = "Favorite color",
InputType = AuthenticationAttributeCollectionInputType.Text,
Hidden = false,
Editable = true,
WriteToDirectory = true,
Required = false,
ValidationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
},
},
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.AuthenticationEventsFlows.PostAsync(requestBody);
mgc-beta identity authentication-events-flows create --body '{\
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",\
"displayName": "Woodgrove User Flow 2",\
"onAuthenticationMethodLoadStart": {\
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",\
"identityProviders": [\
{\
"id": "EmailPassword-OAUTH"\
},\
{\
"id": "Google-OAUTH"\
},\
{\
"id": "Facebook-OAUTH"\
}\
]\
}, \
"onInteractiveAuthFlowStart": {\
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",\
"isSignUpAllowed": true\
},\
"onAttributeCollection": {\
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",\
"attributes": [\
{\
"id": "email",\
"displayName": "Email Address",\
"description": "Email address of the user",\
"userFlowAttributeType": "builtIn",\
"dataType": "string"\
},\
{\
"id": "displayName",\
"displayName": "Display Name",\
"description": "Display Name of the User.",\
"userFlowAttributeType": "builtIn",\
"dataType": "string"\
},\
{\
"id": "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",\
"displayName": "Favorite color",\
"description": "what is your favorite color",\
"userFlowAttributeType": "custom",\
"dataType": "string"\
}\
],\
"attributeCollectionPage": {\
"views": [\
{\
"inputs": [\
{\
"attribute": "email",\
"label": "Email Address",\
"inputType": "Text",\
"hidden": true,\
"editable": false,\
"writeToDirectory": true,\
"required": true,\
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"\
},\
{\
"attribute": "displayName",\
"label": "Display Name",\
"inputType": "text",\
"hidden": false,\
"editable": true,\
"writeToDirectory": true,\
"required": false,\
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"\
},\
{\
"attribute": "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",\
"label": "Favorite color",\
"inputType": "text",\
"hidden": false,\
"editable": true,\
"writeToDirectory": true,\
"required": false,\
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"\
}\
]\
}\
]\
}\
}\
}\
'
// 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.NewAuthenticationEventsFlow()
displayName := "Woodgrove User Flow 2"
requestBody.SetDisplayName(&displayName)
onAuthenticationMethodLoadStart := graphmodels.NewOnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp()
identityProviderBase := graphmodels.NewIdentityProviderBase()
id := "EmailPassword-OAUTH"
identityProviderBase.SetId(&id)
identityProviderBase1 := graphmodels.NewIdentityProviderBase()
id := "Google-OAUTH"
identityProviderBase1.SetId(&id)
identityProviderBase2 := graphmodels.NewIdentityProviderBase()
id := "Facebook-OAUTH"
identityProviderBase2.SetId(&id)
identityProviders := []graphmodels.IdentityProviderBaseable {
identityProviderBase,
identityProviderBase1,
identityProviderBase2,
}
onAuthenticationMethodLoadStart.SetIdentityProviders(identityProviders)
requestBody.SetOnAuthenticationMethodLoadStart(onAuthenticationMethodLoadStart)
onInteractiveAuthFlowStart := graphmodels.NewOnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp()
isSignUpAllowed := true
onInteractiveAuthFlowStart.SetIsSignUpAllowed(&isSignUpAllowed)
requestBody.SetOnInteractiveAuthFlowStart(onInteractiveAuthFlowStart)
onAttributeCollection := graphmodels.NewOnAttributeCollectionExternalUsersSelfServiceSignUp()
identityUserFlowAttribute := graphmodels.NewIdentityUserFlowAttribute()
id := "email"
identityUserFlowAttribute.SetId(&id)
displayName := "Email Address"
identityUserFlowAttribute.SetDisplayName(&displayName)
description := "Email address of the user"
identityUserFlowAttribute.SetDescription(&description)
userFlowAttributeType := graphmodels.BUILTIN_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute.SetDataType(&dataType)
identityUserFlowAttribute1 := graphmodels.NewIdentityUserFlowAttribute()
id := "displayName"
identityUserFlowAttribute1.SetId(&id)
displayName := "Display Name"
identityUserFlowAttribute1.SetDisplayName(&displayName)
description := "Display Name of the User."
identityUserFlowAttribute1.SetDescription(&description)
userFlowAttributeType := graphmodels.BUILTIN_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute1.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute1.SetDataType(&dataType)
identityUserFlowAttribute2 := graphmodels.NewIdentityUserFlowAttribute()
id := "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor"
identityUserFlowAttribute2.SetId(&id)
displayName := "Favorite color"
identityUserFlowAttribute2.SetDisplayName(&displayName)
description := "what is your favorite color"
identityUserFlowAttribute2.SetDescription(&description)
userFlowAttributeType := graphmodels.CUSTOM_IDENTITYUSERFLOWATTRIBUTETYPE
identityUserFlowAttribute2.SetUserFlowAttributeType(&userFlowAttributeType)
dataType := graphmodels.STRING_IDENTITYUSERFLOWATTRIBUTEDATATYPE
identityUserFlowAttribute2.SetDataType(&dataType)
attributes := []graphmodels.IdentityUserFlowAttributeable {
identityUserFlowAttribute,
identityUserFlowAttribute1,
identityUserFlowAttribute2,
}
onAttributeCollection.SetAttributes(attributes)
attributeCollectionPage := graphmodels.NewAuthenticationAttributeCollectionPage()
authenticationAttributeCollectionPageViewConfiguration := graphmodels.NewAuthenticationAttributeCollectionPageViewConfiguration()
authenticationAttributeCollectionInputConfiguration := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "email"
authenticationAttributeCollectionInputConfiguration.SetAttribute(&attribute)
label := "Email Address"
authenticationAttributeCollectionInputConfiguration.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration.SetInputType(&inputType)
hidden := true
authenticationAttributeCollectionInputConfiguration.SetHidden(&hidden)
editable := false
authenticationAttributeCollectionInputConfiguration.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration.SetWriteToDirectory(&writeToDirectory)
required := true
authenticationAttributeCollectionInputConfiguration.SetRequired(&required)
validationRegEx := "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
authenticationAttributeCollectionInputConfiguration.SetValidationRegEx(&validationRegEx)
authenticationAttributeCollectionInputConfiguration1 := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "displayName"
authenticationAttributeCollectionInputConfiguration1.SetAttribute(&attribute)
label := "Display Name"
authenticationAttributeCollectionInputConfiguration1.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration1.SetInputType(&inputType)
hidden := false
authenticationAttributeCollectionInputConfiguration1.SetHidden(&hidden)
editable := true
authenticationAttributeCollectionInputConfiguration1.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration1.SetWriteToDirectory(&writeToDirectory)
required := false
authenticationAttributeCollectionInputConfiguration1.SetRequired(&required)
validationRegEx := "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
authenticationAttributeCollectionInputConfiguration1.SetValidationRegEx(&validationRegEx)
authenticationAttributeCollectionInputConfiguration2 := graphmodels.NewAuthenticationAttributeCollectionInputConfiguration()
attribute := "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor"
authenticationAttributeCollectionInputConfiguration2.SetAttribute(&attribute)
label := "Favorite color"
authenticationAttributeCollectionInputConfiguration2.SetLabel(&label)
inputType := graphmodels.TEXT_AUTHENTICATIONATTRIBUTECOLLECTIONINPUTTYPE
authenticationAttributeCollectionInputConfiguration2.SetInputType(&inputType)
hidden := false
authenticationAttributeCollectionInputConfiguration2.SetHidden(&hidden)
editable := true
authenticationAttributeCollectionInputConfiguration2.SetEditable(&editable)
writeToDirectory := true
authenticationAttributeCollectionInputConfiguration2.SetWriteToDirectory(&writeToDirectory)
required := false
authenticationAttributeCollectionInputConfiguration2.SetRequired(&required)
validationRegEx := "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
authenticationAttributeCollectionInputConfiguration2.SetValidationRegEx(&validationRegEx)
inputs := []graphmodels.AuthenticationAttributeCollectionInputConfigurationable {
authenticationAttributeCollectionInputConfiguration,
authenticationAttributeCollectionInputConfiguration1,
authenticationAttributeCollectionInputConfiguration2,
}
authenticationAttributeCollectionPageViewConfiguration.SetInputs(inputs)
views := []graphmodels.AuthenticationAttributeCollectionPageViewConfigurationable {
authenticationAttributeCollectionPageViewConfiguration,
}
attributeCollectionPage.SetViews(views)
onAttributeCollection.SetAttributeCollectionPage(attributeCollectionPage)
requestBody.SetOnAttributeCollection(onAttributeCollection)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
authenticationEventsFlows, err := graphClient.Identity().AuthenticationEventsFlows().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ExternalUsersSelfServiceSignUpEventsFlow authenticationEventsFlow = new ExternalUsersSelfServiceSignUpEventsFlow();
authenticationEventsFlow.setOdataType("#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow");
authenticationEventsFlow.setDisplayName("Woodgrove User Flow 2");
OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp onAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp();
onAuthenticationMethodLoadStart.setOdataType("#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp");
LinkedList<IdentityProviderBase> identityProviders = new LinkedList<IdentityProviderBase>();
IdentityProviderBase identityProviderBase = new IdentityProviderBase();
identityProviderBase.setId("EmailPassword-OAUTH");
identityProviders.add(identityProviderBase);
IdentityProviderBase identityProviderBase1 = new IdentityProviderBase();
identityProviderBase1.setId("Google-OAUTH");
identityProviders.add(identityProviderBase1);
IdentityProviderBase identityProviderBase2 = new IdentityProviderBase();
identityProviderBase2.setId("Facebook-OAUTH");
identityProviders.add(identityProviderBase2);
onAuthenticationMethodLoadStart.setIdentityProviders(identityProviders);
authenticationEventsFlow.setOnAuthenticationMethodLoadStart(onAuthenticationMethodLoadStart);
OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp onInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp();
onInteractiveAuthFlowStart.setOdataType("#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp");
onInteractiveAuthFlowStart.setIsSignUpAllowed(true);
authenticationEventsFlow.setOnInteractiveAuthFlowStart(onInteractiveAuthFlowStart);
OnAttributeCollectionExternalUsersSelfServiceSignUp onAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp();
onAttributeCollection.setOdataType("#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp");
LinkedList<IdentityUserFlowAttribute> attributes = new LinkedList<IdentityUserFlowAttribute>();
IdentityUserFlowAttribute identityUserFlowAttribute = new IdentityUserFlowAttribute();
identityUserFlowAttribute.setId("email");
identityUserFlowAttribute.setDisplayName("Email Address");
identityUserFlowAttribute.setDescription("Email address of the user");
identityUserFlowAttribute.setUserFlowAttributeType(IdentityUserFlowAttributeType.BuiltIn);
identityUserFlowAttribute.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute);
IdentityUserFlowAttribute identityUserFlowAttribute1 = new IdentityUserFlowAttribute();
identityUserFlowAttribute1.setId("displayName");
identityUserFlowAttribute1.setDisplayName("Display Name");
identityUserFlowAttribute1.setDescription("Display Name of the User.");
identityUserFlowAttribute1.setUserFlowAttributeType(IdentityUserFlowAttributeType.BuiltIn);
identityUserFlowAttribute1.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute1);
IdentityUserFlowAttribute identityUserFlowAttribute2 = new IdentityUserFlowAttribute();
identityUserFlowAttribute2.setId("extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor");
identityUserFlowAttribute2.setDisplayName("Favorite color");
identityUserFlowAttribute2.setDescription("what is your favorite color");
identityUserFlowAttribute2.setUserFlowAttributeType(IdentityUserFlowAttributeType.Custom);
identityUserFlowAttribute2.setDataType(IdentityUserFlowAttributeDataType.String);
attributes.add(identityUserFlowAttribute2);
onAttributeCollection.setAttributes(attributes);
AuthenticationAttributeCollectionPage attributeCollectionPage = new AuthenticationAttributeCollectionPage();
LinkedList<AuthenticationAttributeCollectionPageViewConfiguration> views = new LinkedList<AuthenticationAttributeCollectionPageViewConfiguration>();
AuthenticationAttributeCollectionPageViewConfiguration authenticationAttributeCollectionPageViewConfiguration = new AuthenticationAttributeCollectionPageViewConfiguration();
LinkedList<AuthenticationAttributeCollectionInputConfiguration> inputs = new LinkedList<AuthenticationAttributeCollectionInputConfiguration>();
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration.setAttribute("email");
authenticationAttributeCollectionInputConfiguration.setLabel("Email Address");
authenticationAttributeCollectionInputConfiguration.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration.setHidden(true);
authenticationAttributeCollectionInputConfiguration.setEditable(false);
authenticationAttributeCollectionInputConfiguration.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration.setRequired(true);
authenticationAttributeCollectionInputConfiguration.setValidationRegEx("^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$");
inputs.add(authenticationAttributeCollectionInputConfiguration);
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration1 = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration1.setAttribute("displayName");
authenticationAttributeCollectionInputConfiguration1.setLabel("Display Name");
authenticationAttributeCollectionInputConfiguration1.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration1.setHidden(false);
authenticationAttributeCollectionInputConfiguration1.setEditable(true);
authenticationAttributeCollectionInputConfiguration1.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration1.setRequired(false);
authenticationAttributeCollectionInputConfiguration1.setValidationRegEx("^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$");
inputs.add(authenticationAttributeCollectionInputConfiguration1);
AuthenticationAttributeCollectionInputConfiguration authenticationAttributeCollectionInputConfiguration2 = new AuthenticationAttributeCollectionInputConfiguration();
authenticationAttributeCollectionInputConfiguration2.setAttribute("extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor");
authenticationAttributeCollectionInputConfiguration2.setLabel("Favorite color");
authenticationAttributeCollectionInputConfiguration2.setInputType(AuthenticationAttributeCollectionInputType.Text);
authenticationAttributeCollectionInputConfiguration2.setHidden(false);
authenticationAttributeCollectionInputConfiguration2.setEditable(true);
authenticationAttributeCollectionInputConfiguration2.setWriteToDirectory(true);
authenticationAttributeCollectionInputConfiguration2.setRequired(false);
authenticationAttributeCollectionInputConfiguration2.setValidationRegEx("^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$");
inputs.add(authenticationAttributeCollectionInputConfiguration2);
authenticationAttributeCollectionPageViewConfiguration.setInputs(inputs);
views.add(authenticationAttributeCollectionPageViewConfiguration);
attributeCollectionPage.setViews(views);
onAttributeCollection.setAttributeCollectionPage(attributeCollectionPage);
authenticationEventsFlow.setOnAttributeCollection(onAttributeCollection);
AuthenticationEventsFlow result = graphClient.identity().authenticationEventsFlows().post(authenticationEventsFlow);
const options = {
authProvider,
};
const client = Client.init(options);
const authenticationEventsFlow = {
'@odata.type': '#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow',
displayName: 'Woodgrove User Flow 2',
onAuthenticationMethodLoadStart: {
'@odata.type': '#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp',
identityProviders: [
{
id: 'EmailPassword-OAUTH'
},
{
id: 'Google-OAUTH'
},
{
id: 'Facebook-OAUTH'
}
]
},
onInteractiveAuthFlowStart: {
'@odata.type': '#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp',
isSignUpAllowed: true
},
onAttributeCollection: {
'@odata.type': '#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp',
attributes: [
{
id: 'email',
displayName: 'Email Address',
description: 'Email address of the user',
userFlowAttributeType: 'builtIn',
dataType: 'string'
},
{
id: 'displayName',
displayName: 'Display Name',
description: 'Display Name of the User.',
userFlowAttributeType: 'builtIn',
dataType: 'string'
},
{
id: 'extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor',
displayName: 'Favorite color',
description: 'what is your favorite color',
userFlowAttributeType: 'custom',
dataType: 'string'
}
],
attributeCollectionPage: {
views: [
{
inputs: [
{
attribute: 'email',
label: 'Email Address',
inputType: 'Text',
hidden: true,
editable: false,
writeToDirectory: true,
required: true,
validationRegEx: '^[a-zA-Z0-9.!#$%&’\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$'
},
{
attribute: 'displayName',
label: 'Display Name',
inputType: 'text',
hidden: false,
editable: true,
writeToDirectory: true,
required: false,
validationRegEx: '^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$'
},
{
attribute: 'extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor',
label: 'Favorite color',
inputType: 'text',
hidden: false,
editable: true,
writeToDirectory: true,
required: false,
validationRegEx: '^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$'
}
]
}
]
}
}
};
await client.api('/identity/authenticationEventsFlows')
.version('beta')
.post(authenticationEventsFlow);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\ExternalUsersSelfServiceSignUpEventsFlow;
use Microsoft\Graph\Beta\Generated\Models\OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\IdentityProviderBase;
use Microsoft\Graph\Beta\Generated\Models\OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\OnAttributeCollectionExternalUsersSelfServiceSignUp;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttribute;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeType;
use Microsoft\Graph\Beta\Generated\Models\IdentityUserFlowAttributeDataType;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionPage;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionPageViewConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionInputConfiguration;
use Microsoft\Graph\Beta\Generated\Models\AuthenticationAttributeCollectionInputType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ExternalUsersSelfServiceSignUpEventsFlow();
$requestBody->setOdataType('#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow');
$requestBody->setDisplayName('Woodgrove User Flow 2');
$onAuthenticationMethodLoadStart = new OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp();
$onAuthenticationMethodLoadStart->setOdataType('#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp');
$identityProvidersIdentityProviderBase1 = new IdentityProviderBase();
$identityProvidersIdentityProviderBase1->setId('EmailPassword-OAUTH');
$identityProvidersArray []= $identityProvidersIdentityProviderBase1;
$identityProvidersIdentityProviderBase2 = new IdentityProviderBase();
$identityProvidersIdentityProviderBase2->setId('Google-OAUTH');
$identityProvidersArray []= $identityProvidersIdentityProviderBase2;
$identityProvidersIdentityProviderBase3 = new IdentityProviderBase();
$identityProvidersIdentityProviderBase3->setId('Facebook-OAUTH');
$identityProvidersArray []= $identityProvidersIdentityProviderBase3;
$onAuthenticationMethodLoadStart->setIdentityProviders($identityProvidersArray);
$requestBody->setOnAuthenticationMethodLoadStart($onAuthenticationMethodLoadStart);
$onInteractiveAuthFlowStart = new OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp();
$onInteractiveAuthFlowStart->setOdataType('#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp');
$onInteractiveAuthFlowStart->setIsSignUpAllowed(true);
$requestBody->setOnInteractiveAuthFlowStart($onInteractiveAuthFlowStart);
$onAttributeCollection = new OnAttributeCollectionExternalUsersSelfServiceSignUp();
$onAttributeCollection->setOdataType('#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp');
$attributesIdentityUserFlowAttribute1 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute1->setId('email');
$attributesIdentityUserFlowAttribute1->setDisplayName('Email Address');
$attributesIdentityUserFlowAttribute1->setDescription('Email address of the user');
$attributesIdentityUserFlowAttribute1->setUserFlowAttributeType(new IdentityUserFlowAttributeType('builtIn'));
$attributesIdentityUserFlowAttribute1->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute1;
$attributesIdentityUserFlowAttribute2 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute2->setId('displayName');
$attributesIdentityUserFlowAttribute2->setDisplayName('Display Name');
$attributesIdentityUserFlowAttribute2->setDescription('Display Name of the User.');
$attributesIdentityUserFlowAttribute2->setUserFlowAttributeType(new IdentityUserFlowAttributeType('builtIn'));
$attributesIdentityUserFlowAttribute2->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute2;
$attributesIdentityUserFlowAttribute3 = new IdentityUserFlowAttribute();
$attributesIdentityUserFlowAttribute3->setId('extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor');
$attributesIdentityUserFlowAttribute3->setDisplayName('Favorite color');
$attributesIdentityUserFlowAttribute3->setDescription('what is your favorite color');
$attributesIdentityUserFlowAttribute3->setUserFlowAttributeType(new IdentityUserFlowAttributeType('custom'));
$attributesIdentityUserFlowAttribute3->setDataType(new IdentityUserFlowAttributeDataType('string'));
$attributesArray []= $attributesIdentityUserFlowAttribute3;
$onAttributeCollection->setAttributes($attributesArray);
$onAttributeCollectionAttributeCollectionPage = new AuthenticationAttributeCollectionPage();
$viewsAuthenticationAttributeCollectionPageViewConfiguration1 = new AuthenticationAttributeCollectionPageViewConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration1 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration1->setAttribute('email');
$inputsAuthenticationAttributeCollectionInputConfiguration1->setLabel('Email Address');
$inputsAuthenticationAttributeCollectionInputConfiguration1->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration1->setHidden(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setEditable(false);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setRequired(true);
$inputsAuthenticationAttributeCollectionInputConfiguration1->setValidationRegEx('^[a-zA-Z0-9.!#$%&’\'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration1;
$inputsAuthenticationAttributeCollectionInputConfiguration2 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration2->setAttribute('displayName');
$inputsAuthenticationAttributeCollectionInputConfiguration2->setLabel('Display Name');
$inputsAuthenticationAttributeCollectionInputConfiguration2->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration2->setHidden(false);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setEditable(true);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setRequired(false);
$inputsAuthenticationAttributeCollectionInputConfiguration2->setValidationRegEx('^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration2;
$inputsAuthenticationAttributeCollectionInputConfiguration3 = new AuthenticationAttributeCollectionInputConfiguration();
$inputsAuthenticationAttributeCollectionInputConfiguration3->setAttribute('extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor');
$inputsAuthenticationAttributeCollectionInputConfiguration3->setLabel('Favorite color');
$inputsAuthenticationAttributeCollectionInputConfiguration3->setInputType(new AuthenticationAttributeCollectionInputType('text'));
$inputsAuthenticationAttributeCollectionInputConfiguration3->setHidden(false);
$inputsAuthenticationAttributeCollectionInputConfiguration3->setEditable(true);
$inputsAuthenticationAttributeCollectionInputConfiguration3->setWriteToDirectory(true);
$inputsAuthenticationAttributeCollectionInputConfiguration3->setRequired(false);
$inputsAuthenticationAttributeCollectionInputConfiguration3->setValidationRegEx('^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$');
$inputsArray []= $inputsAuthenticationAttributeCollectionInputConfiguration3;
$viewsAuthenticationAttributeCollectionPageViewConfiguration1->setInputs($inputsArray);
$viewsArray []= $viewsAuthenticationAttributeCollectionPageViewConfiguration1;
$onAttributeCollectionAttributeCollectionPage->setViews($viewsArray);
$onAttributeCollection->setAttributeCollectionPage($onAttributeCollectionAttributeCollectionPage);
$requestBody->setOnAttributeCollection($onAttributeCollection);
$result = $graphServiceClient->identity()->authenticationEventsFlows()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@odata.type" = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow"
displayName = "Woodgrove User Flow 2"
onAuthenticationMethodLoadStart = @{
"@odata.type" = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp"
identityProviders = @(
@{
id = "EmailPassword-OAUTH"
}
@{
id = "Google-OAUTH"
}
@{
id = "Facebook-OAUTH"
}
)
}
onInteractiveAuthFlowStart = @{
"@odata.type" = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp"
isSignUpAllowed = $true
}
onAttributeCollection = @{
"@odata.type" = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp"
attributes = @(
@{
id = "email"
displayName = "Email Address"
description = "Email address of the user"
userFlowAttributeType = "builtIn"
dataType = "string"
}
@{
id = "displayName"
displayName = "Display Name"
description = "Display Name of the User."
userFlowAttributeType = "builtIn"
dataType = "string"
}
@{
id = "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor"
displayName = "Favorite color"
description = "what is your favorite color"
userFlowAttributeType = "custom"
dataType = "string"
}
)
attributeCollectionPage = @{
views = @(
@{
inputs = @(
@{
attribute = "email"
label = "Email Address"
inputType = "Text"
hidden = $true
editable = $false
writeToDirectory = $true
required = $true
validationRegEx = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$"
}
@{
attribute = "displayName"
label = "Display Name"
inputType = "text"
hidden = $false
editable = $true
writeToDirectory = $true
required = $false
validationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
@{
attribute = "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor"
label = "Favorite color"
inputType = "text"
hidden = $false
editable = $true
writeToDirectory = $true
required = $false
validationRegEx = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$"
}
)
}
)
}
}
}
New-MgBetaIdentityAuthenticationEventFlow -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.external_users_self_service_sign_up_events_flow import ExternalUsersSelfServiceSignUpEventsFlow
from msgraph_beta.generated.models.on_authentication_method_load_start_external_users_self_service_sign_up import OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.identity_provider_base import IdentityProviderBase
from msgraph_beta.generated.models.on_interactive_auth_flow_start_external_users_self_service_sign_up import OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.on_attribute_collection_external_users_self_service_sign_up import OnAttributeCollectionExternalUsersSelfServiceSignUp
from msgraph_beta.generated.models.identity_user_flow_attribute import IdentityUserFlowAttribute
from msgraph_beta.generated.models.identity_user_flow_attribute_type import IdentityUserFlowAttributeType
from msgraph_beta.generated.models.identity_user_flow_attribute_data_type import IdentityUserFlowAttributeDataType
from msgraph_beta.generated.models.authentication_attribute_collection_page import AuthenticationAttributeCollectionPage
from msgraph_beta.generated.models.authentication_attribute_collection_page_view_configuration import AuthenticationAttributeCollectionPageViewConfiguration
from msgraph_beta.generated.models.authentication_attribute_collection_input_configuration import AuthenticationAttributeCollectionInputConfiguration
from msgraph_beta.generated.models.authentication_attribute_collection_input_type import AuthenticationAttributeCollectionInputType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ExternalUsersSelfServiceSignUpEventsFlow(
odata_type = "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
display_name = "Woodgrove User Flow 2",
on_authentication_method_load_start = OnAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp",
identity_providers = [
IdentityProviderBase(
id = "EmailPassword-OAUTH",
),
IdentityProviderBase(
id = "Google-OAUTH",
),
IdentityProviderBase(
id = "Facebook-OAUTH",
),
],
),
on_interactive_auth_flow_start = OnInteractiveAuthFlowStartExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
is_sign_up_allowed = True,
),
on_attribute_collection = OnAttributeCollectionExternalUsersSelfServiceSignUp(
odata_type = "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
attributes = [
IdentityUserFlowAttribute(
id = "email",
display_name = "Email Address",
description = "Email address of the user",
user_flow_attribute_type = IdentityUserFlowAttributeType.BuiltIn,
data_type = IdentityUserFlowAttributeDataType.String,
),
IdentityUserFlowAttribute(
id = "displayName",
display_name = "Display Name",
description = "Display Name of the User.",
user_flow_attribute_type = IdentityUserFlowAttributeType.BuiltIn,
data_type = IdentityUserFlowAttributeDataType.String,
),
IdentityUserFlowAttribute(
id = "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
display_name = "Favorite color",
description = "what is your favorite color",
user_flow_attribute_type = IdentityUserFlowAttributeType.Custom,
data_type = IdentityUserFlowAttributeDataType.String,
),
],
attribute_collection_page = AuthenticationAttributeCollectionPage(
views = [
AuthenticationAttributeCollectionPageViewConfiguration(
inputs = [
AuthenticationAttributeCollectionInputConfiguration(
attribute = "email",
label = "Email Address",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = True,
editable = False,
write_to_directory = True,
required = True,
validation_reg_ex = "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
),
AuthenticationAttributeCollectionInputConfiguration(
attribute = "displayName",
label = "Display Name",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = False,
editable = True,
write_to_directory = True,
required = False,
validation_reg_ex = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
),
AuthenticationAttributeCollectionInputConfiguration(
attribute = "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
label = "Favorite color",
input_type = AuthenticationAttributeCollectionInputType.Text,
hidden = False,
editable = True,
write_to_directory = True,
required = False,
validation_reg_ex = "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
),
],
),
],
),
),
)
result = await graph_client.identity.authentication_events_flows.post(request_body)
Réponse
L’exemple suivant illustre la réponse.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#identity/authenticationEventsFlows/$entity",
"@odata.type": "#microsoft.graph.externalUsersSelfServiceSignUpEventsFlow",
"id": "{authentictionEventsFlow-id}",
"displayName": "Woodgrove User Flow 2",
"description": null,
"priority": 500,
"onAttributeCollectionStart": null,
"onAttributeCollectionSubmit": null,
"onUserCreateStart": null,
"conditions": {
"applications": {
"includeAllApplications": false
}
},
"onInteractiveAuthFlowStart": {
"@odata.type": "#microsoft.graph.onInteractiveAuthFlowStartExternalUsersSelfServiceSignUp",
"isSignUpAllowed": true
},
"onAuthenticationMethodLoadStart": {
"@odata.type": "#microsoft.graph.onAuthenticationMethodLoadStartExternalUsersSelfServiceSignUp"
},
"onAttributeCollection": {
"@odata.type": "#microsoft.graph.onAttributeCollectionExternalUsersSelfServiceSignUp",
"accessPackages": [],
"attributeCollectionPage": {
"customStringsFileId": null,
"views": [
{
"title": null,
"description": null,
"inputs": [
{
"attribute": "email",
"label": "Email Address",
"inputType": "text",
"defaultValue": null,
"hidden": true,
"editable": false,
"writeToDirectory": true,
"required": true,
"validationRegEx": "^[a-zA-Z0-9.!#$%&’'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$",
"options": []
},
{
"attribute": "displayName",
"label": "Display Name",
"inputType": "text",
"defaultValue": null,
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
"options": []
},
{
"attribute": "extension_6ea3bc85aec24b1c92ff4a117afb6621_Favoritecolor",
"label": "Favorite color",
"inputType": "text",
"defaultValue": null,
"hidden": false,
"editable": true,
"writeToDirectory": true,
"required": false,
"validationRegEx": "^[a-zA-Z_][0-9a-zA-Z_ ]*[0-9a-zA-Z_]+$",
"options": []
}
]
}
]
}
}
}