Take.Security.AccessControl
1.1.0
dotnet add package Take.Security.AccessControl --version 1.1.0
NuGet\Install-Package Take.Security.AccessControl -Version 1.1.0
<PackageReference Include="Take.Security.AccessControl" Version="1.1.0" />
paket add Take.Security.AccessControl --version 1.1.0
#r "nuget: Take.Security.AccessControl, 1.1.0"
// Install Take.Security.AccessControl as a Cake Addin #addin nuget:?package=Take.Security.AccessControl&version=1.1.0 // Install Take.Security.AccessControl as a Cake Tool #tool nuget:?package=Take.Security.AccessControl&version=1.1.0
Informations
This package is responsible for managing tokens, enabling more security in accesses between bot (Take Blip) and API's. Tokens are managed by the package and saved in the bot's Bucket (https://docs.blip.ai/#bucket). The name of the document in the bucket is tokenAccessControl
Usage
After installing the package, you'll need to tell your API to use this scheme in the Startup.cs
file. The simplest way is using the extension method provided with the package:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.UseBotAuthenticationJwt("bot identifier", "bot accesskey", "bot tenant");
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
app.UseHttpsRedirection()
.UseAuthentication() // this is the line that should be added, and it MUST be before .UseRouting()
.UseRouting()
// ...
}
Once your API is configured to use it, you can enable it on a controller like so:
[Route("api/[controller]")]
[ApiController]
[Authorize] // add this to protect the whole controller
public class HealthController : ControllerBase
{
}
To protect only a given method:
[Route("api/[controller]")]
[ApiController]
public class HealthController : ControllerBase
{
[HttpGet, Authorize] // add the Authorize attribute here instead, to protect only the action
public IActionResult HealthCheck() {}
}
To exclude a given method from a protected controller:
[Route("api/[controller]")]
[ApiController, Authorize] // add the attribute
public class HealthController : ControllerBase
{
[HttpGet, AllowAnonymous] // Methods with AllowAnonymous will ignore the auth check
public IActionResult HealthCheck() {}
[HttpGet("authorize")] // Even without the explicit attribute, this will be protected by the one on the controller
public IActionResult KeyCheck() {}
}
If you used Authorization, define the schema to know which Authorization you are using. The schema used is BotAuthenticationJwt
[Route("api/[controller]")]
[ApiController]
public class HealthController : ControllerBase
{
[Authorize(AuthenticationSchemes = "BotAuthenticationJwt")]
[HttpGet]
public IActionResult HealthCheck() {}
}
To use the generated token, you must send the Key: Authorization; Value: Bearer {{bucket.tokenAccessControl@key}}, as you can see in the image:
Remembering that the key will be created as soon as you run Startup.cs
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.AspNetCore.Authentication (>= 2.2.0)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 2.2.0)
- Take.Blip.Client (>= 0.5.285)
- TimeZoneConverter (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.