Abstract

This document describes the design of Nostr-OIDC, an adaptation of the Solid-OIDC authentication protocol for use within the Nostr protocol. Nostr-OIDC aims to provide secure and decentralized authentication and authorization for Nostr-based services and applications.

Introduction

Nostr is a decentralized messaging and social networking protocol. Solid-OIDC (OpenID Connect for Solid) provides a framework for secure authentication in decentralized environments. This document outlines how to adapt Solid-OIDC to integrate with the Nostr protocol, enhancing decentralized authentication and authorization for Nostr-based services and applications.

Authentication Flow Adaptation

Initiating Authentication

OIDC Provider Interaction

Nostr Protocol Integration

Broadcasting the Tokens

Claim Verification

User Session Management

Session Establishment

Session Persistence

Resource Access and API Calls

Authenticated API Calls

Access Control

Token Revocation and Logout

Revoking Tokens

Logout Process

Technical Details

OIDC Provider Requirements

Nostr Service Requirements

Example Implementation

  1. OIDC Provider Setup: Configure an OIDC provider to issue tokens with custom claims for Nostr integration.
  2. Nostr Service Configuration: Implement middleware for token verification. Set up session management and access control logic.
  3. Client Application: Integrate OIDC client library to handle authentication flow. Store session tokens securely and include them in API requests.