# Создать SSO-провайдер для команды

export default function Layout(props) {
  const { OpenAPIPage } = props.components ?? {};
  return (
    <>
      {props.children}
      ## Создать SSO-провайдер для команды

`POST /api/v1/security/admin/sso/providers`

**Авторизация:** dpop

**Параметры**

| Имя | Где | Обязательный | Тип | Описание |
| --- | --- | --- | --- | --- |
| `idempotency-key` | header | нет | string | Ключ идемпотентности для безопасного повтора запроса: 8–255 символов из набора A-Za-z0-9_.:+/=-, ответ кэшируется на 24 ч |

**Тело запроса** (`application/json`, обязательное): CreateSsoProvider
- `attributeMap`: object — Маппинг claim IdP → атрибут пользователя
- `clientId`: string, обязательное — client_id, выданный IdP
- `clientSecret`: string — client_secret, выданный IdP; хранится в зашифрованном виде
- `issuerUrl`: string (uri), обязательное — Issuer URL OIDC-провайдера (по нему выполняется discovery)
- `name`: string, обязательное — Название провайдера
- `scopes`: массив string — Запрашиваемые OIDC scope

**Ответы**

- `200` — Провайдер создан (`application/json`, SsoProvider)
  - `attributeMap`: object, обязательное — Маппинг claim IdP → атрибут пользователя
  - `clientId`: string, обязательное — client_id, выданный IdP
  - `domains`: массив string, обязательное — Email-домены, привязанные к провайдеру
  - `id`: string, обязательное — Идентификатор провайдера
  - `isActive`: boolean, обязательное — Активен ли провайдер
  - `issuerUrl`: string, обязательное — Issuer URL OIDC-провайдера
  - `name`: string, обязательное — Название провайдера
  - `scopes`: массив string, обязательное — Запрашиваемые OIDC scope
- `400` — Некорректный запрос: не прошла валидация параметров или тела (`application/problem+json`, ProblemDetails)
- `401` — Токен отсутствует, недействителен или истёк (`application/problem+json`, ProblemDetails)
- `403` — Недостаточно прав или scope (`application/problem+json`, ProblemDetails)
- `429` — Превышен лимит запросов, повторите через Retry-After секунд (`application/problem+json`, ProblemDetails)

    </>
  );
}
