正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

SAML API

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このAPIを使用してSAML機能を操作します。

GitLab.comエンドポイント

グループのすべてのSAMLIDをリストする

GET /groups/:id/saml/identities

グループのすべてのSAMLIDをリストします。

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス

成功した場合、200と次のレスポンス属性を返します:

属性説明
extern_uid文字列ユーザーの外部UID
user_id文字列ユーザーのID

リクエスト例:

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

レスポンス例:

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

単一のSAMLIDを取得する

単一のSAMLIDを取得します。

GET /groups/:id/saml/:uid

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
uid文字列はいユーザーの外部UID。

リクエスト例:

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

レスポンス例:

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

SAMLIDのextern_uidフィールドを更新する

SAMLIDのextern_uidフィールドを更新します:

SAML IdP属性GitLabフィールド
id/externalIdextern_uid
PATCH /groups/:id/saml/:uid

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
uid文字列はいユーザーの外部UID。

リクエスト例:

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

単一のSAMLIDを削除する

DELETE /groups/:id/saml/:uid

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいグループのIDまたはURLエンコードされたパス
uid文字列はいユーザーの外部UID。

リクエスト例:

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

レスポンス例:

{
    "message" : "204 No Content"
}

GitLab Self-Managedエンドポイント

単一のSAMLIDを取得する

Users APIを使用して、単一のSAMLIDを取得します

SAMLIDのextern_uidフィールドを更新する

Users APIを使用して、ユーザーのextern_uidフィールドを更新します

単一のSAMLIDを削除する

Users APIを使用して、ユーザーの単一のIDを削除します

REST APIを使用して、SAMLグループリンクをリスト、取得、追加、削除します。

グループのすべてのSAMLグループリンクをリストします。

GET /groups/:id/saml_group_links

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいIDまたはURLエンコードされたパス。

成功した場合、200と次のレスポンス属性を返します:

属性説明
[].name文字列SAMLグループ名。
[].access_level整数SAMLグループのメンバーのデフォルトのアクセスレベル。使用可能な値: 0(アクセス権なし)、5(最小アクセス)、10(ゲスト)、15(プランナー)、20(レポーター)、30(デベロッパー)、40(メンテナー)、50(オーナー)。
[].member_role_id整数SAMLグループのメンバーのメンバーロールID (member_role_id)
[].provider文字列このグループリンクを適用するために一致する必要がある一意のプロバイダー名

リクエスト例:

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

レスポンス例:

[
  {
    "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"
  }
]

グループのSAMLグループリンクを取得します。

GET /groups/:id/saml_group_links/:saml_group_name

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいIDまたはURLエンコードされたパス。
saml_group_name文字列はいSAMLグループ名。
provider文字列いいえ同じ名前の複数のリンクが存在する場合に区別するための、一意のプロバイダー名。同じsaml_group_nameを持つ複数のリンクが存在する場合に必須。

成功した場合、200と次のレスポンス属性を返します:

属性説明
name文字列SAMLグループ名。
access_level整数SAMLグループのメンバーのデフォルトのアクセスレベル。使用可能な値: 0(アクセス権なし)、5(最小アクセス)、10(ゲスト)、15(プランナー)、20(レポーター)、30(デベロッパー)、40(メンテナー)、50(オーナー)。
member_role_id整数SAMLグループのメンバーのメンバーロールID (member_role_id)
provider文字列このグループリンクを適用するために一致する必要がある一意のプロバイダー名

同じ名前で異なるプロバイダーを持つ複数のSAMLグループリンクが存在し、providerパラメータが指定されていない場合、providerパラメータが区別に必要であることを示すエラーメッセージとともに422を返します。

リクエスト例:

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

プロバイダーパラメータを含むリクエストの例:

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"

レスポンス例:

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

グループにSAMLグループリンクを追加します。

POST /groups/:id/saml_group_links

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいIDまたはURLエンコードされたパス。
saml_group_name文字列はいSAMLグループ名。
access_level整数はいSAMLグループのメンバーのデフォルトのアクセスレベル。使用可能な値: 0(アクセス権なし)、5(最小アクセス)、10(ゲスト)、15(プランナー)、20(レポーター)、30(デベロッパー)、40(メンテナー)、50(オーナー)。
member_role_id整数いいえSAMLグループのメンバーのメンバーロールID (member_role_id)
provider文字列いいえこのグループリンクを適用するために一致する必要がある一意のプロバイダー名

成功した場合、201と次のレスポンス属性を返します:

属性説明
name文字列SAMLグループ名。
access_level整数SAMLグループのメンバーのデフォルトのアクセスレベル。使用可能な値: 0(アクセス権なし)、5(最小アクセス)、10(ゲスト)、15(プランナー)、20(レポーター)、30(デベロッパー)、40(メンテナー)、50(オーナー)。
member_role_id整数SAMLグループのメンバーのメンバーロールID (member_role_id)
provider文字列このグループリンクを適用するために一致する必要がある一意のプロバイダー名

リクエスト例:

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"

レスポンス例:

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

グループのSAMLグループリンクを削除します。

DELETE /groups/:id/saml_group_links/:saml_group_name

サポートされている属性は以下のとおりです:

属性必須説明
id整数または文字列はいIDまたはURLエンコードされたパス。
saml_group_name文字列はいSAMLグループ名。
provider文字列いいえ同じ名前の複数のリンクが存在する場合に区別するための、一意のプロバイダー名。同じsaml_group_nameを持つ複数のリンクが存在する場合に必須。

リクエスト例:

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

プロバイダーパラメータを含むリクエストの例:

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"

成功した場合、レスポンスボディなしで204ステータスコードを返します。

同じ名前で異なるプロバイダーを持つ複数のSAMLグループリンクが存在し、providerパラメータが指定されていない場合、providerパラメータが区別に必要であることを示すエラーメッセージとともに422を返します。