API de Mapeo de Roles para Autenticación Federada

Si está utilizando mecanismos de Autenticación Federada, esta API le permite mapear automáticamente grupos de usuarios a roles en Datadog utilizando atributos enviados desde su Proveedor de Identidad. Para crear y gestionar Mapeos de Autenticación a través de la API, los usuarios deben utilizar una clave de aplicación perteneciente a alguien con el permiso de Gestión de Acceso.

Nota: Si es un usuario de SAML, Datadog recomienda encarecidamente que transicione a utilizar esta API.

También puede crear y gestionar mapeos en la interfaz de usuario de Datadog, en la pestaña Mapeos en Gestión de Usuarios. Consulte mapeo de grupos SAML para más información.

Solicitudes

Todos los puntos de conexión de la API a continuación están utilizando el siguiente punto de conexión del servidor:

  • https://api./api/ para su región de Datadog.

Crear un nuevo mapeo de autenticación

Crear un nuevo Mapeo de AuthN a partir de un cuerpo JSON. Devuelve el nuevo Mapeo de AuthN creado.

MétodoRuta del punto de conexiónCarga útil requerida
POST/v2/authn_mappingsJSON
ARGUMENTOS
  • role["data"]["id"] [requerido, sin valor por defecto]: El ID del Rol al que se asignará. La API de Roles se puede utilizar para crear y gestionar roles de Datadog, qué permisos globales otorgan y qué usuarios pertenecen a ellos. Nota: Este atributo debe presentarse como parte de un bloque de relación role en las solicitudes. Vea el ejemplo a continuación para más detalles. Cuando crea un Rol, se le asigna un ID. Para más información sobre cómo encontrar el ID para el rol al que desea asignar, consulte la documentación de la API de Roles.
  • attributes["attribute_key"] [requerido, sin valor por defecto]: El attribute_key es la parte clave de un par clave/valor que representa un atributo enviado desde su Proveedor de Identidad. Puede definir estos para su propio caso de uso. Por ejemplo, attribute_key podría ser member-of y el attribute_value podría ser Development.
  • attributes["attribute_value"] [requerido, sin valor por defecto]: El attribute_value es la parte de valor de un par clave/valor que representa un atributo enviado desde su Proveedor de Identidad. Puede definir estos para su propio caso de uso. Por ejemplo, attribute_key podría ser member-of y el attribute_value podría ser Development.
curl -X POST \
    "https://api.<YOUR_DD_SITE>/api/v2/authn_mappings" \
    -H "Content-Type: application/json" \
    -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
    -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
    -d '{
            "data": {
                "type": "authn_mappings",
                "attributes": {
                    "attribute_key": "member-of",
                    "attribute_value": "Development"
                },
                "relationships": {
                    "role": {
                        "data": {
                            "id": "123e4567-e89b-12d3-a456-426655445555",
                            "type": "roles"
                        }
                    }
                }
            }
        }'
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
{
    "data": {
        "attributes": {
            "created_at": "2019-11-04 17:41:29.015504",
            "modified_at": "2019-11-04 17:41:29.015504",
            "role_uuid": "00000000-0000-0000-0000-000000000000",
            "saml_assertion_attribute_id": 0
        },
        "type": "authn_mappings",
        "id": "123e4567-e89b-12d3-a456-426655440000",
        "relationships": {
            "saml_assertion_attribute": {
                "data": {
                    "id": 0,
                    "type": "saml_assertion_attributes"
                }
            },
            "role": {
                "data": {
                    "id": "123e4567-e89b-12d3-a456-426655440000",
                    "type": "roles"
                }
            }
        }
    },
    "included": [
        {
            "data": {
                "id": "123e4567-e89b-12d3-a456-426655440000",
                "type": "roles",
                "attributes": {
                    "created_at": "2019-11-04 17:41:29.015504",
                    "modified_at": "2019-11-06 17:41:29.015504",
                    "name": "Developer Role"
                },
                "relationships": {
                    "permissions": {
                        "data": [
                            {
                                "id": "123e4567-e89b-12d3-a456-426655441000",
                                "type": "permissions"
                            }
                        ]
                    }
                }
            }
        },
        {
            "data": {
                "id": 6,
                "type": "saml_assertion_attributes",
                "attributes": {
                    "id": 6,
                    "attribute_key": "member-of",
                    "attribute_value": "Development"
                }
            }
        }
    ]
}

