Standalone Norwegian BankID OIDC Module
Budget: $250 – $750 USD
We are seeking an experienced .NET developer to create a self-contained, high-quality C# class library for Norwegian BankID authentication. This module will be a complete replacement for our existing legacy system and will be developed and tested in an isolated environment.
Project Summary
You will implement the OpenID Connect (OIDC) Authorization Code Flow to authenticate users with the new BankID API Version 4. The core deliverable is a clean, framework-agnostic C# class library that can be easily plugged into our existing ASP.NET Core solution. No access to our live production environment or data will be provided.
Scope of Work
• Authentication Flow: Implement only the user authentication flow, from initiation to token validation. This project does not include user registration or document signing functionality.
• Middleware Integration: The module must expose a standard Challenge/Callback pattern that integrates seamlessly with the ASP.NET Core authentication middleware.
• Claims Handling: After a successful authentication, all relevant user claims (such as PID, name, etc.) must be surfaced as standard ClaimsPrincipal properties for consumption within controllers or Razor pages.
• Framework Compatibility: The code must be framework-agnostic and built to compile cleanly against the Microsoft.Extensions.* abstractions, ensuring compatibility with ASP.NET Core versions newer than 3.1, 5.0, or 6.0.
Observability & Logging
• Detailed Logging: Integrate with the standard ILogger<T> pipeline. Logging should be easy to configure and swap with a custom logger like Serilog during application startup.
• Verbose Tracing: At the DEBUG level, logs should capture detailed outbound and inbound HTTP messages, including headers and sanitized bodies.
• Structured Events: Log structured events for key state changes and exceptions to ensure easy monitoring and debugging.
Key Deliverables
• A fully commented and clean C# class-library project (.csproj) with all source code.
• Startup/Program.cs code snippets demonstrating how to register the BankID handler and configure options (clientId, clientSecret, redirectUri, environment, etc.).
• A minimal, self-contained sample application that proves the complete login round-trip works against the BankID test environment.
• A README.md file detailing the setup, required environment variables, and instructions on how to switch the configuration from test to production.
• A comprehensive suite of unit tests covering token validation, nonce handling, and various error scenarios.
Acceptance Criteria
• Successful authentication against the BankID demo environment.
• All required user claims are correctly populated.
• No unhandled exceptions occur during the authentication process.
• DEBUG level logs include full request-response traces with sanitized data.
• The library builds without warnings on the target framework.
• The module can be easily integrated into a larger ASP.NET Core solution as a dependency.
We are looking for a developer who can ship this project quickly and cleanly. Please let us know your estimated timeline and any clarifications you may need to start.
Required Skills and Expertise:
• Strong background in ASP.NET Core and modern C# development.
• A deep understanding of authentication protocols, specifically OpenID Connect and OAuth 2.0.
• Experience with secure authentication flows, including PKCE.
• Familiarity with the Norwegian BankID OIDC developer documentation is a significant advantage.
• Proficiency with REST APIs and handling HTTP requests.
• Experience with version control systems like Git.
Project Summary
You will implement the OpenID Connect (OIDC) Authorization Code Flow to authenticate users with the new BankID API Version 4. The core deliverable is a clean, framework-agnostic C# class library that can be easily plugged into our existing ASP.NET Core solution. No access to our live production environment or data will be provided.
Scope of Work
• Authentication Flow: Implement only the user authentication flow, from initiation to token validation. This project does not include user registration or document signing functionality.
• Middleware Integration: The module must expose a standard Challenge/Callback pattern that integrates seamlessly with the ASP.NET Core authentication middleware.
• Claims Handling: After a successful authentication, all relevant user claims (such as PID, name, etc.) must be surfaced as standard ClaimsPrincipal properties for consumption within controllers or Razor pages.
• Framework Compatibility: The code must be framework-agnostic and built to compile cleanly against the Microsoft.Extensions.* abstractions, ensuring compatibility with ASP.NET Core versions newer than 3.1, 5.0, or 6.0.
Observability & Logging
• Detailed Logging: Integrate with the standard ILogger<T> pipeline. Logging should be easy to configure and swap with a custom logger like Serilog during application startup.
• Verbose Tracing: At the DEBUG level, logs should capture detailed outbound and inbound HTTP messages, including headers and sanitized bodies.
• Structured Events: Log structured events for key state changes and exceptions to ensure easy monitoring and debugging.
Key Deliverables
• A fully commented and clean C# class-library project (.csproj) with all source code.
• Startup/Program.cs code snippets demonstrating how to register the BankID handler and configure options (clientId, clientSecret, redirectUri, environment, etc.).
• A minimal, self-contained sample application that proves the complete login round-trip works against the BankID test environment.
• A README.md file detailing the setup, required environment variables, and instructions on how to switch the configuration from test to production.
• A comprehensive suite of unit tests covering token validation, nonce handling, and various error scenarios.
Acceptance Criteria
• Successful authentication against the BankID demo environment.
• All required user claims are correctly populated.
• No unhandled exceptions occur during the authentication process.
• DEBUG level logs include full request-response traces with sanitized data.
• The library builds without warnings on the target framework.
• The module can be easily integrated into a larger ASP.NET Core solution as a dependency.
We are looking for a developer who can ship this project quickly and cleanly. Please let us know your estimated timeline and any clarifications you may need to start.
Required Skills and Expertise:
• Strong background in ASP.NET Core and modern C# development.
• A deep understanding of authentication protocols, specifically OpenID Connect and OAuth 2.0.
• Experience with secure authentication flows, including PKCE.
• Familiarity with the Norwegian BankID OIDC developer documentation is a significant advantage.
• Proficiency with REST APIs and handling HTTP requests.
• Experience with version control systems like Git.
Related categories:
.NET
C# Programming
ASP.NET
RESTful API
Version Control Git
.NET Core
API Development