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

SAML API

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

このAPIを使用して、SAML機能とやり取りします。

GitLab.comエンドポイント

グループのSAML固有識別子を取得します

GET /groups/:id/saml/identities

グループのSAML固有識別子をフェッチします。

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

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

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

属性説明
extern_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
    }
]

単一のSAML固有識別子を取得します

GET /groups/:id/saml/:uid

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

属性必須説明
id整数または文字列はいグループのIDまたはURLエンコードされたパス
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
}

SAML固有識別子のextern_uidフィールドを更新します

SAML固有識別子のextern_uidフィールドを更新します:

SAML IDプロバイダ属性GitLabフィールド
id/externalIdextern_uid
PATCH /groups/:id/saml/:uid

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

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

リクエスト例:

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

単一のSAML固有識別子を削除します

DELETE /groups/:id/saml/:uid

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

属性必須説明
id整数はいグループのIDまたはURLエンコードされたパス
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セルフマネージドエンドポイント

単一のSAML固有識別子を取得します

単一のSAML固有識別子を取得するには、Users APIを使用します。

SAML固有識別子のextern_uidフィールドを更新します

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

単一のSAML固有識別子を削除します

ユーザーの単一の固有識別子を削除するには、Users APIを使用します。

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

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

GET /groups/:id/saml_group_links

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

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

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

属性説明
[].name文字列SAMLグループの名前。
[].access_level整数SAMLグループのメンバーのロール(access_level。この属性は、GitLab 15.3.0からGitLab 15.3.3まで文字列型でした。
[].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グループのメンバーのロール(access_level。この属性は、GitLab 15.3.0からGitLab 15.3.3まで文字列型でした。
member_role_id整数SAMLグループのメンバーのメンバーロールID(member_role_id
provider文字列このグループリンクを適用するには、一致する必要がある一意のプロバイダー名

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

リクエスト例:

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グループのメンバーのロール(access_level
member_role_id整数いいえSAMLグループのメンバーのメンバーロールID(member_role_id
provider文字列いいえこのグループリンクを適用するには、一致する必要がある一意のプロバイダー名

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

属性説明
name文字列SAMLグループの名前。
access_level整数SAMLグループのメンバーのロール(access_level。この属性は、GitLab 15.3.0からGitLab 15.3.3まで文字列型でした。
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パラメータが指定されていない場合、422を返し、providerパラメータは区別するために必要であることを示すエラーメッセージが表示されます。