Obtenga todos los mapeos de AuthN

Devuelve una lista de mapeos de AuthN

MétodoRuta del punto de conexiónCarga útil requerida
GET/v2/authn_mappingsParámetros de consulta opcionales
ARGUMENTOS
  • sort [opcional, predeterminado=created_at] Atributo de ordenamiento y dirección—por defecto es orden ascendente, -<attribute> ordena en orden descendente. También se puede ordenar por atributos de relación role.name, saml_assertion_attribute.attribute_key, saml_assertion_attribute.attribute_value.
  • page[number] [opcional, predeterminado=0, mínimo=0] La página de resultados a devolver.
  • page[size] [opcional, predeterminado=10] El número de resultados a devolver en cada página.
  • filter [opcional, predeterminado=ninguno] Filtrar por etiquetas como cadenas. Por ejemplo, Billing Users.
curl -X GET "https://api.<YOUR_DD_SITE>/api/v2/authn_mappings" \
     -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
     -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>"
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
{
    "data": [
      {
        "type": "authn_mapping",
        "id": "123e4567-e89b-12d3-a456-426655440000",
        "relationships": {
          "saml_assertion_attribute": {
            "data": {"id": 0, "type": "saml_assertion_attributes"}
          },
          "role": {
            "data": {
              "id": "123e4567-e89b-12d3-a456-426655440000",
              "type": "roles"
            }
          }
        },
        "attributes": {
          "created_at": "2019-11-04 17:41:29.015504",
          "modified_at": "2019-11-04 17:41:29.015504",
          "saml_assertion_attribute_id": 0
        }
      }
    ],
    "included": [
      {
        "data": {
          "id": "123e4567-e89b-12d3-a456-426655440000",
          "type": "roles",
          "attributes": {
            "created_at": "2019-11-04 17:41:29.015504",
            "modified_at": "2019-11-06 17:41:29.015504",
            "name": "Developer Role"
          },
          "relationships": {
            "permissions": {
                "data": [
                  {
                    "id": "123e4567-e89b-12d3-a456-426655440000",
                    "type": "permissions"
                  }
                ]
            }
          }
        }
      },
      {
        "data": {
          "id": 6,
          "type": "saml_assertion_attributes",
          "attributes": {
            "id": 6,
            "attribute_key": "member-of",
            "attribute_value": "Developer"
          }
        }
      }
    ],
    "meta": {
      "page": {
        "total_count": 1,
        "total_filtered_count": 1,
      }
    }
}

Obtenga un mapeo específico de AuthN

Devuelve un mapeo de AuthN específico por UUID.

MétodoRuta del punto de conexiónCarga útil requerida
GET/authn_mappings/{authn_mapping_id}Parámetro de URL
ARGUMENTOS
  • {authn_mapping_id} [requerido, sin valor por defecto]: Reemplace {authn_mapping_id} con el ID del mapeo de AuthN que desea ver.
