From eb98af45e17e3c9e942c6b2e2081b3a7a261aa1e Mon Sep 17 00:00:00 2001 From: "Jens L." Date: Mon, 14 Oct 2024 16:16:35 +0200 Subject: [PATCH] website/integrations add GHEC EMU and fix-up GHES (#11677) * website/integrations add GHEC EMU and fix-up GHES * fix duplicate mapping Signed-off-by: Jens Langhammer * Optimised images with calibre/image-actions --------- Signed-off-by: Jens Langhammer Co-authored-by: TheGuyDanish <5776313+TheGuyDanish@users.noreply.github.com> Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- .../ghec_emu_settings.png | Bin 0 -> 52864 bytes .../services/github-enterprise-emu/index.md | 106 ++++++++++++++++++ .../github-enterprise-server/index.md | 65 +++++++++-- website/sidebarsIntegrations.js | 5 +- 4 files changed, 166 insertions(+), 10 deletions(-) create mode 100644 website/integrations/services/github-enterprise-emu/ghec_emu_settings.png create mode 100644 website/integrations/services/github-enterprise-emu/index.md diff --git a/website/integrations/services/github-enterprise-emu/ghec_emu_settings.png b/website/integrations/services/github-enterprise-emu/ghec_emu_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..e64507c37164c8ff436e5a992808a71b45011214 GIT binary patch literal 52864 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%0DQSDdrR9sEfz-mwtr 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 literal 0 HcmV?d00001 diff --git a/website/integrations/services/github-enterprise-emu/index.md b/website/integrations/services/github-enterprise-emu/index.md new file mode 100644 index 0000000000..52bf5a3c34 --- /dev/null +++ b/website/integrations/services/github-enterprise-emu/index.md @@ -0,0 +1,106 @@ +--- +title: Integrate with GitHub Enterprise Cloud - Enterprise Managed Users +sidebar_label: GitHub Enterprise Cloud EMU +--- + +# GitHub Enterprise Cloud - Enterprise Managed Users + +Support level: Community + +## What is GitHub Enterprise Cloud - Enterprise Managed Users + +> With Enterprise Managed Users, you manage the lifecycle and authentication of your users on GitHub from an external identity management system, or IdP: +> +> - Your IdP provisions new user accounts on GitHub, with access to your enterprise. +> - Users must authenticate on your IdP to access your enterprise's resources on GitHub. +> - You control usernames, profile data, organization membership, and repository access from your IdP. +> - If your enterprise uses OIDC SSO, GitHub will validate access to your enterprise and its resources using your IdP's Conditional Access Policy (CAP). See "About support for your IdP's Conditional Access Policy." +> - Managed user accounts cannot create public content or collaborate outside your enterprise. See "Abilities and restrictions of managed user accounts." +> +> -- https://docs.github.com/en/enterprise-cloud@latest/admin/managing-iam/understanding-iam-for-enterprises/about-enterprise-managed-users + +## Preparation + +The following placeholders will be used: + +- `github.com/enterprises/foo` is your GitHub organization, where `foo` is the name of your enterprise +- `authentik.company` is the FQDN of the authentik Install +- `GitHub Users` is an authentik group used for holding GitHub users. +- `GitHub Admins` is an authentik group used for indicating GitHub administrators. + +Note that in order to use the EMU Enterprise, you _must_ set up both SAML and SCIM. + +First, create the two groups, in authentik, go to _Groups_, click _Create_ and put in `GitHub Users`, or your chosen user group name. Repeat this step with your Admin group as well. + +## SAML Provider + +Create a SAML provider with the following parameters: + +- ACS URL: `https://github.com/enterprises/foo/saml/consume` +- Audience: `https://github.com/enterprises/foo` +- Issuer: `https://github.com/enterprises/foo` +- Binding: `Post` + +Under _Advanced protocol settings_, set a certificate for _Signing Certificate_. Also set your _NameID Property Mapping_ to the _Email_ field. GitHub will create a username for your EMU users based on the SAML NameID, this NameID must also match the SCIM _userName_ attribute. This is covered later. + +Once the provider is created, it is advised to download the signing certificate as you will need it later. + +## GitHub SAML Configuration + +When your EMU is provisioned by GitHub, you will receive an email inviting you reset the password of your 'setup user'. This user cannot be linked with SSO and is an emergency access account, as it will be the only account that can bypass SSO requirements. + +Before enabling SAML, go to your [Personal access tokens](https://github.com/settings/tokens) on your EMU setup user and Generate a new _personal access token (classic)_. This should have a descriptive note like `SCIM Token`. It is advisable to set this to not expire. For scopes, select only _admin:enterprise_ and click _Generate token_. + +Copy the resulting token to a safe location. + +After you have set a password for this account and generated your SCIM token, navigate to your enterprise settings by clicking your GitHub user portrait in the top right of GitHub.com, select `Your enterprise`, click the `Settings` link, then click `Authentication security`. + +On this page: + +- Select the `Require SAML authentication` checkbox. +- In `Sign on URL`, input the _SSO URL (Redirect)_ entry from the SAML provider you created. +- For `Issuer`, input the `Issuer` you set in authentik +- For `Public certificate`, paste the _full_ signing certificate into this field. +- Verify that the `Signature method` and `Digest method` match your SAML provider settings in authentik. + +![Screenshot showing populated GitHub enterprise SAML settings](ghec_emu_settings.png) + +Once these fields are populated, you can use the `Test SAML configuration` button to test the authentication flow. If the flow completes successfully, you will see a green tick next to the Test button. + +Scroll down to hit the `Save SAML settings` button below. + +You will now be prompted to save your SAML recovery codes, these will be necessary if you need to disable or change your SAML settings, so keep them safe! + +## SCIM Provider + +Before we create a SCIM provider, we also have to create a new Property Mapping. In authentik, go to _Customization_, then _Property Mappings_. Here, click _Create_, select _SCIM Provider Mapping_. Name the mapping something memorable and paste the following code in the _Expression_ field: + +```python +roles = [] +# Edit this if statement if you need to add more GitHub roles. +# Valid roles include: +# user, guest_collaborator, enterprise_owner, billing_manager +if ak_is_group_member(request.user, name='GitHub Admins'): + roles.append({'value': 'enterprise_owner', 'primary': True}) +else: + roles.append({'value': 'user', 'primary': True}) +return { + "roles": roles, +} +``` + +If you named your group anything other than `GitHub Admins`, please ensure you change it in the code above. + +Create a new SCIM provider with the following parameters: + +- URL: `https://api.github.com/scim/v2/enterprises/foo/` (Replacing `foo` with your Enterprise slug.) +- Token: Paste the token provided from GitHub here. +- In the _User filtering_ section, you can select your `GitHub Users` group. +- In the _Attribute mapping_ section, de-select the `authentik default SCIM Mapping: User` mapping by selecting it on the right-hand side and clicking the left-facing single chevron. +- Select the property mapping you created in the previous step and add it by clicking the right-facing single chevron. +- You can leave the _Group Property Mappings_ as is. +- Click _Finish_. + +Go back to your GitHub EMU Application created in the first step and add your new SCIM provider in the _Backchannel Providers_ field, then click the _Update_ button. + +You should now be ready to assign users to your _GitHub Users_ and _GitHub Admins_ groups, which will be provisioend by the SCIM provisioner. If you do not see your users being provisioned, go to your SCIM provider and click the _Run sync again_ option. A few seconds later, you should see results of the SCIM sync. diff --git a/website/integrations/services/github-enterprise-server/index.md b/website/integrations/services/github-enterprise-server/index.md index 6f1f3e841e..a62ebe380d 100644 --- a/website/integrations/services/github-enterprise-server/index.md +++ b/website/integrations/services/github-enterprise-server/index.md @@ -19,8 +19,12 @@ The following placeholders will be used: - `https://github.company` is your GitHub Enterprise Server installation - `authentik.company` is the FQDN of the authentik Install +- `GitHub Users` is an authentik group used for holding GitHub users. +- `GitHub Admins` is an authentik group used for indicating GitHub administrators. -Create an application in authentik and note the slug, as this will be used later. Create a SAML provider with the following parameters: +First, create the two groups, in authentik, go to _Groups_, click _Create_ and put in `GitHub Users`, or your chosen user group name. Repeat this step with your Admin group as well. + +Create a SAML provider with the following parameters: - ACS URL: `https://github.company/saml/consume` - Audience: `https://github.company` @@ -31,19 +35,64 @@ Under _Advanced protocol settings_, set a certificate for _Signing Certificate_. Once the provider is created, it is advised to download the signing certificate as you will need it later. -## GitHub Configuration +Create a matching application for your SAML provider. -Navigate to your appliance maintenance settings. These are found at `https://github.company:8443`. Here, sign in with an administrator user and go to the Authentication section. +## SAML Configuration + +If you are planning to use SCIM, (available from GHES 3.14.0) you should create a first admin user on your instance and go to your personal access tokens at `https://github.company/settings/tokens/new`, click _Generate new token_ and click _Generate new token (classic)_. Your token should have a descriptive name and ideally, no expiration date. For permission scopes, you need to select _admin:enterprise_. Click _Generate token_ and store the resulting token in a safe location. + +To enable SAML, navigate to your appliance maintenance settings. These are found at `https://github.company:8443`. Here, sign in with an administrator user and go to the Authentication section. On this page: -- Select the `SAML` option. -- In `Sign on URL`, type `https://authentik.company/application/saml//sso/binding/redirect/` (This is your `SSO URL (Redirect)` in Authentik) -- For `Issuer`, type `https://github.company` or the `Audience` you set in authentik -- Verify that the `Signature method` and `Digest method` match your SAML provider settings in authentik. -- For `Validation certificate`, upload the signing certificate you downloaded after creating the provider. +- Select the _SAML_ option. +- In _Sign on URL_, input your _SSO URL (Redirect)_ from authentik. +- For _Issuer_, use the _Audience_ you set in authentik. +- Verify that the _Signature method_ and _Digest method_ match your SAML provider settings in authentik. +- For _Validation certificate_, upload the signing certificate you downloaded after creating the provider. +- If you plan to enable SCIM, select _Allow creation of accounts with built-in authentication_ and _Disable administrator demotion/promotion_ options. These are selected so you can use your admin user as an emergency non-SSO account, as well as create machine users, and to ensure users are not promoted outside your IdP. +- In the _User attributes_ section, enter `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` in the _Username_ field to ensure the emails become normalized into usernames in GitHub. - Press Save settings on the left-hand side and wait for the changes to apply. ![Screenshot showing populated GitHub Enterprise Server SAML settings](ghes_saml_settings.png) Once the appliance has saved the settings and reloaded the services, you should be able to navigate to your instance URL at `https://github.company` and sign in with SAML. + +## SCIM Configuration + +This section only applies if you have taken the steps prior to prepare the instance for SCIM enablement. + +After enabling SAML, log into your initial admin account again. Click the user portrait in tee top right, click _Enterprise settings_, click _Settigs_ in the left-hand sidebar, click _Authentication security_. On this page you have to check _Enable SCIM configuration_ and press _Save_. After which you should get a message reading _SCIM Enabled_. + +Before we create a SCIM provider, we have to create a new Property Mapping. In authentik, go to _Customization_, then _Property Mappings_. Here, click _Create_, select _SCIM Provider Mapping_. Name the mapping something memorable and paste the following code in the _Expression_ field: + +```python +roles = [] +# Edit this if statement if you need to add more GitHub roles. +# Valid roles include: +# user, guest_collaborator, enterprise_owner, billing_manager +if ak_is_group_member(request.user, name='GitHub Admins'): + roles.append({'value': 'enterprise_owner', 'primary': True}) +else: + roles.append({'value': 'user', 'primary': True}) + +return { + "roles": roles, +} +``` + +If you named your group anything other than `GitHub Admins`, please ensure you change it in the code above. + +Create a new SCIM provider with the following parameters: + +- URL: `https://github.company/api/v3/scim/v2` +- Token: Paste the token you generated earlier here. +- In the _User filtering_ section, you can select your `GitHub Users` group. +- In the _Attribute mapping_ section, de-select the `authentik default SCIM Mapping: User` mapping from the _User Property Mappings_ by selecting it on the right-hand side and clicking the left-facing single chevron. +- Select the property mapping you created in the previous step and add it by clicking the right-facing single chevron. +- Ensure that `authentik default SCIM Mapping: Group` is the only one active in the _Group Property Mappings_. +- Click _Finish_. + +Go back to your GitHub Enterprise Server Application created in the first step and add your new SCIM provider in the _Backchannel Providers_ field, then click the _Update_ button. + +You should now be ready to assign users to your _GitHub Users_ and _GitHub Admins_ groups, which will be provisioend by the SCIM provisioner. If you do not see your users being provisioned, go to your SCIM provider and click the _Run sync again_ option. A few seconds later, you should see results of the SCIM sync. diff --git a/website/sidebarsIntegrations.js b/website/sidebarsIntegrations.js index abef921ac2..39d1c0dca5 100644 --- a/website/sidebarsIntegrations.js +++ b/website/sidebarsIntegrations.js @@ -157,9 +157,10 @@ module.exports = { label: "Version Control Systems", items: [ "services/gitea/index", - "services/github-enterprise-cloud/index", - "services/github-enterprise-server/index", "services/github-organization/index", + "services/github-enterprise-cloud/index", + "services/github-enterprise-emu/index", + "services/github-enterprise-server/index", "services/gitlab/index", ], },