正式なドキュメントは英語版であり、この日本語訳は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アイデンティティを取得する

単一の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 IdP属性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 Self-Managedエンドポイント

単一のSAMLアイデンティティを取得する

ユーザーAPIを使用して、単一のSAMLアイデンティティを取得します

SAMLアイデンティティのextern_uidフィールドを更新

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

単一のSAMLアイデンティティを削除

ユーザーAPIを使用して、ユーザーの単一のアイデンティティを削除します

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

グループのすべてのSAMLグループリンクを一覧表示します。

GET /groups/:id/saml_group_links

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

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

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

属性説明
[].name文字列SAMLグループの名前。
[].access_level整数SAMLグループのメンバーに対するデフォルトのアクセスレベル。使用可能な値: 0 (アクセスなし)、5 (最小アクセス)、10 (ゲスト)、15 (プランナー)、20 (レポーター)、25 (セキュリティマネージャー)、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 (レポーター)、25 (セキュリティマネージャー)、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 (レポーター)、25 (セキュリティマネージャー)、30 (デベロッパー)、40 (メンテナー)、または50 (オーナー)。
member_role_id整数いいえSAMLグループのメンバーに対するメンバーロールID (member_role_id)
provider文字列いいえこのグループリンクが適用されるために一致する必要がある、一意のプロバイダー名

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

属性説明
name文字列SAMLグループの名前。
access_level整数SAMLグループのメンバーに対するデフォルトのアクセスレベル。使用可能な値: 0 (アクセスなし)、5 (最小アクセス)、10 (ゲスト)、15 (プランナー)、20 (レポーター)、25 (セキュリティマネージャー)、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が返されます。