67 lines
3.4 KiB
Markdown
67 lines
3.4 KiB
Markdown
# 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 two methods:
|
|
* ```/identity/authenticate``` - handles user authentication using credentials and generates an access token.
|
|
* ```/identity/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](https://lab.code-rove.com/gitea/bricks/tuitio-client#readme).
|
|
|
|
**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](https://lab.code-rove.com/gitea/bricks/tuitio-client-react).
|
|
|
|
Tuitio client react uses [tuitio-client](https://lab.code-rove.com/gitea/bricks/tuitio-client#readme) 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](https://lab.code-rove.com/gitea/bricks/netmash/src/branch/master/src/security/authentication/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:
|
|
* [Tuitio.PublishedLanguage](https://lab.code-rove.com/public-nuget-server/packages/tuitio.publishedlanguage)
|
|
* [Tuitio.Wrapper](https://lab.code-rove.com/public-nuget-server/packages/tuitio.wrapper) |