Note: Github Enterprise SSO integrations will limit user sign-in to your organization. When integrating with standard Github SSO you must configure RBAC w/Github org set to ensure the same organization level restriction is met.
Login to GitHub and navigate to the organisation you wish to integrate with kPow.
Navigate to Settings > Developer Settings > OAuth Apps > New Oath Application
Fill out the Register a new OAuth application form:
Application Name: The name of your kPow instance, e.g. 'kPow Staging'.
Homepage URL: The absolute URL to your kPow instance, e.g.
Authorization callback URL: The absolute URL for authorization callback, e.g.
Open your freshly created OAuth App and make note of the Client ID and Client Secret.
Set the following environment variables and start kPow:
OPENID_AUTH_URI= The URI to authorize Github users, e.g.
https://github.com/login/oauth/authorize, or[Github Enterprise Host]/login/oauth/authorize
OPENID_TOKEN_URI= The URI to retrieve an OAuth token, e.g.
https://github.com/login/oauth/access_token, or[Github Enterprise Host]/login/oauth/access_token
OPENID_API_URI= The URI to perform user actions, e.g.
https://api.github.com/user, or[Github Enterprise Host]/api/v3/user
OPENID_CLIENT_ID= the Client ID found in the OAuth Apps page (required)
OPENID_CLIENT_SECRET= the Client Secret found in the OAuth Apps page (required)
OPENID_LANDING_URI= The absolute kPow URI, e.g.
kPow will now authenticate users with Github via OAuth2.
See the guide to Role Based Access Control for full configuration details.
When RBAC is enabled kPow will request
orgs:read scope to view the roles associated with an authenticated user.
Github Organisation roles are restricted to
member so they are the two roles you can configure with kPow RBAC when using Github SSO.
When authenticating a user kPow makes a request to the GitHub API for user membership state and role information by querying
github key inside your
rbac-config.yaml to define the Github Organisation to query for role information.
In this example we grant
admin users of the
operatr-io Github Organisation actions
TOPIC_PRODUCE for cluster
policies:- resource: ["cluster", "N9xnGujkR32eYxHICeaHuQ"]effect: "Allow"actions: ["TOPIC_INSPECT", "TOPIC_PRODUCE"]role: "admin"# Specifically restrict Auth to a single Github Organizationgithub:org: operatr-io