Добавление нескольких аутентификаций в пользовательском соединителе
Множественные аутентификации (multi-auth
) — это функция, которая позволяет пользователям создавать соединения, предоставляя им возможность выбирать, какой метод аутентификации они хотят использовать для создания своего соединения, в отличие от ограничения только одним типом аутентификации.
Для соединителя набор типов аутентификации определяется через connectionParameterSets
в файле apiProperties.json
.
Важно!
Включение множественной аутентификации в пользовательском соединителе пока не поддерживается в мастере пользовательского соединителя. Используйте Соединители Microsoft Power Platform CLI вместо этого, чтобы создать пользовательский соединитель с несколькими аутентификациями.
Как включить множественную аутентификацию
Добавьте connectionParameterSets
в файл apiProperties.json
и заполните коллекцию connectionParameterSets.values
с многими connectionParameters
, необходимыми для соединителя.
Примечание
Чтобы узнать больше о параметрах подключения и типах аутентификации, см. Параметры подключения.
В 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>"
// ...
}
]
}
Примеры
Конфигурация с ключом API и обычной аутентификацией
"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"
}
]
}
}
}
}
}
]
}
Конфигурация с Entra ID и OAUTH 2.0
Возможны два параметра подключения одного типа. В этом случае обе авторизации используют тип oauthSetting
: одна позволяет пользователю создать соединение с помощью Entra ID, а другая идет к пользовательской конечное точке.
"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"
}
}
}
}
}
}
]
}
Посмотрите на соединитель RescoCloud здесь, это пример, как реализовать множественную аутентификацию.