Back to Gitlabhq

API SAML

doc-locale/fr-fr/api/saml.md

19.3.014.3 KB
Original Source

{{< details >}}

  • Édition : Premium, Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

{{< history >}}

{{< /history >}}

Utilisez cette API pour interagir avec les fonctionnalités SAML.

Points de terminaison GitLab.com {#gitlabcom-endpoints}

Lister toutes les identités SAML d'un groupe {#list-all-saml-identities-for-a-group}

plaintext
GET /groups/:id/saml/identities

Liste toutes les identités SAML d'un groupe.

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé URL du groupe

En cas de succès, renvoie 200 et les attributs de réponse suivants :

AttributTypeDescription
extern_uidstringUID externe de l'utilisateur
user_idstringIdentifiant de l'utilisateur

Exemple de requête :

shell
curl --location --request GET \
  --header "PRIVATE-TOKEN: <PRIVATE-TOKEN>" \
  --url "https://gitlab.com/api/v4/groups/33/saml/identities"

Exemple de réponse :

json
[
    {
        "extern_uid": "yrnZW46BrtBFqM7xDzE7dddd",
        "user_id": 48
    }
]

Récupérer une identité SAML unique {#retrieve-a-single-saml-identity}

{{< history >}}

{{< /history >}}

Récupère une identité SAML unique.

plaintext
GET /groups/:id/saml/:uid

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé URL du groupe
uidstringouiUID externe de l'utilisateur.

Exemple de requête :

shell
curl --location --request GET \
  --header "PRIVATE-TOKEN: <PRIVATE TOKEN>" \
  --url "https://gitlab.com/api/v4/groups/33/saml/yrnZW46BrtBFqM7xDzE7dddd"

Exemple de réponse :

json
{
    "extern_uid": "yrnZW46BrtBFqM7xDzE7dddd",
    "user_id": 48
}

Mettre à jour le champ extern_uid pour une identité SAML {#update-extern_uid-field-for-a-saml-identity}

Met à jour le champ extern_uid pour une identité SAML :

Attribut du fournisseur d'identité SAMLChamp GitLab
id/externalIdextern_uid
plaintext
PATCH /groups/:id/saml/:uid

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé URL du groupe
uidstringouiUID externe de l'utilisateur.

Exemple de requête :

shell
curl --request PATCH \
  --location \
  --header "PRIVATE-TOKEN: <PRIVATE TOKEN>" \
  --url "https://gitlab.com/api/v4/groups/33/saml/yrnZW46BrtBFqM7xDzE7dddd" \
  --form "extern_uid=be20d8dcc028677c931e04f387"

Supprimer une identité SAML unique {#delete-a-single-saml-identity}

{{< history >}}

{{< /history >}}

plaintext
DELETE /groups/:id/saml/:uid

Attributs pris en charge :

AttributTypeObligatoireDescription
identierouiL'identifiant ou le chemin encodé en URL du groupe.
uidstringouiUID externe de l'utilisateur.

Exemple de requête :

shell
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.com/api/v4/groups/33/saml/be20d8dcc028677c931e04f387"

Exemple de réponse :

json
{
    "message" : "204 No Content"
}

Points de terminaison GitLab Self-Managed {#gitlab-self-managed-endpoints}

Récupérer une identité SAML unique {#retrieve-a-single-saml-identity-1}

Utilise l'API Users pour obtenir une identité SAML unique.

Mettre à jour le champ extern_uid pour une identité SAML {#update-extern_uid-field-for-a-saml-identity-1}

Utilise l'API Users pour mettre à jour le champ extern_uid d'un utilisateur.

Supprimer une identité SAML unique {#delete-a-single-saml-identity-1}

Utilise l'API Users pour supprimer une identité unique d'un utilisateur.

{{< history >}}

  • Introduit dans GitLab 15.3.0.
  • Le type access_level a été modifié de string à integer dans GitLab 15.3.3.
  • Le type member_role_id a été introduit dans GitLab 16.7 avec un indicateur nommé custom_roles_for_saml_group_links. Désactivé par défaut.
  • Le type member_role_id est généralement disponible dans GitLab 16.8. L'indicateur de fonctionnalité custom_roles_for_saml_group_links a été supprimé.
  • Le paramètre provider a été introduit dans GitLab 18.2.

{{< /history >}}

Listez, récupérez, ajoutez et supprimez des liens de groupe SAML en utilisant l'API REST.

Liste tous les liens de groupe SAML pour un groupe.

plaintext
GET /groups/:id/saml_group_links

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiID ou chemin encodé en URL du groupe.

En cas de succès, renvoie 200 et les attributs de réponse suivants :

AttributTypeDescription
[].namestringNom du groupe SAML.
[].access_levelentierLe niveau d'accès par défaut pour les membres du groupe SAML. Valeurs possibles : 0 (Aucun accès), 5 (Accès minimum), 10 (Invité), 15 (Planificateur), 20 (Rapporteur), 25 (Responsable sécurité), 30 (Développeur), 40 (Mainteneur), ou 50 (Propriétaire).
[].member_role_identierID de rôle membre (member_role_id) pour les membres du groupe SAML.
[].providerstringNom du fournisseur unique qui doit correspondre pour que ce lien de groupe soit appliqué.

Exemple de requête :

shell
curl \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links"

Exemple de réponse :

json
[
  {
    "name": "saml-group-1",
    "access_level": 10,
    "member_role_id": 12,
    "provider": null
  },
  {
    "name": "saml-group-2",
    "access_level": 40,
    "member_role_id": 99,
    "provider": "saml_provider_1"
  }
]

Récupère un lien de groupe SAML pour un groupe.

plaintext
GET /groups/:id/saml_group_links/:saml_group_name

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiID ou chemin encodé en URL du groupe.
saml_group_namestringouiNom du groupe SAML.
providerstringnonNom du fournisseur unique pour lever l'ambiguïté lorsque plusieurs liens existent avec le même nom. Requis lorsque plusieurs liens existent avec le même saml_group_name.

En cas de succès, renvoie 200 et les attributs de réponse suivants :

AttributTypeDescription
namestringNom du groupe SAML.
access_levelentierLe niveau d'accès par défaut pour les membres du groupe SAML. Valeurs possibles : 0 (Aucun accès), 5 (Accès minimum), 10 (Invité), 15 (Planificateur), 20 (Rapporteur), 25 (Responsable sécurité), 30 (Développeur), 40 (Mainteneur), ou 50 (Propriétaire).
member_role_identierID de rôle membre (member_role_id) pour les membres du groupe SAML.
providerstringNom du fournisseur unique qui doit correspondre pour que ce lien de groupe soit appliqué.

Si plusieurs liens de groupe SAML existent avec le même nom mais des fournisseurs différents, et qu'aucun paramètre provider n'est spécifié, renvoie 422 avec un message d'erreur indiquant que le paramètre provider est requis pour lever l'ambiguïté.

Exemple de requête :

shell
curl \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"

Exemple de requête avec le paramètre provider :

shell
curl \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1?provider=saml_provider_1"

Exemple de réponse :

json
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12,
"provider": "saml_provider_1"
}

Ajoute un lien de groupe SAML pour un groupe.

plaintext
POST /groups/:id/saml_group_links

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiID ou chemin encodé en URL du groupe.
saml_group_namestringouiNom du groupe SAML.
access_levelentierouiLe niveau d'accès par défaut pour les membres du groupe SAML. Valeurs possibles : 0 (Aucun accès), 5 (Accès minimum), 10 (Invité), 15 (Planificateur), 20 (Rapporteur), 25 (Responsable sécurité), 30 (Développeur), 40 (Mainteneur), ou 50 (Propriétaire).
member_role_identiernonID de rôle membre (member_role_id) pour les membres du groupe SAML.
providerstringnonNom du fournisseur unique qui doit correspondre pour que ce lien de groupe soit appliqué.

En cas de succès, renvoie 201 et les attributs de réponse suivants :

AttributTypeDescription
namestringNom du groupe SAML.
access_levelentierLe niveau d'accès par défaut pour les membres du groupe SAML. Valeurs possibles : 0 (Aucun accès), 5 (Accès minimum), 10 (Invité), 15 (Planificateur), 20 (Rapporteur), 25 (Responsable sécurité), 30 (Développeur), 40 (Mainteneur), ou 50 (Propriétaire).
member_role_identierID de rôle membre (member_role_id) pour les membres du groupe SAML.
providerstringNom du fournisseur unique qui doit correspondre pour que ce lien de groupe soit appliqué.

Exemple de requête :

shell
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{ "saml_group_name": "<your_saml_group_name`>", "access_level": <chosen_access_level>, "member_role_id": <chosen_member_role_id>, "provider": "<your_provider>" }' --url  "https://gitlab.example.com/api/v4/groups/1/saml_group_links"

Exemple de réponse :

json
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12,
"provider": "saml_provider_1"
}

Supprime un lien de groupe SAML pour un groupe.

plaintext
DELETE /groups/:id/saml_group_links/:saml_group_name

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiID ou chemin encodé en URL du groupe.
saml_group_namestringouiNom du groupe SAML.
providerstringnonNom du fournisseur unique pour lever l'ambiguïté lorsque plusieurs liens existent avec le même nom. Requis lorsque plusieurs liens existent avec le même saml_group_name.

Exemple de requête :

shell
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"

Exemple de requête avec le paramètre provider :

shell
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1?provider=saml_provider_1"

En cas de succès, renvoie le code de statut 204 sans corps de réponse.

Si plusieurs liens de groupe SAML existent avec le même nom mais des fournisseurs différents, et qu'aucun paramètre provider n'est spécifié, renvoie 422 avec un message d'erreur indiquant que le paramètre provider est requis pour lever l'ambiguïté.