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/externalId | extern_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を使用して、ユーザーの単一のアイデンティティを削除します。
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 (レポーター)、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グループリンクを取得する
グループの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グループリンクを追加
グループの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グループリンクを削除
グループの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が返されます。