From fe1b27ee3430dcb8f07d58d149f59b63877be5ae Mon Sep 17 00:00:00 2001 From: mo khan Date: Mon, 11 Apr 2022 08:46:37 -0600 Subject: [PATCH] Add docs for sso-team-id to the Teams API (#2210) Update TFC docs to specify that the SSO Team membership SAML attribute can be configured. Fix typos in README. Add sso-team-id to API examples. Call out that sso-team-ids are only applicable to business tier orgs --- README.md | 6 ++--- content/cloud-docs/api-docs/teams.mdx | 17 ++++++++++++- .../single-sign-on/index.mdx | 24 +++++++++++++++--- .../img/docs/saml-team-membership-cloud.png | Bin 0 -> 55504 bytes 4 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 public/img/docs/saml-team-membership-cloud.png diff --git a/README.md b/README.md index f5f057d3dc..10a8439b84 100644 --- a/README.md +++ b/README.md @@ -48,20 +48,20 @@ Docs live in a couple different repos. (**To find a page the easy way:** view it **Notable branches:** `master` is the "live" content that gets deployed to [terraform.io](https://terraform.io). The site gets redeployed for new commits to master. -- [hashicorp/terraform][https://github.com/hashicorp/terraform], under `website/docs`: +- [hashicorp/terraform](https://github.com/hashicorp/terraform), under `website/docs`: - Terraform CLI docs - Terraform Language docs **Notable branches:** `stable-website` is the "live" content that gets deployed to [terraform.io](https://terraform.io), but docs changes should get merged to `main` (and/or one of the long-lived version branches) first. See [More About `stable-website`][#more-about-stable-website] below for more details. -- [hashicorp/terraform-cdk][https://github.com/hashicorp/terraform-cdk], under `website/docs`: +- [hashicorp/terraform-cdk](https://github.com/hashicorp/terraform-cdk), under `website/docs`: - Terraform CDK docs **Notable branches:** `stable-website` is the "live" content that gets deployed to [terraform.io](https://terraform.io), but docs changes should get merged to `main` first. See [More About `stable-website`][#more-about-stable-website] below for more details. -## Deploying Changes to [terraform.io][https://terraform.io] +## Deploying Changes to [terraform.io](https://terraform.io) ### For changes in this repo diff --git a/content/cloud-docs/api-docs/teams.mdx b/content/cloud-docs/api-docs/teams.mdx index bf76b024b1..b9f66e3152 100644 --- a/content/cloud-docs/api-docs/teams.mdx +++ b/content/cloud-docs/api-docs/teams.mdx @@ -36,7 +36,7 @@ page_title: Teams - API Docs - Terraform Cloud and Terraform Enterprise # Teams API --> **Note:** Team management is a paid feature, available as part of the **Team** upgrade package. [Learn more about Terraform Cloud pricing here](https://www.hashicorp.com/products/terraform/pricing). +-> **Note:** Team management is a paid feature, available as part of the **Team** upgrade package. Single sign-on is also a paid feature, available as part of the **Business** upgrade package. Refer to [Terraform Cloud pricing](https://www.hashicorp.com/products/terraform/pricing) for details. The Teams API is used to create, edit, and destroy teams as well as manage a team's organization-level permissions. The [Team Membership API](/cloud-docs/api-docs/team-members) is used to add or remove users from a team. Use the [Team Access API](/cloud-docs/api-docs/team-access) to associate a team with privileges on an individual workspace. @@ -77,6 +77,8 @@ $ curl \ ### Sample Response +The `sso-team-id` attribute is only returned if this team's organization is in the Terraform Cloud Business tier. + ```json { "data": [ @@ -85,6 +87,7 @@ $ curl \ "type": "teams", "attributes": { "name": "team-creation-test", + "sso-team-id": "cb265c8e41bddf3f9926b2cf3d190f0e1627daa4", "users-count": 0, "visibility": "organization", "permissions": { @@ -143,6 +146,7 @@ Properties without a default value are required. | --------------------------------------- | ------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `data.type` | string | | Must be `"teams"`. | | `data.attributes.name` | string | | The name of the team, which can only include letters, numbers, `-`, and `_`. This will be used as an identifier and must be unique in the organization. | +| `data.attributes.sso-team-id` | string | (nothing) | The unique identifier of the team from the SAML `MemberOf` attribute. Only available if the team belongs to an organization in the paid Terraform Cloud Business tier. | | `data.attributes.organization-access` | object | (nothing) | Settings for the team's organization access. This object can include `manage-policies`, `manage-policy-overrides`, `manage-workspaces`, `manage-vcs-settings`, `manage-providers`, and `manage-modules` properties with boolean values. All properties default to `false`. | | `data.attributes.visibility` **(beta)** | string | `"secret"` | The team's visibility. Must be `"secret"` or `"organization"` (visible). | @@ -154,6 +158,7 @@ Properties without a default value are required. "type": "teams", "attributes": { "name": "team-creation-test", + "sso-team-id": "cb265c8e41bddf3f9926b2cf3d190f0e1627daa4", "organization-access": { "manage-workspaces": true } @@ -175,11 +180,14 @@ $ curl \ ### Sample Response +The `sso-team-id` attribute is only returned if this team's organization is in the Terraform Cloud Business tier. + ```json { "data": { "attributes": { "name": "team-creation-test", + "sso-team-id": "cb265c8e41bddf3f9926b2cf3d190f0e1627daa4", "organization-access": { "manage-policies": false, "manage-policy-overrides": false, @@ -235,6 +243,8 @@ $ curl \ ### Sample Response +The `sso-team-id` attribute is only returned if this team's organization is in the Terraform Cloud Business tier. + ```json { "data": { @@ -242,6 +252,7 @@ $ curl \ "type": "teams", "attributes": { "name": "team-creation-test", + "sso-team-id": "cb265c8e41bddf3f9926b2cf3d190f0e1627daa4", "users-count": 0, "visibility": "organization", "permissions": { @@ -301,6 +312,7 @@ Properties without a default value are required. | --------------------------------------- | ------ | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `data.type` | string | | Must be `"teams"`. | | `data.attributes.name` | string | (previous value) | The name of the team, which can only include letters, numbers, `-`, and `_`. This will be used as an identifier and must be unique in the organization. | +| `data.attributes.sso-team-id` | string | (previous value) | The unique identifier of the team from the SAML `MemberOf` attribute. Only available if the team belongs to an organization in the paid Terraform Cloud Business tier. | | `data.attributes.organization-access` | object | (previous value) | Settings for the team's organization access. This object can include `manage-policies`, `manage-policy-overrides`, `manage-workspaces`, `manage-vcs-settings`, `manage-providers`, and `manage-modules` properties with boolean values. All properties default to `false`. | | `data.attributes.visibility` **(beta)** | string | (previous value) | The team's visibility. Must be `"secret"` or `"organization"` (visible). | @@ -333,11 +345,14 @@ $ curl \ ### Sample Response +The `sso-team-id` attribute is only returned if this team's organization is in the Terraform Cloud Business tier. + ```json { "data": { "attributes": { "name": "team-creation-test", + "sso-team-id": "cb265c8e41bddf3f9926b2cf3d190f0e1627daa4", "organization-access": { "manage-policies": false, "manage-policy-overrides": false, diff --git a/content/cloud-docs/users-teams-organizations/single-sign-on/index.mdx b/content/cloud-docs/users-teams-organizations/single-sign-on/index.mdx index fb3428fc4b..1a9e1a18a6 100644 --- a/content/cloud-docs/users-teams-organizations/single-sign-on/index.mdx +++ b/content/cloud-docs/users-teams-organizations/single-sign-on/index.mdx @@ -63,13 +63,29 @@ If an organization's owners disable SSO (or downgrade the organization's account ## Managing Team Membership Through SSO -Terraform Cloud can automatically add users to teams based on their SAML assertion, so you can manage team membership in your directory service. To do this, you must specify the `MemberOf` SAML attribute, and make sure the AttributeStatement in the SAMLResponse contains a list of AttributeValue items in the correct format (i.e., comma-separated list of team names). +Terraform Cloud can automatically add users to teams based on their SAML assertion, so you can manage team membership in your directory service. -If the SAML assertion includes a `MemberOf` attribute, users logging in via SSO are automatically added to the teams included in their assertion and removed from any teams that _aren't_ included in their assertion. This overrides any manually set team memberships; whenever the user logs in, their team membership is adjusted to match their SAML assertion. +To enable team membership mapping: -Any team names that don't match existing teams are ignored; Terraform Cloud will not automatically create new teams. Terraform Cloud expects the team names in the `MemberOf` SAML attribute to exactly match its own team names. This match is case sensitive. It is not possible to assign users to the `owners` team through this attribute. +1. Click **Settings** in the navigation bar and then click **SSO** in the sidebar. The SSO configuration page appears. +1. Toggle the **Enable team management to customize your team attribute**. -If the `MemberOf` attribute is not provided, users are assigned to a default team named `sso` and are not removed from any existing teams. +![Screenshot: the Terraform Cloud SAML team membership toggle](/img/docs/saml-team-membership-cloud.png) + +When team management is enabled, you can configure which SAML attribute in the SAMLResponse will control team membership. This defaults to the `MemberOf` attribute. The expected format of the corresponding `AttributeValue` in the SAMLResponse is a either a string containing a comma-separated list of teams, or separate `AttributeValue` items specifying teams. + +When users log in through SAML, Terraform automatically adds them to the teams included in their assertion and automatically removes them from teams that are not included in their assertion. This automatic mapping overrides any manually set team memberships. Each time the user logs in, their team membership is adjusted to match their SAML assertion. + +Terraform Cloud ignores team names that do not exactly match existing teams and will not create new teams from those listed in the assertion. If the chosen SAML attribute is not provided in the SAMLResponse, Terraform assigns users to a default team named `sso` and does not remove them from any existing teams. + +It is not possible to assign users to the `owners` team through this attribute. + + +## Team Names and SSO Team IDs + +Terraform Cloud expects the team names in the team membership SAML attribute to exactly match its own team names or its configured SSO Team IDs. This match is case sensitive. + +You can configure SSO Team IDs in the organization's **Teams** page. If an SSO Team ID is configured, Terraform Cloud will attempt to match the chosen SAML attribute against both the team name and the SSO Team ID when mapping users to teams. You may want to create an SSO Team ID if the team membership SAML attribute is not human readable and is not used as the team's name in Terraform Cloud. ## NameID Format diff --git a/public/img/docs/saml-team-membership-cloud.png b/public/img/docs/saml-team-membership-cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..65df695e0c3df595e532b677d955c0bbb64f13e9 GIT binary patch literal 55504 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 W^*@7l7EI$*)Sf`Ld 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 literal 0 HcmV?d00001