Compare commits
10 Commits
4bbe881285
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6748a3762a | |||
| cccfb45bd5 | |||
| 08fb137e18 | |||
| 59a46e8a1f | |||
| 65a3d52a5b | |||
| b90365a2ce | |||
| 2d30221119 | |||
| 52cc594f69 | |||
| 49a450a6fa | |||
| f10617f646 |
@@ -0,0 +1,74 @@
|
||||
# SimpleIdP
|
||||
|
||||
Self-hosted OAuth 2.0 / OpenID Connect identity provider built with ASP.NET Core 8.0 and SimpleIdServer.
|
||||
|
||||
## Features
|
||||
|
||||
- OAuth 2.0 Authorization Code flow with PKCE support
|
||||
- OpenID Connect authentication
|
||||
- Multiple authentication methods:
|
||||
- Password-based
|
||||
- SMS-based
|
||||
- OTP (One-Time Password)
|
||||
- WebAuthn (FIDO2)
|
||||
- Mobile-based
|
||||
- Email-based
|
||||
- Console-based
|
||||
- Verifiable Presentations
|
||||
- Multi-realm support
|
||||
- User management with roles and claims
|
||||
- Client management with configurable redirect URIs
|
||||
- Refresh tokens with configurable expiration
|
||||
- Consent management
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- **Framework**: .NET 8.0
|
||||
- **Identity Server**: SimpleIdServer 6.0.*-*
|
||||
- **UI**: Razor Pages
|
||||
- **Container**: Docker (multi-stage build)
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration is loaded from JSON files in the `config/` directory:
|
||||
|
||||
- `users.json` - User definitions (username, password, email, roles, claims, consents)
|
||||
- `clients.json` - OAuth 2.0 client definitions
|
||||
- `realm.json` - Realm configuration
|
||||
- `scopes.json` - Available scopes and claim mappers
|
||||
- `api.json` - API resource definitions
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Run Locally
|
||||
|
||||
```bash
|
||||
dotnet run
|
||||
```
|
||||
|
||||
The server starts on:
|
||||
- HTTPS: `https://localhost:65455`
|
||||
- HTTP: `http://localhost:65456`
|
||||
|
||||
### Run in Docker
|
||||
|
||||
```bash
|
||||
docker build -t simpleidp .
|
||||
docker run -p 8080:8080 simpleidp
|
||||
```
|
||||
|
||||
## Default Credentials
|
||||
|
||||
The default user is defined in `config/users.json`:
|
||||
|
||||
- Username: `administrator`
|
||||
- Password: `password`
|
||||
- Email: `adm@mail.com`
|
||||
|
||||
## Docker Hub
|
||||
|
||||
Image: `mareklesko/simpleidp`
|
||||
|
||||
## CI/CD
|
||||
|
||||
GitLab CI pipeline builds and pushes Docker images on `dev` and `main` branches.
|
||||
@@ -9,8 +9,8 @@ WORKDIR /src
|
||||
COPY . .
|
||||
|
||||
# Restore & publish (self-contained trimming can be added later if desired)
|
||||
RUN dotnet restore
|
||||
RUN dotnet publish -c $BUILD_CONFIGURATION -o /app/publish --no-restore
|
||||
RUN dotnet restore SimpleIdp.Server/SimpleIdp.csproj
|
||||
RUN dotnet publish SimpleIdp.Server/SimpleIdp.csproj -c $BUILD_CONFIGURATION -o /app/publish --no-restore
|
||||
|
||||
# =========================
|
||||
# Runtime stage
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"profiles": {
|
||||
"SimpleIdp": {
|
||||
"commandName": "Project",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
},
|
||||
"applicationUrl": "https://localhost:65455;http://localhost:65456"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
# simpleidp
|
||||
|
||||
Self-hosted OAuth 2.0 / OpenID Connect identity provider built with ASP.NET Core 8.0 and SimpleIdServer.
|
||||
|
||||
## Features
|
||||
|
||||
- OAuth 2.0 Authorization Code flow with PKCE support
|
||||
- OpenID Connect authentication
|
||||
- Multiple authentication methods (password, SMS, OTP, WebAuthn, mobile, email, console, verifiable presentations)
|
||||
- Multi-realm support
|
||||
- User management with roles and claims
|
||||
- Client management with configurable redirect URIs
|
||||
- Refresh tokens with configurable expiration
|
||||
- Consent management
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- **Framework**: .NET 8.0
|
||||
- **Identity Server**: SimpleIdServer 6.0.*-*
|
||||
- **UI**: Razor Pages
|
||||
- **Container**: Docker (multi-stage build)
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Run Locally
|
||||
|
||||
```bash
|
||||
dotnet run
|
||||
```
|
||||
|
||||
The server starts on:
|
||||
- HTTPS: `https://localhost:65455`
|
||||
- HTTP: `http://localhost:65456`
|
||||
|
||||
### Run in Docker
|
||||
|
||||
```bash
|
||||
docker build -t simpleidp .
|
||||
docker run -p 8080:8080 simpleidp
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration is loaded from JSON files in the `config/` directory:
|
||||
|
||||
- `users.json` - User definitions (username, password, email, roles, claims, consents)
|
||||
- `clients.json` - OAuth 2.0 client definitions
|
||||
- `realm.json` - Realm configuration
|
||||
- `scopes.json` - Available scopes and claim mappers
|
||||
- `api.json` - API resource definitions
|
||||
|
||||
## Default Credentials
|
||||
|
||||
- **Username**: `administrator`
|
||||
- **Password**: `password`
|
||||
- **Email**: `adm@mail.com`
|
||||
|
||||
## Docker Hub
|
||||
|
||||
Image: `mareklesko/simpleidp`
|
||||
@@ -4,6 +4,11 @@
|
||||
<OutputType>Exe</OutputType>
|
||||
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Remove="SimpleIdp.Tests/**" />
|
||||
<EmbeddedResource Remove="SimpleIdp.Tests/**" />
|
||||
<None Remove="SimpleIdp.Tests/**" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.3.0" />
|
||||
<PackageReference Include="SimpleIdServer.IdServer.Pwd" Version="6.0.*-*" />
|
||||
@@ -11,7 +16,7 @@
|
||||
<PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="2.1.175" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="config\idp-config.json">
|
||||
<Content Update="config\idp-config.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
@@ -244,4 +249,4 @@
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"defaultProvider": "cdnjs",
|
||||
"libraries": [
|
||||
{
|
||||
"library": "jquery@3.6.3",
|
||||
"destination": "wwwroot/lib/jquery/"
|
||||
},
|
||||
{
|
||||
"library": "bootstrap@5.2.3",
|
||||
"destination": "wwwroot/lib/bootstrap/"
|
||||
},
|
||||
{
|
||||
"library": "popper.js@2.11.6",
|
||||
"destination": "wwwroot/lib/popper.js/"
|
||||
},
|
||||
{
|
||||
"library": "font-awesome@6.5.2",
|
||||
"destination": "wwwroot/lib/fontawesome/"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |