Dodaj wiele uwierzytelnień na niestandardowym łączniku
Wielokrotne uwierzytelnianie (multi-auth
) to funkcja, która umożliwia użytkownikom tworzenie połączeń, zapewniając im opcję wyboru metody uwierzytelniania, której chcą użyć do utworzenia połączenia, w przeciwieństwie do ograniczenia do jednego typu uwierzytelniania.
W przypadku łącznika kolekcja typów uwierzytelniania jest definiowana za pomocą connectionParameterSets
w pliku apiProperties.json
.
Ważne
Włączenie wielu uwierzytelniania w łączniku niestandardowym nie jest jeszcze obsługiwane w Kreatorze łącznika niestandardowego. Zamiast tego można użyć łączników CLI Microsoft Power Platform, aby utworzyć łącznik niestandardowy z wieloma authami.
Jak włączyć obsługę wielu auth
Dodaj connectionParameterSets
w pliku apiProperties.json
i wypełnij kolekcję connectionParameterSets.values
tyloma connectionParameters
wymaganymi dla łącznika.
Uwaga
Aby dowiedzieć się więcej o parametrach połączenia i typach uwierzytelniania, odwiedź witrynę Parametry połączenia.
Poniżej przedstawiono strukturę 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>"
// ...
}
]
}
Przykłady
Konfiguracja z kluczem interfejsu API i uwierzytelnianiem podstawowym
"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"
}
]
}
}
}
}
}
]
}
Konfiguracja z oprogramowania Entra ID i OAUTH 2.0
Można mieć dwa connectionParameters tego samego typu. W tym przypadku oba autoryzacje używają typu oauthSetting
: jedna umożliwia użytkownikowi utworzenie połączenia przy użyciu funkcji Entra ID, a druga do niestandardowego punktu końcowego.
"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"
}
}
}
}
}
}
]
}
Zobacz tutaj łącznik RescoCloud, aby zobaczyć bieżący przykład implementacji wielu autoryzacji.