curl -X GET "https://api.<YOUR_DD_SITE>/api/v2/authn_mappings/{authn_mapping_id}" \
     -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
     -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>"
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
{
    "data": {
        "attributes": {
            "created_at": "2019-11-04 17:41:29.015504",
            "modified_at": "2019-11-04 17:41:29.015504",
            "uuid": "123e4567-e89b-12d3-a456-426655440000",
            "saml_assertion_attribute_id": 0
        },
        "type": "authn_mappings",
        "id": "123e4567-e89b-12d3-a456-426655440000",
        "relationships": {
            "saml_assertion_attribute": {
                "data": {
                    "id": 0,
                    "type": "saml_assertion_attributes"
                }
            },
            "role": {
                "data": {
                    "id": "123e4567-e89b-12d3-a456-426655440000",
                    "type": "roles"
                }
            }
        }
    },
    "included": [
        {
            "data": {
                "id": "123e4567-e89b-12d3-a456-426655440000",
                "type": "roles",
                "attributes": {
                    "created_at": "2019-11-04 17:41:29.015504",
                    "modified_at": "2019-11-06 17:41:29.015504",
                    "uuid": "123e4567-e89b-12d3-a456-426655440000",
                    "name": "Developer Role"
                },
                "relationships": {
                    "permissions": {
                        "data": [
                            {
                                "id": "123e4567-e89b-12d3-a456-426655440000",
                                "type": "permissions"
                            }
                        ]
                    }
                }
            }
        },
        {
            "data": {
                "id": 6,
                "type": "saml_assertion_attributes",
                "attributes": {
                    "id": 6,
                    "attribute_key": "member-of",
                    "attribute_value": "Developer"
                }
            }
        }
    ]
}

Actualizar mapeo

Actualiza el mapeo de AuthN role, saml_assertion_attribute_id o ambos desde un cuerpo JSON. Devuelve el mapeo de AuthN actualizado.

MétodoRuta del punto de conexiónCarga útil requerida
PATCH/v2/authn_mappings/{authn_mapping_id}Parámetro de URL, JSON
ARGUMENTOS
  • {authn_mapping_id} [requerido, sin valor predeterminado]: Reemplace {authn_mapping_id} con el ID del mapeo de AuthN que desea actualizar. Esto es requerido tanto en la ruta de la solicitud como en el cuerpo de la solicitud.
  • role["data"]["id"] [opcional, predeterminado=ninguno]: El ID del rol al que se asignará. La API de Roles se puede utilizar para crear y gestionar roles de Datadog, qué permisos globales otorgan y qué usuarios pertenecen a ellos. Nota: Este atributo debe presentarse como parte de un bloque de relación role en las solicitudes. Vea el ejemplo a continuación para más detalles. Cuando crea un rol, se le asigna un ID. Para más información sobre cómo encontrar el ID para el rol al que desea asignar, consulte la documentación de la API de Roles.
  • attributes["attribute_key"] [opcional, predeterminado=ninguno]: El attribute_key es la parte clave de un par clave/valor que representa un atributo enviado desde su Proveedor de Identidad. Puede definirlos para su propio caso de uso. Por ejemplo, attribute_key podría ser member-of y el attribute_value podría ser Development.
  • attributes["attribute_value"] [opcional, predeterminado=ninguno]: El attribute_value es la parte de valor de un par clave/valor que representa un atributo enviado desde su Proveedor de Identidad. Puede definirlos para su propio caso de uso. Por ejemplo, attribute_key podría ser member-of y el attribute_value podría ser Development.
curl -X PATCH \
    "https://api.<YOUR_DD_SITE>/api/v2/authn_mappings/{UUID}" \
    -H "Content-Type: application/json" \
    -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
    -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
    -d '{
            "data": {
                "type": "authn_mappings",
                "id": "{authn_mapping_id}",
                "attributes": {
                    "attribute_key": "member-of",
                    "attribute_value": "Developer"
                }
                "relationships": {
                "role": {
                    "data": {
                            "id": "123e4567-e89b-12d3-a456-426655440000",
                            "type": "roles"
                        }
                    }
                }
            }
        }'
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
{
    "data": {
        "attributes": {
            "created_at": "2019-11-04 17:41:29.015504",
            "modified_at": "2019-11-04 17:41:29.015504",
            "saml_assertion_attribute_id": 0
        },
        "type": "authn_mappings",
        "id": "123e4567-e89b-12d3-a456-426655440000",
        "relationships": {
            "saml_assertion_attribute": {
                "data": {
                    "id": 0,
                    "type": "saml_assertion_attributes"
                }
            },
            "role": {
                "data": {
                    "id": "123e4567-e89b-12d3-a456-426655440000",
                    "type": "roles"
                }
            }
        }
    },
    "included": [
        {
            "data": {
                "id": "123e4567-e89b-12d3-a456-426655440000",
                "type": "roles",
                "attributes": {
                    "created_at": "2019-11-04 17:41:29.015504",
                    "modified_at": "2019-11-06 17:41:29.015504",
                    "uuid": "123e4567-e89b-12d3-a456-426655440000",
                    "name": "Developer Role"
                },
                "relationships": {
                    "data": [
                        {
                            "id": "123e4567-e89b-12d3-a456-426655440000",
                            "type": "permissions"
                        }
                    ]
                }
            }
        },
        {
            "data": {
                "id": 6,
                "type": "saml_assertion_attributes",
                "attributes": {
                    "id": 6,
                    "attribute_key": "member-of",
                    "attribute_value": "Developer"
                }
            }
        }
    ]
}

