{"id":20156161,"url":"https://github.com/openfun/nextcloud-shibboleth-sync","last_synced_at":"2025-03-03T01:44:52.586Z","repository":{"id":79716942,"uuid":"255664972","full_name":"openfun/nextcloud-shibboleth-sync","owner":"openfun","description":":gear: Synchronize Identity Providers from shibboleth to Nextcloud","archived":false,"fork":false,"pushed_at":"2020-04-22T08:43:32.000Z","size":13,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-13T12:48:43.845Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openfun.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}},"created_at":"2020-04-14T16:36:20.000Z","updated_at":"2020-04-22T11:49:46.000Z","dependencies_parsed_at":"2023-05-15T10:30:43.447Z","dependency_job_id":null,"html_url":"https://github.com/openfun/nextcloud-shibboleth-sync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fnextcloud-shibboleth-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fnextcloud-shibboleth-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fnextcloud-shibboleth-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openfun%2Fnextcloud-shibboleth-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openfun","download_url":"https://codeload.github.com/openfun/nextcloud-shibboleth-sync/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241596242,"owners_count":19988041,"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-13T23:37:50.620Z","updated_at":"2025-03-03T01:44:52.581Z","avatar_url":"https://github.com/openfun.png","language":"PHP","readme":"# nextcloud-shibboleth-sync\n\nThis repository contains an app to synchronize a list of identity providers with the \n[user_saml](https://github.com/nextcloud/user_saml) Nextcloud application.\n\nThis app is written in pure PHP with no other dependency.\nIt supposes that your NextCloud instance is connected to a PostgreSQL database.\n\n## How to build the image\n\nThe docker image will copy the `app` directory and the `CMD` instruction directly executes the script.\n\nTo build it, run:\n\n```bash\n$ docker build -t fundocker/nextcloud-shibboleth-sync:my_tag .\n```\n\n## How to use the image\n\nTo run the image, several environment variables should be used:\n\n- `NEXTCLOUD_IDPS_METADATA_URL`: the XML url containing the identity providers list\n- `SAML_DISPLAYNAME_MAPPING`: Attribute to map the displayname to\n- `SAML_EMAIL_MAPPING`: Attribute to map the email address to\n- `SAML_GENERAL_UID_MAPPING`: Attribute to map the UID to\n- `SAML_GROUP_MAPPING`: Attribute to map the users groups to\n- `SAML_SERVICE_PROVIDER_PK`: path to the service provider private key\n- `SAML_SERVICE_PROVIDER_X509_CERT`: path to the service provider X509 certificate\n- `POSTGRES_DB`: postgresql database name\n- `POSTGRES_HOST`: postgresql database host\n- `POSTGRES_PASSWORD`: postgresql database password\n- `POSTGRES_PORT`: postgresql database port\n- `POSTGRES_USER`: postgresql database username\n\nA volume is also used to add the X509 certificate and the private key provided by the identity provider,\nthis volume must be mounted in the `/private` directory and the absolute path to each file added to the environment \nvariables `SAML_SERVICE_PROVIDER_PK` and `SAML_SERVICE_PROVIDER_X509_CERT`.\n\nA complete example is available in the [`docker-compose.yml`](./docker-compose.yml) file.\n\n## Development workflow\n\nTo ease the development, a docker-compose configuration is added. To use this docker-compose environment\na `Makefile` is here to execute all needed operations.\n\nFirst you need to bootstrap the project:\n\n```bash\n$ make bootstrap\n```\n\nThis task will build all needed images and then install Nextcloud.\n\nOnce the project has been bootstrapped you can run the `sync` task:\n\n```\n$ make sync\n```\n\nIf you want to run Nextcloud, you have to execute the `run` task and Nextcloud will be available at the following address: http://localhost:9000\n\n```\n$ make run\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fnextcloud-shibboleth-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenfun%2Fnextcloud-shibboleth-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenfun%2Fnextcloud-shibboleth-sync/lists"}