|
| 1 | +Single Sign-On |
| 2 | +============== |
| 3 | + |
| 4 | +.. note:: |
| 5 | + |
| 6 | + This feature only exists on `Read the Docs for Business <https://readthedocs.com/>`__. |
| 7 | + |
| 8 | + |
| 9 | +Single Sign-On is supported on |com_brand| for Pro and Enterprise plans. |
| 10 | +:abbr:`SSO (Single Sign-On)` will allow you to grant permissions to your organization's projects in an easy way. |
| 11 | + |
| 12 | +Currently, we support two different types of Single Sign-On: |
| 13 | + |
| 14 | +* Authentication *and* authorization are managed by the Identity Provider (e.g. GitHub, Bitbucket or GitLab) |
| 15 | +* Authentication (*only*) is managed by the Identity Provider (e.g. an active GSuite/Google ``@company.com`` with a verified email address) |
| 16 | + |
| 17 | +.. note:: |
| 18 | + |
| 19 | + SSO is currently in **Beta** and only GitHub, Bitbucket, GitLab and Google are supported for now. |
| 20 | + If you would like to apply for the Beta, please ` contact us < mailto:[email protected]>`_. |
| 21 | + |
| 22 | +.. contents:: |
| 23 | + :local: |
| 24 | + :depth: 2 |
| 25 | + |
| 26 | + |
| 27 | +SSO with VCS provider (GitHub, Bitbucket or GitLab) |
| 28 | +--------------------------------------------------- |
| 29 | + |
| 30 | +Using an Identity Provider that supports authentication and authorization allows you to manage |
| 31 | +"who have access to what projects on Read the Docs" directly from the provider itself. |
| 32 | +In case you want a user to have access to your documentation project under Read the Docs, |
| 33 | +that user just needs to be granted permissions in the VCS repository associated with it. |
| 34 | + |
| 35 | +Note the users created under Read the Docs must have their GitHub, Bitbucket or GitLab |
| 36 | +:doc:`account connected </connected-accounts>` in order to make SSO to work. |
| 37 | + |
| 38 | +.. note:: |
| 39 | + |
| 40 | + You can read more about `granting permissions on GitHub`_. |
| 41 | + |
| 42 | + .. _granting permissions on GitHub: https://docs.github.com/en/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization |
| 43 | + |
| 44 | + |
| 45 | +Grant access to read the documentation |
| 46 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 47 | + |
| 48 | +By granting **read** (or more) permissions to a user in the VCS repository |
| 49 | +you are giving access to read the documentation of the associated project on Read the Docs to that user. |
| 50 | + |
| 51 | + |
| 52 | +Grant access to administrate a project |
| 53 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 54 | + |
| 55 | +By granting **write** permission to a user in the VCS repository |
| 56 | +you are giving access to read the documentation *and* to be an administrator |
| 57 | +of the associated project on Read the Docs to that user. |
| 58 | + |
| 59 | + |
| 60 | +Grant access to import a project |
| 61 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 62 | + |
| 63 | +When SSO with VCS provider is enabled only owners of the Read the Docs organization can import projects. |
| 64 | +Adding users as owners of your organization will give them permissions to import projects. |
| 65 | + |
| 66 | +Note that to be able to import a project, that user must have **admin** permissions in the VCS repository associated. |
| 67 | + |
| 68 | + |
| 69 | +Revoke access to a project |
| 70 | +~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 71 | + |
| 72 | +If a user should not have access anymore to a project for any reason, |
| 73 | +a VCS repository's admin (e.g. user with Admin role on GitHub for that specific repository) |
| 74 | +can revoke access to the VCS repository and this will be automatically reflected in Read the Docs. |
| 75 | + |
| 76 | +The same process is followed in case you need to remove **admin** access, |
| 77 | +but still want that user to have access to read the documentation. |
| 78 | +Instead of revoking access completely, just need lower down permissions to **read** only. |
| 79 | + |
| 80 | + |
| 81 | +SSO with GSuite (Google email account) |
| 82 | +-------------------------------------- |
| 83 | + |
| 84 | +Using your company's Google email address (e.g. `` [email protected]``) allows you to |
| 85 | +manage authentication for your organization's members. |
| 86 | +As this Identity Provider does not provide authorization over each repositories/projects per user, |
| 87 | +permissions are managed by the :ref:`internal Read the Docs's Teams <commercial/organizations:Team Types>` authorization system. |
| 88 | + |
| 89 | +By default, users that Sign Up with a Google account do not have any permissions over any project. |
| 90 | +However, you can define which Teams users matching your company's domain email address will auto-join when they Sign Up. |
| 91 | +Read the following sections to learn how to grant read and admin access. |
| 92 | + |
| 93 | + |
| 94 | +Grant access to read a project |
| 95 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 96 | + |
| 97 | +You can add a user under a "Read Only Team" to grant **read** permissions to all the projects under that Team. |
| 98 | +This can be done under "your organization detail's page" > :guilabel:`Teams` > :guilabel:`Read Only` > :guilabel:`Invite Member`. |
| 99 | + |
| 100 | +To avoid this repetitive task for each employee of your company, |
| 101 | +the owner of the Read the Docs organization can mark one or many Teams for users matching the company's domain email |
| 102 | +to join these Teams automaically when they Sign Up. |
| 103 | + |
| 104 | +For example, you can create a "General Documentaion (Read Only)" team |
| 105 | +with the projects that all employees of your company should have access to |
| 106 | +and mark it as :guilabel:`Auto join users with an organization's email address to this team`. |
| 107 | +Then all users that Sign Up with their `` [email protected]`` email will automatically join this Team and have ** read** access to those projects. |
| 108 | + |
| 109 | + |
| 110 | +Grant access to administer a project |
| 111 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 112 | + |
| 113 | +You can add a user under an "Admin Team" to grant **admin** permissions to all the projects under that Team. |
| 114 | +This can be done under "your organization detail's page" > :guilabel:`Teams` > :guilabel:`Admins` > :guilabel:`Invite Member`. |
| 115 | + |
| 116 | + |
| 117 | +Grant access to users to import a project |
| 118 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 119 | + |
| 120 | +Making the user member of any "Admin Team" under your organization (as mentioned in the previous section), |
| 121 | +they will be granted access to import a project. |
| 122 | + |
| 123 | +Note that to be able to import a project, that user must have **admin** permissions in the GitHub, Bitbucket or GitLab repository associated, |
| 124 | +and their social account connected with Read the Docs. |
| 125 | + |
| 126 | + |
| 127 | +Revoke user's access to a project |
| 128 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 129 | + |
| 130 | +To revoke access to a project for a particular user, you should remove that user from the Team that contains that Project. |
| 131 | +This can be done under "your organization detail's page" > :guilabel:`Teams` > :guilabel:`Read Only` and click :guilabel:`Remove` next to the user you want to revoke access. |
| 132 | + |
| 133 | + |
| 134 | +Revoke user's access to all the projects |
| 135 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 136 | + |
| 137 | +By disabling the GSuite/Google account with email `` [email protected]``, |
| 138 | +you revoke access to all the projects that user had access and disable login on Read the Docs completely for that user. |
0 commit comments