Eliminar mapeo

Elimina un mapeo de AuthN específico.

MétodoRuta del punto de conexiónCarga útil requerida
DELETE/v2/authn_mappings/{authn_mapping_id}Parámetro de URL
ARGUMENTOS
  • {authn_mapping_id} [requerido, sin valor por defecto]: Reemplace {authn_mapping_id} con el ID del mapeo de AuthN que desea eliminar.
curl -X DELETE "https://api.<YOUR_DD_SITE>/api/v2/authn_mappings/{UUID}" \
         -H "Content-Type: application/json" \
         -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
         -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>"
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
HTTP/2 204

Obtener habilitación de mapeo de AuthN

Verifique si los mapeos de AuthN están habilitados o deshabilitados.

MétodoRuta del punto de conexiónCarga útil requerida
GET/v1/org_preferencesNinguno
curl -X GET \
         "https://api.<YOUR_DD_SITE>/api/v1/org_preferences" \
         -H "Content-Type: application/json" \
         -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
         -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
{
  "data": {
    "attributes": {
        "preference_data": "saml_authn_mapping_roles",
        "preference_type": true
    },
    "type": "org_preferences",
    "id": 1,
  },
}

Habilitar o deshabilitar todos los mapeos

Cuando los mapeos están habilitados, todos los usuarios que inician sesión con SAML son despojados de sus roles y se les reasignan roles basados en los valores en su aserción SAML. Es importante confirmar que está recibiendo las aserciones SAML esperadas en su inicio de sesión antes de habilitar la aplicación de mapeo.

Habilita/deshabilita la aplicación de todos los mapeos de AuthN.

MétodoRuta del punto de conexiónCarga útil requerida
POST/v1/org_preferencesJSON
ARGUMENTOS
  • {preference_type} [requerido, sin valor predeterminado]: Preferencia para actualizar, requerido que sea “saml_authn_mapping_roles”
  • {preference_data} [requerido, sin valor predeterminado]: Datos para actualizar la preferencia, debe ser verdadero o falso: verdadero para habilitar todos los mapeos, falso para deshabilitar
curl -X POST \
    "https://api.<YOUR_DD_SITE>/api/v1/org_preferences" \
    -H "Content-Type: application/json" \
    -H "DD-API-KEY: <YOUR_DATADOG_API_KEY>" \
    -H "DD-APPLICATION-KEY: <YOUR_DATADOG_APPLICATION_KEY>" \
    -d '{
        "data": {
            "type": "org_preferences",
            "attributes": {
                "preference_type": "saml_authn_mapping_roles",
                "preference_data": true
            }
        }
    }'
`
  • Reemplace <YOUR_DATADOG_API_KEY> y <YOUR_DATADOG_APPLICATION_KEY> con las correspondientes claves de API y de aplicación para su organización.
  • Reemplace <YOUR_DD_SITE> con
{
  "data": {
    "attributes": {
        "preference_type": "saml_authn_mapping_roles",
        "preference_data": true
    },
    "type": "org_preferences",
    "id": 1,
  },
}

Lectura adicional

Más enlaces, artículos y documentación útiles: