{"id":40447511,"url":"https://github.com/nuts-foundation/nuts-admin","last_synced_at":"2026-02-19T15:07:46.554Z","repository":{"id":219236586,"uuid":"746620331","full_name":"nuts-foundation/nuts-admin","owner":"nuts-foundation","description":"Application for administering identities in a Nuts ecosystem","archived":false,"fork":false,"pushed_at":"2026-02-16T16:07:12.000Z","size":961,"stargazers_count":0,"open_issues_count":8,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-16T23:43:34.793Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nuts-foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-22T11:27:02.000Z","updated_at":"2026-02-16T16:06:19.000Z","dependencies_parsed_at":"2024-02-26T09:26:53.912Z","dependency_job_id":"3a8d1fc1-f6d9-4535-af57-bff92778c63f","html_url":"https://github.com/nuts-foundation/nuts-admin","commit_stats":null,"previous_names":["nuts-foundation/nuts-admin"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/nuts-foundation/nuts-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuts-foundation%2Fnuts-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuts-foundation%2Fnuts-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuts-foundation%2Fnuts-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuts-foundation%2Fnuts-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nuts-foundation","download_url":"https://codeload.github.com/nuts-foundation/nuts-admin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuts-foundation%2Fnuts-admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29619298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T13:04:20.082Z","status":"ssl_error","status_checked_at":"2026-02-19T13:03:33.775Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2026-01-20T17:04:50.257Z","updated_at":"2026-02-19T15:07:46.537Z","avatar_url":"https://github.com/nuts-foundation.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nuts-admin\nApplication which shows how to integrate with the Nuts node to administer identities.\n\n## Running\nExample running the application, connecting to a Nuts node running on `http://nutsnode:8081`:\n\n```shell\n$ docker run -p 1305:1305 -e NUTS_NODE_ADDRESS=http://nutsnode:8081 nutsfoundation/nuts-admin:latest\n```\n\nWhen running in Docker without a config file mounted at `/app/config.yaml` it will use the default configuration.\n\nThe application can be configured through `/app/config.yaml` or environment variables.\nIt supports the following configuration options:\n\n- `port` or `PORT`: overrides the default HTTP port (`1305`) the application listens on. \n- `node.address` or `NUTS_NODE_ADDRESS`: points to the internal API of the Nuts node, e.g. `http://nutsnode:8081`.\n\nThe following properties configure OIDC user authorization in Nuts admin:\n- `oidc.enabled` or `NUTS_OIDC_ENABLED`: set to `true` to enable OIDC user authentication.\n- `oidc.metadata` or `NUTS_OIDC_METADATA`: points to the OIDC metadata endpoint, e.g. `https://auth.example.com/.well-known/openid-configuration`.\n- `oidc.client.id` or `NUTS_OIDC_CLIENT_ID`: the client ID to use for OIDC authentication.\n- `oidc.client.secret` or `NUTS_OIDC_CLIENT_SECRET`: the client secret to use for OIDC authentication.\n- `oidc.scope` or `NUTS_OIDC_SCOPE`: the scope(s) to use for OIDC authentication, defaults to `openid`, `profile`, and `email`.\n\nThe following properties should be used if API authentication is enabled on the Nuts node:\n- `node.auth.keyfile` or `NUTS_NODE_AUTH_KEYFILE`: points to a PEM encoded private key file. The corresponding public key should be configured on the Nuts node in SSH authorized keys format.\n- `node.auth.user` or `NUTS_NODE_AUTH_USER`: must match the user in the SSH authorized keys file.\n- `node.auth.audience` or `NUTS_NODE_AUTH_AUDIENCE`: must match the configured audience.\n\n## User Authentication\n\nThis application does support OIDC user authentication. This has only been tested with Azure Entra ID, but it should work with any OIDC provider.\n\n### Preliminary warning\n\nHowever, if OIDC user authentication is not enabled, make sure to restrict access in any other case than local development.\nThe application proxies REST API calls to the configured Nuts node, so leaving it unsecured will allow anyone to access the proxied Nuts node REST APIs.\n\n### Configuration on Azure\nYou can have users logged in with their Azure Entra ID account. Nuts Admin will authenticate to Azure Entra ID using `client_id` and `client_secret`.\nThe configuration (as environment variables) could look as below.\nIt assumes Nuts Admin runs on `https://example.com/admin/`. Make sure to fill in the correct `tenantId` and `client_id` and `client_secret`.\n\n```shell\nNUTS_URL=https://example.com/admin/\nNUTS_OIDC_ENABLED=true\nNUTS_OIDC_METADATA=https://login.microsoftonline.com/\u003ctenantId\u003e/v2.0/.well-known/openid-configuration\nNUTS_OIDC_CLIENT_ID=\u003cclient_id\u003e\nNUTS_OIDC_CLIENT_SECRET=\u003cclient_secret\u003e\n```\n\nTypically, you create an enterprise application in Azure Entra ID and configure the redirect URI to `https://example.com/admin/auth/openid-connect/callback` (given the example base URL).\nThen, you make sure the users or groups that you want to give access are assigned to the enterprise application.\nTo let Nuts Admin access Azure Entra ID, you can register a user-assigned managed identity in Azure and generate the `client_id` and `client_secret`.\n\nFor more information regarding OIDC on Azure, see https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols-oidc.\n\n## Requesting Credentials\n\nThis application supports requesting credentials using the Nuts node through OpenID4VCI.\n\nYou need to configure the credential issuers using the following properties:\n\n* `NUTS_CREDENTIALPROFILES_\u003cID\u003e_TYPE`: the type of the credential to be issued, e.g. `DegreeCredential`.\n* `NUTS_CREDENTIALPROFILES_\u003cID\u003e_ISSUER`: the URL of the issuer, e.g. `https://issuer.example.com`.\n\nWhen there is at least one profile configured, the option will become available in the subject/wallet view.\n\nYou'll also need to enable the authorization endpoint on the Nuts node for OpenID4VCI to work using `NUTS_AUTH_AUTHORIZATIONENDPOINT_ENABLED`.\n\n## Development\n\nDuring front-end development, you probably want to use the real filesystem and webpack in watch mode:\n\n```shell\nmake dev\n```\n\nYou can access the website at `http://localhost:1305/` by default\n\nThe API and domain types are generated from the `api/api.yaml`.\n```shell\nmake gen-api\n```\n\n### Technology Stack\n\nFrontend framework is vue.js 3.x\n\nIcons are from https://heroicons.com\n\nCSS framework is https://tailwindcss.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuts-foundation%2Fnuts-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuts-foundation%2Fnuts-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuts-foundation%2Fnuts-admin/lists"}