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/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セルフマネージドエンドポイント
単一のSAML固有識別子を取得します
単一のSAML固有識別子を取得するには、Users APIを使用します。
SAML固有識別子のextern_uidフィールドを更新します
ユーザーのextern_uidフィールドを更新するには、Users APIを使用します。
単一のSAML固有識別子を削除します
ユーザーの単一の固有識別子を削除するには、Users APIを使用します。
SAMLグループリンク
REST APIを使用して、SAMLグループリンクをリスト、取得、追加、削除します。
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グループリンクを取得します
グループの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グループリンクを追加します
グループの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グループリンクを削除します
グループの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パラメータは区別するために必要であることを示すエラーメッセージが表示されます。