
# 接続の属性マッピングを取得する

`GET /v1/connections/{connection_id}/attribute-mappings` · 権限 `connections:read`

企業接続（SAML または OIDC）の属性マッピングルールを、ターゲット順に返します。各ルールは、ID プロバイダーが送信する属性またはクレーム（`source_name`）をユーザー項目（`target`）へ対応付けます。`ETag` ヘッダーにはリストのバージョンが含まれます。リストを置き換えるかプリセットプロファイルを適用するときは、これを `If-Match` として送信してください。保存済みルールがない接続では空のリストが返されます。サインイン時にはテンプレートの既定値が適用されます（OIDC は `generic` プロファイル、SAML ではマッピングなし）。読み取りは監査されません。

## リクエスト

| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| `connection_id` | パス | はい | 企業接続の ID（`conn_…`）。 |

## レスポンス

リストと `ETag` を含む `200 OK`。

```json
{
  "attribute_mappings": [
    {
      "target": "email",
      "source_name": "email",
      "source_name_format": null,
      "overwrite": "always",
      "profile": "okta"
    },
    {
      "target": "user_metadata.department",
      "source_name": "department",
      "source_name_format": "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
      "overwrite": "if_empty",
      "profile": "generic"
    }
  ]
}
```

| フィールド | 説明 |
|---|---|
| `target` | `email`、`given_name`、`family_name`、`name`、`locale`、`zoneinfo`、`phone`、`groups`、または `user_metadata.<key>`。 |
| `source_name` | SAML 属性の `Name` または OIDC クレーム名（ドット区切りのパス、深さ ≤ 3）。 |
| `source_name_format` | 属性の読み取りに使う SAML の `NameFormat`。`null` の場合は名前のみで照合します。 |
| `overwrite` | `always`（サインインのたび）、`if_empty`（項目が空の場合のみ）、または `never`（作成時のみ）。 |
| `profile` | ルールの元になったプリセット。手動で作成したルールは `generic`。 |

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 404 | `not_found` | 接続がこの環境に存在しないか、企業接続ではありません。 |
| 401 | `unauthenticated` | 資格情報がない、無効、または失効しています。 |
| 403 | `insufficient_permissions` | 資格情報に必要な権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` の期間を待ってから再試行してください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。`Retry-After` の期間を待ってから再試行してください。 |

## 例

```bash
curl -i "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/attribute-mappings" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections attribute-mappings get conn_01j9xp6q0r1s5t7v9w1x3y5z7b
```
