Custom authentications
Custom authentication is a new type of SDK plugin introduced in in version 2025. It was designed to allow you to use custom logic in connections, which you can then use in actions and data sources. There are two types of custom authentications:
Custom REST authentication, the purpose of which will be to return an authenticated http client used in REST services.
Custom database authentication to return connection strings for SQL and Oracle connections.
The target use case is supporting REST services or database servers that cannot be authenticated using standard WEBCON BPS mechanisms. So, for example, instead of writing a custom data source, we can write only a piece of code responsible for authentication.
Custom REST authentication
To generate base classes we will use Visual Studio templates, the basics of using them are described in the article Create extensions in VS.
The templates should generate two classes for us. The one containing the plugin code, which inherits from CustomRESTAuthentication, and the configuration class in which we will define attributes described in the article Configuration attributes .
The following code shows the generated code for the first of these classes:
public class RestAuthenticationExample : CustomRESTAuthentication<RestAuthenticationExampleConfig>
{
public override Task<HttpClient> CreateAuthenticatedClientAsync(CustomRestAuthenticationParams customAuthenticationParams)
{
throw new System.NotImplementedException();
}
}
The CreateAuthenticatedClientAsync method that we see above will be responsible for returning an authenticated, ready-to-use client to the business logic.
For example, if the REST service we are going to integrate with uses an API key for authentication, we could implement this method like this:
public override Task<HttpClient> CreateAuthenticatedClientAsync(CustomRestAuthenticationParams customAuthenticationParams)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("ApiKey", Configuration.ApiKey);
return Task.FromResult(client);
}
Custom database authentication
This type of plugin is a bit simpler. Again, we will start by generating the base classes. The class that contains the logic inherits from CustomDatabaseAuthentication and should look like this:
public class DBAuthenticationExample : CustomDatabaseAuthentication<DBAuthenticationExample>
{
public override Task<string> CreateConnectionStringAsync()
{
throw new NotImplementedException();
}
}
Here we have to override method CreateConnectionStringAsync, which will return a connection string for SQL or Oracle databases.
Here's an example where we take connection string from configuration and modify it slightly:
public override Task<string> CreateConnectionStringAsync()
{
var builder = new SqlConnectionStringBuilder(Configuration.ConnectionString);
builder.Password = "new@1Password";
builder.Authentication = SqlAuthenticationMethod.ActiveDirectoryPassword;
return Task.FromResult(builder.ConnectionString);
}
Build and studio configuration
Now that the plugins are ready, we should build them as described in this article.
The next step will be to deploy the package in Designer Studio as described here.
We will configure both plugins in the data sources tab in the connections section.
CustomRESTAuthentication for rest type connection where we set authentication type as SDK:

CustomDatabaseAuthentication for sql or oracle connections with selected SDK authentication:
