Özel bağlayıcıya çoklı kimlik doğrulaması ekleme

Çoklu kimlik doğrulaması (multi-auth) kullanıcıların yalnızca bir kimlik doğrulaması türüyle sınırlı olmasının aksine, bağlantılarını oluşturmak için hangi kimlik doğrulaması yöntemini kullanmak istediklerini belirtme seçeneği sunarak bağlantı oluşturmalarına olanak tanıyan bir özelliktir.

Bir bağlayıcı için, connectionParameterSets dosyasında apiProperties.json aracılığıyla kimlik doğrulama türleri koleksiyonu tanımlayın.

Önemli

Özel Bağlayıcı Sihirbazı, özel bağlayıcıda birden çok kimlik doğrulamasını etkinleştirmeyi henüz desteklememektedir. Bunun yerine Microsoft Power Platform Connectors CLI kullanarak çoklu kimlik doğrulamasıyla özel bir bağlayıcı oluşturun.

Çoklu kimlik doğrulamayı nasıl etkinleştireceğiniz

connectionParameterSets dosyasına apiProperties.json ekleyin ve connectionParameterSets.values koleksiyonunu bağlayıcı için gereken sayıda connectionParameters ile doldurun.

Bağlantı Parametreleri'nde bağlantı parametreleri ve kimlik doğrulama türleri hakkında daha fazla bilgi edinin.

Önemli

  • Bağlayıcınız OAuth kullanıyorsa, müşterilerin bağlayıcınızı kullanmaya devam edebilmesi için süresi dolan istemci kimliğini ve istemci gizli dizi kimlik bilgilerini düzenli olarak izleyin ve yenileyin.
  • İstemci gizli dizisini güncelleştirdiğinizde swagger sürümünü güncelleştirin.
  • İstemci kimliğinizin ve istemci gizli dizinizin süresi dolmadan bir ay önce bağlayıcı güncelleştirmesini gönderin.

uiDefinition-constraints-required: true , parametreler altındaki her kimlik doğrulama türü için dosyada ConnectionsParameterSets zorunlu bir parametredir.

Aşağıdaki bölümde öğesinin yapısı gösterilmektedir 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>"
      // ...
    }
  ]
}

Örnekler

API anahtarı ve Temel Kimlik Doğrulaması ile yapılandırma

"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 ve OAUTH 2.0 ile yapılandırma

Aynı türde iki bağlantı parametresi yapılandırabilirsiniz. Bu durumda, her iki yetkilendirme de türünü kullanır oauthSetting . Bir yetkilendirme, kullanıcının Entra Kimliğini kullanarak bağlantı oluşturmasına olanak tanır ve diğer yetkilendirme özel bir uç noktaya gider.

"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",
                    "uiDefinition": {
                        "displayName": "AAD based authentication",
                        "description": "Sign in using your AAD credentials",
                        "tooltip": "AAD based authentication",
                        "constraints": {
                            "required": "true"
                        }
                    }
                }
            }
        },
        {
            "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"
                            }
                        }
                    },
                    "uiDefinition": {
                        "displayName": "Custom app based authentication",
                        "description": "Sign in using your custom app credentials",
                        "tooltip": "Custom app based authentication",
                        "constraints": {
                            "required": "true"
                        }
                    }
                }
            }
        }
    ]
}

RescoCloud bağlayıcısında çoklu kimlik doğrulamanın nasıl uygulanabileceğini gösteren bir örnek bulabilirsiniz.