{"id":28533527,"url":"https://github.com/epam/ai-dial-auth-helper","last_synced_at":"2025-07-07T20:31:42.363Z","repository":{"id":203127725,"uuid":"700949517","full_name":"epam/ai-dial-auth-helper","owner":"epam","description":"Authentication helper for AI DIAL","archived":false,"fork":false,"pushed_at":"2025-05-28T09:33:40.000Z","size":244,"stargazers_count":6,"open_issues_count":6,"forks_count":1,"subscribers_count":17,"default_branch":"development","last_synced_at":"2025-06-09T17:07:26.628Z","etag":null,"topics":["ai-dial","llm"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-10-05T15:55:23.000Z","updated_at":"2025-06-05T15:40:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"e28dc2ce-09d8-4c6f-9fcc-17eaea94b588","html_url":"https://github.com/epam/ai-dial-auth-helper","commit_stats":null,"previous_names":["epam/ai-dial-auth-helper"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/epam/ai-dial-auth-helper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fai-dial-auth-helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fai-dial-auth-helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fai-dial-auth-helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fai-dial-auth-helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epam","download_url":"https://codeload.github.com/epam/ai-dial-auth-helper/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epam%2Fai-dial-auth-helper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264142595,"owners_count":23563526,"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":["ai-dial","llm"],"created_at":"2025-06-09T17:07:27.364Z","updated_at":"2025-07-07T20:31:42.357Z","avatar_url":"https://github.com/epam.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Overview\n\nAuthProxy is a proxy service that implements OpenID-compatible Web API endpoints to avoid direct interaction with the AuthProviders' APIs, such as the KeyCloak API.\n\nOne of the primary benefits of using AuthProxy is the enrichment of user info with additional fields such as **jobTitile** and **picture**.\nAuthProxy implements its own **user_info** route that makes a call to the target Idp configured in KeyCloak.\n\nNotes. KeyCloak should be configured to inject into the access token the additional claims:\n- **idp**. Identity provider code name. Supported values are **microsoft**.\n- **idpAlias**. The alias to Idp configured in KeyCloak realm.\n\nCurrently, AuthProxy provides two public routes:\n\n**GET: http://hostname/.well-known/openid-configuration**\n- Returns the original response from AuthProvider, but replaces **userinfo_endpoint** url with its own **user_info** route.\n- The response is cached after the first request for the AuthProvider's **openid-configuration** and remains cached since the startup of the AuthProxy application.\n\n**GET: http://hostname/api/v1/user/user-info**\n- Authorization header is required in the request\n- Returns user info with additional fields like job title and picture provided by IdP in KeyCloak\n- If the claims either idp or idpAlias is not provided the user info is constructed from the claims of the access token\n- If the token has expired or failed verification, a 400 error is returned.\n\n**Please note that AuthProxy has been tested with Microsoft Graph API only.**\n\n# Developer env\n\n- Open JDK 17+\n- Gradle 8+\n\n# Build\n\n```\n ./gradlew clean build check\n```\n\n# Test\n\n```\n ./gradlew test\n```\n\n# Run\n\n```\n  ./gradlew run\n```\n\n# Configure\n##### application.yaml\n\n\n```yaml\nserver:\n  hostUrl: \"http://127.0.0.1\" // Used for WellKnown userinfo_endpoint substitution, it must be complete domain url with port. \n  port: 4088 // Spring port used to start up the application\n\noauth2:\n  providerUri: \"http://localhost:8080/realms/your_realm\" // Used for getting well-known and token verification URLs\n  clientId: \"your_client_id\" // keyCloak client id\n  clientSecret: \"your_client_secret\" // KeyCloak client secret\n  jwksUriPath: \"jwks_uri\" // Path of custom jwks_uri node in openid-configuration, Optional.\n\nscheduled:\n  poolSize: 2\n```\n\n## License\nCopyright (C) 2023 EPAM Systems\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Fai-dial-auth-helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepam%2Fai-dial-auth-helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepam%2Fai-dial-auth-helper/lists"}