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/externalId | extern_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を削除します。
SAMLグループリンク
REST APIを使用して、SAMLグループリンクをリスト、取得、追加、削除します。
すべての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グループリンクを取得する
グループの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グループリンクを追加する
グループに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グループリンクを削除する
グループの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を返します。