Agregar autenticaciones múltiples en un conector personalizado
Autenticaciones múltiples (multi-auth
) es una función que permite a los usuarios crear conexiones proporcionándoles una opción para elegir qué método de autenticación quieren usar para crear su conexión, en lugar de estar limitado a un solo tipo de autenticación.
Para un conector, una colección de tipos de autenticación se define mediante connectionParameterSets
en el archivo de apiProperties.json
.
Importante
La habilitación de autenticaciones múltiples en un conector personalizado aún no es compatible con el asistente del conector personalizado. Use conectores de Microsoft Power Platform CLI en su lugar, para crear un conector personalizado con autenticación múltiple.
Cómo habilitar la autenticación múltiple
Añada connectionParameterSets
al archivo apiProperties.json
y rellene la colección connectionParameterSets.values
con tantos connectionParameters
como se necesiten para el conector.
Nota
Para saber más sobre los parámetros de conexión y los tipos de autenticación, visite Parámetros de conexión.
La siguiente es la estructura de connectionParameterSets
:
"connectionParameterSets": {
// uiDefinition for the parameter sets.
"uiDefinition": {
"displayname": "Select the authorization type",
"description": "<<Enter here your description>>"
},
"values": [
// Connection parameter set
{
"name": "<parameter set name>",
// uiDefinition for this parameter set.
"uiDefinition": {
"displayname": "<display name>",
"description": "<description text>"
},
"parameters": {
// Schema matches existing "connectionParameters"
"<parameter name>": {
"type": "string | securestring | oauthsetting"
},
"<parameter name>:clientId": {
"type": "string",
"uiDefinition": {
"schema": {
// For string types, the description must be placed in
// uiDefinition.schema.description to be shown in the description box
"type": "string",
"description": "<description text>"
},
"displayName": "<display name>",
}
}
}
},
{
"name": "<parameter set name 2>"
// ...
}
]
}
Ejemplos
Configuración con clave API y autenticación básica
"connectionParameterSets": {
"uiDefinition": {
"displayName": "Authentication Type",
"description": "Type of authentication to be used."
},
"values": [
{
"name": "basic-auth",
"uiDefinition": {
"displayName": "Use your X credentials",
"description": "Log in using your username and password for X."
},
"parameters": {
"username": {
"type": "string",
"uiDefinition": {
"displayName": "X username",
"schema":{
"description": "The username for X",
"type": "string"
},
"tooltip": "Provide your X username",
"constraints": {
"required": "true"
}
}
},
"password": {
"type": "securestring",
"uiDefinition": {
"displayName": "X password",
"schema":{
"description": "The password for X",
"type": "securestring"
},
"tooltip": "Provide your X password",
"constraints": {
"required": "true"
}
}
}
}
},
{
"name": "api-auth",
"uiDefinition": {
"displayName": "Use X API Key",
"description": "Log in using X's API Key."
},
"parameters": {
"api_key": {
"type": "securestring",
"uiDefinition": {
"constraints": {
"clearText": false,
"required": "true",
"tabIndex": 3
},
"schema":{
"description": "Enter your API Key for X",
"type": "securestring"
},
"displayName": "API Key generated in X"
}
},
"environment": {
"type": "string",
"uiDefinition": {
"displayName": "Environment",
"schema":{
"description": "The API environment to use; either production or sandbox",
"type": "string"
},
"tooltip": "Select an API environment to use",
"constraints": {
"required": "true",
"allowedValues": [
{
"text": "Sandbox",
"value": "YOUR_SANDBOX_VALUE_HERE"
},
{
"text": "Production",
"value": "YOUR_PROD_VALUE_HERE"
}
]
}
}
}
}
}
]
}
Configuración con Entra ID y OAUTH 2.0
Es posible tener dos parámetros de conexión del mismo tipo. En este caso, ambas autorizaciones utilizan el tipo oauthSetting
: una permite al usuario crear una conexión con Entra ID mientras que la otra va a un extremo personalizado.
"connectionParameterSets": {
"uiDefinition": {
"displayName": "Authentication Type",
"description": "Type of authentication to be used."
},
"values": [
{
"name": "aad-auth",
"uiDefinition": {
"displayName": "Use default shared application",
"description": "Log in using the standard X app."
},
"parameters": {
"token": {
"oAuthSettings": {
"clientId": "YOUR_AAD_APPLICATION_ID_HERE",
"customParameters": {
"loginUri": {
"value": "https://login.windows.net"
},
"resourceUri": {
"value": "https://graph.microsoft.com"
},
"tenantId": {
"value": "common"
}
},
"identityProvider": "aad",
"properties": {
"IsFirstParty": "False"
},
"redirectMode": "GlobalPerConnector",
"scopes": [
"Group.ReadWrite.All offline_access"
]
},
"type": "oauthSetting"
}
}
},
{
"name": "custom-app-auth",
"uiDefinition": {
"displayName": "Use the X authentication app",
"description": "Log in using X app."
},
"parameters": {
"token": {
"type": "oauthSetting",
"oAuthSettings": {
"clientId": "YOUR_CLIENT_ID_HERE",
"identityProvider": "oauth2",
"redirectMode": "GlobalPerConnector",
"customParameters": {
"authorizationUrl": {
"value": "https://login.dummy.net/request"
},
"refreshUrl": {
"value": "https://login.dummy.net/token"
},
"tokenUrl": {
"value": "https://login.dummy.net/token"
}
}
}
}
}
}
]
}
Eche un vistazo al conector RescoCloud aquí para ver un ejemplo actual sobre cómo implementar la autenticación múltiple.