{"id":18578712,"url":"https://github.com/jech/galene-sample-auth-server","last_synced_at":"2026-03-01T20:32:51.018Z","repository":{"id":52307867,"uuid":"460858976","full_name":"jech/galene-sample-auth-server","owner":"jech","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-08T14:23:38.000Z","size":11,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-26T23:58:21.212Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jech.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-02-18T13:13:36.000Z","updated_at":"2024-08-18T16:22:43.000Z","dependencies_parsed_at":"2025-02-26T23:47:57.881Z","dependency_job_id":"e152ab30-5a63-44ac-8e40-132e09305d65","html_url":"https://github.com/jech/galene-sample-auth-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jech/galene-sample-auth-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-sample-auth-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-sample-auth-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-sample-auth-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-sample-auth-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jech","download_url":"https://codeload.github.com/jech/galene-sample-auth-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jech%2Fgalene-sample-auth-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29983176,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":"2024-11-06T23:37:03.266Z","updated_at":"2026-03-01T20:32:51.001Z","avatar_url":"https://github.com/jech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a sample authentication server for the Galene videoconference\nserver \u003chttps://galene.org\u003e.  It implements two distinct authorisation\nflows: it may act as an \"authorisation server\", where Galene's Javscript\ncode consults the server, or as an \"authorisation portal\", where the user\nlogs into the portal which then securely redirects to Galene.\n\nThis example was written in Python and designed to be easy to understand\nand to extend.  For a more useful example, written in Go, please see\n\u003chttps://github.com/jech/galene-ldap\u003e.\n\n\n# Preliminaries\n\nIn either case, you should first modify the function `user_permissions` to\ndo authentication suitable for your site, for example by consulting an\nLDAP database.  Then, generate a JWK:\n\n    jose jwk gen -i '{\"alg\":\"ES256\"}' -o private.jwk\n    jose jwk pub -i private.jwk -o public.jwk\n\n# Use as an authentication server\n\nRun the server:\n\n    python galene-sample-auth-server.py -k private.jwk -p 1234\n\nConfigure the group in Galene:\n\n    {\n        \"authServer\": \"http://localhost:1234/\",\n        \"authKeys\": [\n            {...insert public key here... }\n        ]\n    }\n\nPoint your browser at the usual URL \u003chttps://galene.example.org:8443/\u003e\n\n\n# Use as an authentication portal\n\nRun the server:\n\n    python galene-sample-auth-server.py -k private.jwk -p 1234 -r https://galene.example.org:8443/\n\nConfigure the group in Galene:\n\n    {\n        \"authPortal\": \"http://galene.example.org:1234/\",\n        \"authKeys\": [\n            {...insert public key here... }\n        ]\n    }\n\nPoint your browser at \u003chttp://galene.example.org:1234\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjech%2Fgalene-sample-auth-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjech%2Fgalene-sample-auth-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjech%2Fgalene-sample-auth-server/lists"}