This document describes how to configure Secret Double Octopus as an IdP for GitHub using the SAML protocol.


Integration Environment

The environment used for the integration described in this document is based on the following software versions:

  • Octopus Authentication Server version 6.6.2

  • GitHub Cloud Tenant

Integration Workflow

The integration process involves the following sequential phases:

Creating the GitHub SAML Service

The following procedure explains how to create the required SAML service in the Octopus Management Console. The service settings will be used later for integration with the GitHub Cloud Tenant.


To add and configure the GitHub SAML service:

  1. From the Octopus Management Console, select the Services menu. At the upper left corner of the page, click Add Service.

  2. In the Generic SAML tile, click Add.


    image3.png


    Then, in the dialog that opens, click Create.


    image3.png


  3. Configure the following settings in the General Info tab:


    Setting

    Description

    Service Name

    Enter a display name to identify the service (e.g., GitHub).

    Issuer

    Enter the issuer of the service.

    Description

    Enter a brief note about the service.

    Display icon

    This icon will be displayed on the Login page for the service. To change the default icon, click and upload the logo of your choice. (Supported image size is 128x128 pixels.)

    Login Page URL

    <https://<Enterprise Base URL>/saml/<random UUID>/login> The Enterprise Base URL can be modified in System Settings > General Settings.


    image5.png


    Then, click Save.

  4. Open the Sign on tab and update the default message in the Custom Message field. (This is the message displayed to the user upon successful login.)


    image7.png


  5. At the bottom of the Sign on tab, click Save.

  6. Open the Directories tab and select the checkbox of the directory you want to integrate with the service. Then, click Save.


    image8.png


  7. Open the Users tab and click Add.


    image9.png


    A popup opens, with a list of directories displayed on the left.

  8. Expand the directories list and select the checkboxes of the groups and users that you want to add to the service. Then, click Save to close the popup.

    The groups and users you selected are listed in the Users tab.

  9. From the toolbar at the top of the page, click PUBLISH and publish your changes.

Configuring SAML Authentication in GitHub

Follow the steps below to integrate the Octopus SAML service in the GitHub Cloud Tenant.


Before you begin, verify that you have access to the following settings from the Sign on tab of the service you created in the Octopus Management Console:

  • Issuer URL: Click the Copy icon to copy the URL.

  • SAML 2.0 Endpoint (HTTP): Click the Copy icon to copy the URL.

  • X.509 Certificate: Click the Copy icon to copy certificate content.


image9.png


To configure SAML authentication in GitHub:

  1. From the GitHub organization configuration page, navigate to Security -> Authentication security.


    image10.png


  2. In the SAML single sign-on section, select the Enable SAML authentication checkbox.


    image11.png


    Then, configure the following properties, as shown in the example below the table:


    Property

    Description

    Sign on URL

    Paste the SAML 2.0 Endpoint (HTTP) URL you copied from the Octopus SAML service.

    Issuer

    Paste the Issuer URL you copied from the Octopus SAML service.

    Public certificate

    Paste the X.509 Certificate content you copied from the Octopus SAML service.


    image12.png


  3. Copy and save the assertion consumer service URL. You will need it to complete the integration (as described in the next section).

  4. Click Save.

Completing Service Integration

The final phase of the integration involves adding the ACS URL to the Octopus SAML service and creating a required custom parameter.


Before starting the procedure below, make sure you have access to the assertion consumer service URL that you copied from your GitHub environment.


To complete service integration:

  1. Log into the Octopus Management Console and open the Services menu.

    In the card or row of the GitHub SAML service, click image71.png to display the service settings.


    image14.png


  2. Open the Parameters tab. In the ACS URL field, paste the assertion consumer service URL copied from GitHub.


  3. Add the urn:oasis:names:tc:SAML:2.0:assertion parameter:

    1. At the bottom of the Parameters tab, click Add Parameter.

    2. In the Parameter Key field, enter urn:oasis:names:tc:SAML:2.0:assertion.

      Then, from the dropdown list to the right, select Free Text.


      image16.png


    3. Click Save.

  4. From the toolbar at the top of the page, click PUBLISH and publish your changes.

Footer - Secret Double Octopus