{"id":15348105,"url":"https://github.com/ironcore864/sap-bt","last_synced_at":"2026-03-07T10:30:18.961Z","repository":{"id":73865977,"uuid":"261732169","full_name":"IronCore864/sap-bt","owner":"IronCore864","description":null,"archived":false,"fork":false,"pushed_at":"2020-05-06T11:12:44.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T12:46:57.837Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/IronCore864.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-05-06T11:00:55.000Z","updated_at":"2020-05-06T11:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"d2dd8847-f510-4353-a820-6577d825102e","html_url":"https://github.com/IronCore864/sap-bt","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/IronCore864%2Fsap-bt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCore864%2Fsap-bt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCore864%2Fsap-bt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IronCore864%2Fsap-bt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IronCore864","download_url":"https://codeload.github.com/IronCore864/sap-bt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239898461,"owners_count":19715212,"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-10-01T11:44:51.929Z","updated_at":"2026-03-07T10:30:18.872Z","avatar_url":"https://github.com/IronCore864.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAP-BT\n\n## 0 Naming\n\n**S**AML **A**uthentication **P**roxy - with **B**earer **T**oken header support.\n\nInspired by:\n\n- https://github.com/itzg/saml-auth-proxy\n- https://github.com/bitsensor/saml-proxy\n\nthen taking it to another level (cleaner, simpler, with bearer token authn).\n\n## 1 What it is\n\nThe service itself runs as an independent \"proxy\" applicaiton. When accessed, it does SAML authentication; if successful, it loads the \"BACKEND_URL\".\n\nCan be used to use SAML authentication to protect web resources, for example, kubernetes dashboard.\n\n## 2 How to Use\n\n### 2.1 Configuration\n\nConfiguration is passed as environment variables.\n\n#### 2.1.1 Mandatory Config ENV Vars\n\n##### ROOT_URL\n\nExternal URL of this proxy itself.\n\n##### BACKEND_URL\n\nURL of the backend to go to after SAML auth.\n\n##### IDP_METADATA_URL\n\nURL of the identity provider's metadata XML. Only URL supported, not local file (I don't like if/else).\n\n##### SP_KEY_PATH\n\nThe path to the X509 private key PEM file for this service provider.\n\nDefaults to `saml-auth-proxy.key` at the current directory.\n\n#####\tSP_CERT_PATH\n\nThe path to the X509 public certificate PEM file for this service provider.\n\nDefaults to `saml-auth-proxy.cert`.\n\n#### 2.1.2 Optional Config ENV Vars\n\n##### AUTHORIZE_ATTRIBUTE\n\nEnables authorization and specifies the attribute to check for authorized values.\n\nExample:\n\n```bash\nexport AUTHORIZE_ATTRIBUTE=Groups\n```\n\nIf not set, it will return authenticated.\n\n##### AUTHORIZE_VALUES\n\nUsed with `AUTHORIZE_ATTRIBUTE`, values that must exist in `AUTHORIZE_ATTRIBUTE` in order to be considered as authorized.\n\nA list, value being comma separated strings, Example:\n\n```bash\nexport AUTHORIZE_VALUES=group1,group2,group3\n```\n\n##### AUTHORIZE_VALUE_BEARER_TOKEN_MAPPING\n\nUsed with `AUTHORIZE_VALUES`, a map, key being one of the `AUTHORIZE_VALUES`, value is the Bearer token to set. Example:\n\n```bash\nexport AUTHORIZE_VALUE_BEARER_TOKEN_MAPPING=group1:asdf,group2:jkl,group3:xyz\n```\n\n##### ATTRIBUTE_HEADER_MAPPINGS\n\nComma separated list of attribute=header pairs mapping SAML response attributes to forwarded request header.\n\n##### BIND\n\n`host:port` for this proxy server to listen on.\n\nDefaults to `:8080`.\n\n##### HTTP_PROXY\n\nIf you are using proxy.\nThe snake-case values, such as `SAML_PROXY_BACKEND_URL`, are the equivalent environment variables that can be set instead of passing configuration via the command-line. \n\nThe command-line argument usage renders with only a single leading dash, but GNU-style double-dashes can be used also, such as `--sp-key-path`.\n\n### 2.2 Build\n\nGo 1.14 required.\n\nGo module enabled, so doesn't have to pull ths repo into go path.\n\nJust run:\n\n```bash\ngo build\n```\n\n### 2.3 Deploy in k8s\n\nThere is a healthcheck endpoint at `/_health` can be used for k8s liveness/readiness probe.\n\nIt returns HTTP 200.\n\n### 2.4 Docker Image\n\nhttps://hub.docker.com/repository/docker/ironcore864/sap-bt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironcore864%2Fsap-bt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fironcore864%2Fsap-bt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fironcore864%2Fsap-bt/lists"}