Skip to content

open-policy-agent/opa-aspnetcore

Repository files navigation

OPA ASP.NET Core SDK

Important

The documentation for this SDK lives under docs/, with reference documentation available at https://open-policy-agent.io/opa-aspnetcore/

You can use the OPA C# ASP.NET Core SDK to connect Open Policy Agent and EOPA deployments to your ASP.NET Core applications using the included Middleware implementation.

Important

Would you prefer a plain C# API instead of ASP.NET Core? Check out the OPA C# SDK.

SDK Installation

This package is published on NuGet as OpenPolicyAgent.Opa.AspNetCore. The NuGet page includes up-to-date instructions on how to add it as a dependency to your C# project.

If you're using the dotnet CLI, this should look like:

dotnet add package OpenPolicyAgent.Opa.AspNetCore

SDK Example Usage (high-level)

using OpenPolicyAgent.Opa;
using OpenPolicyAgent.Opa.AspNetCore;

// ...

string opaUrl = System.Environment.GetEnvironmentVariable("OPA_URL") ?? "http://localhost:8181";
OpaClient opa = new OpaClient(opaUrl);

var builder = new WebHostBuilder()
    .ConfigureServices(services =>
    {
        services.AddAuthentication( /* ... your authentication setup here ... */ );
        services.AddRouting();
        // ...
    }).Configure(app =>
    {
        app.UseRouting();
        app.UseAuthentication();
        app.UseMiddleware<OpaAuthorizationMiddleware>(opa, "authz/exampleapp/routes/allow");
        // ...
        // Your controller/routes added here.
    });

var app = builder.Build();
app.Run();

Policy Input/Output Schema

Documentation for the required input and output schema of policies used by the OPA ASP.NET Core SDK can be found here

Build Instructions

To build the SDK, use dotnet build. The resulting library files will be in src/OpenPolicyAgent.Opa.AspNetCore/bin/Debug/net8.0.

To build the documentation site, run docfx docs/docfx.json -o OUTPUT_DIR. You should replace OUTPUT_DIR with a directory on your local system where you would like the generated docs to be placed (the default behavior without -o will place the generated HTML docs site under the docs/_site folder in this repo). You can also preview the documentation site using docfx docs/docfx.json --serve, which will serve the docs on http://localhost:8080 until you use Ctrl+C to exit.

To run the unit tests, you can use dotnet test.

Community

For questions, discussions, and announcements, please join the OPA community on Slack!

Development

For development docs, see DEVELOPMENT.md.

About

A driver to connect ASP.NET Core applications to Open Policy Agent (OPA) deployments.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •