Simple identity server implementation
 
 
Go to file
Tudor Stanciu 7d7bc9e82f Merged PR 77: Added "user-info" method in API
- Added "user-info" method in API
- removed ProfilePictureUrl property from token
- contact options
- Added user contact options
- mapping fix
2023-03-28 17:01:50 +00:00
src Merged PR 77: Added "user-info" method in API 2023-03-28 17:01:50 +00:00
test/UnitTests Added Tuitio.Wrapper.Tests 2023-03-14 01:06:09 +02:00
.dockerignore Added docker support 2020-12-25 01:17:36 +02:00
.gitattributes Add .gitignore and .gitattributes. 2020-12-19 18:17:22 +02:00
.gitignore Merged PR 70: Tuitio rebranding 2023-01-31 00:17:54 +00:00
Directory.Build.props Merged PR 77: Added "user-info" method in API 2023-03-28 17:01:50 +00:00
LICENSE.txt license 2023-02-14 01:23:13 +02:00
Notes.txt Merged PR 70: Tuitio rebranding 2023-01-31 00:17:54 +00:00
NuGet.config Tuitio.PublishedLanguage nuget definition improvements 2023-02-27 08:32:22 +02:00
README.md Tuitio refactoring and account logout implementation 2023-03-07 19:44:55 +02:00
ReleaseNotes.xml Merged PR 77: Added "user-info" method in API 2023-03-28 17:01:50 +00:00
Tuitio.sln Added Tuitio.Wrapper.Tests 2023-03-14 01:06:09 +02:00
dependencies.props Merged PR 77: Added "user-info" method in API 2023-03-28 17:01:50 +00:00

README.md

Tuitio

Tuitio is a simple identity server implementation focused strictly on the needs of my home lab. At the moment it has a simple API consisting of only three methods:

  • /account/login - handles user authentication using credentials and generates an access token.
  • /account/logout - handles user logout.
  • /connect/authorize - manages the authorization process for a token, including verification of its existence, validity, and authenticity.

Tuitio is a latin word that encompasses meanings such as supervision, safeguarding, defense, guard duty, and protection.

Database

Currently, the database server supported by the system is only Microsoft SQL Server. In the following versions, the system will also be compatible with PostgreSQL and SQLite.

Logging

The logging functionality is managed with Serilog, and its configuration is done in the appsettings.json file. In addition to its standard configuration, Tuitio also has a preconfigured area where two destinations for logs are available: SqlServer database and Seq. Each of the destinations can be activated or not. If logging in the console is sufficient, all additional logging destinations can be disabled. This configuration area is:

"Logs": {
  "SqlServer": {
    "Enabled": false,
    "Connection": "Server=<server>;Database=<database>;User Id=<user>;Password=<password>;"
  },
  "Seq": {
    "Enabled": false,
    "Url": "",
    "ApiKey": ""
  }
}

Hosting

The only hosting environment tested for this service is Docker, but considering that .NET 6 is cross platform, it can most likely be hosted in any environment.

Stack

  • .NET (C#)
  • EntityFramework
  • SQL Server
  • Swagger
  • Docker
  • Seq

Integrations

Javascript

Tuitio can be integrated with any system written in javascript through the npm package tuitio-client.

Source code: https://lab.code-rove.com/gitea/bricks/tuitio-client
Registry: https://lab.code-rove.com/public-node-registry/-/web/detail/@flare/tuitio-client

React

Tuitio can be integrated with an application written in React both through the above package and through tuitio-client-react.

Tuitio client react uses tuitio-client internally and adds state management through a react context and various react hooks through which the user has access to data and actions.

Source code: https://lab.code-rove.com/gitea/bricks/tuitio-client-react
Registry: https://lab.code-rove.com/public-node-registry/-/web/detail/@flare/tuitio-client-react

C#

Tuitio can be integrated in any .NET API through the Netmash.Security.Authentication.Tuitio NuGet package.

Source code: https://lab.code-rove.com/gitea/bricks/netmash/src/branch/master/src/security/authentication/Netmash.Security.Authentication.Tuitio
Registry: https://lab.code-rove.com/public-nuget-server/packages/netmash.security.authentication.tuitio

Netmash.Security.Authentication.Tuitio uses internally two packages exposed by Tuitio: