{"id":21445775,"url":"https://github.com/sensenet/sn-identityserver","last_synced_at":"2026-02-12T08:32:48.666Z","repository":{"id":37849029,"uuid":"490202785","full_name":"SenseNet/sn-identityserver","owner":"SenseNet","description":"Library and service for an IdentityServer4 implementation that works with a sensenet repository.","archived":false,"fork":false,"pushed_at":"2025-03-06T13:50:14.000Z","size":695,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-07-02T17:42:50.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SenseNet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-09T08:46:26.000Z","updated_at":"2025-03-06T13:50:18.000Z","dependencies_parsed_at":"2023-02-09T15:46:19.335Z","dependency_job_id":"236c9553-18f9-44c7-88e0-259ec5674775","html_url":"https://github.com/SenseNet/sn-identityserver","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/SenseNet/sn-identityserver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-identityserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-identityserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-identityserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-identityserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SenseNet","download_url":"https://codeload.github.com/SenseNet/sn-identityserver/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SenseNet%2Fsn-identityserver/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265233753,"owners_count":23731825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-23T02:38:43.105Z","updated_at":"2026-02-12T08:32:48.627Z","avatar_url":"https://github.com/SenseNet.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sensenet IdentityServer\nLibrary and service for an [IdentityServer4](https://github.com/IdentityServer/IdentityServer4) implementation that works with a [sensenet](https://github.com/SenseNet/sensenet) repository and uses OAuth 2.0 and OpenID Connect.\n\nThe purpose of this project is to provide a default basic **authentication service** for a standalone sensenet repository. This service is required to log in to sensenet.\n\n\u003e The auth service only provides authentication tokens and does not have a user store. Users are maintained in the sensenet repository itself.\n\n## Authentication flow\nYou will have the following services:\n- the authentication service (the `SenseNet.IdentityServer4.Web` Asp.Net Core MVC project that can be found here, under the `src` directory)\n- a [sensenet](https://github.com/SenseNet/sensenet) repository service\n- a client application: either your custom SPA application or our global [admin UI](https://admin.sensenet.com) (which you may also install locally from [this repository](https://github.com/SenseNet/sn-client))\n\nWhen the application requires you to log in, it redirects you to the authentication service which this project is about. The auth service displays a login page and asks for your user credentials. It **validates your credentials with the sensenet repository service** in the background. If they are correct, your application receives an auth token that must be sent with all subsequent requests to the repository service.\n\n\u003e For more details please visit the [authentication basics](https://docs.sensenet.com/concepts/basics/06-authentication) article.\n\n## Usage\nYou will use the `SenseNet.IdentityServer4.Web` Asp.Net Core web project that can be found here, under the `src` directory. You can start it right away using any of the well-known methods (command line `dotnet run` or Visual Studio), without any modification. It will start on the https://localhost:44311 url by default. You can also deploy it to your environment either on a physical server or a container.\n\n\u003e Please note that the default configuration requires you to have a repository service on https://localhost:44362. If you have sensenet on a different url, please see the repository url configuration below.\n\nIf you deploy this authentication service to a different url, you will need to configure that url on the repository side too (see below), so that the repository knows where to validate access tokens.\n\n### Configuration\nEither modify one of the `appsettings.json` files (default, Develop or Production), or specify the same configuration values in user secrets or environment variables.\n\n#### Clients\nA client is basically a type of application you want to use this auth service. By default you have the following configured clients:\n- **client**: designed to work with [.Net tools](https://docs.sensenet.com/tutorials/authentication/how-to-authenticate-dotnet). Fixed clientid/secret representing a single user, no individual user login is possible.\n- **spa**: dedicated to single page client applications (React/Vue/Angular etc.)\n- **adminui**: dedicated to our admin user interface.\n- **mvc**: dedicated to Asp.Net MVC server applications\n\nYou may change any of them, but make sure you configure the same clients (and if necessary, secrets) in the **sensenet repository service**. Otherwise you will receive an `unknown client` error when trying to log in.\n\n\u003e For more on configuring clients, please visit the [IdentityServer4](https://identityserver4.readthedocs.io/) documentation.\n\n##### Allowed repositories\nClients configured to work in a web environment (e.g. `spa`, `adminui`, see above) need to know the urls of the **allowed repositories**. This is required so that unknown repositories cannot use your identity server to log in. If you want to deploy sensenet into a production environment with custom urls, you have to provide the list of allowed urls in the `RepositoryHosts` array in the configuration for **every web client**.\n\n```json\n{\n  \"sensenet\": {\n    \"Clients\": {\n      \"spa\": {\n        \"RepositoryHosts\": [ \"https://example.com\" ]\n      }\n    }\n  }\n}\n```\n\n#### sensenet repository configuration\nThese values are configured in the **sensenet repository service**, not here in the auth server! \n\nIf you want to deploy the auth service to a different url other than the default, please provide it here as the authority:\n\n```json\n\"sensenet\": {\n \"authentication\": {\n   \"authority\": \"https://identity.example.com\",\n   \"AddJwtCookie\": true\n }\n}\n```\n\n#### Logging\nThe auth service web application uses [Serilog](https://serilog.net) and [Graylog](https://www.graylog.org) and writes messages to the console and to log files in the `App_Data/Logs` folder.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsensenet%2Fsn-identityserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsensenet%2Fsn-identityserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsensenet%2Fsn-identityserver/lists"}