> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 認証

本ページでは、SambaStack クラスターに設定できるカスタム認証の構成について説明します。

## カスタム OIDC 設定

**SambaStack オンプレミス / エアギャップ**

SambaStack を貴組織の ID プロバイダーと連携させるには、カスタム OIDC 認証を設定します。

### ステップ 1: 必要な値の収集

| **入手元** | **値** |
| :- | :- |
| OIDC プロバイダーから提供 | `OIDC_CLIENT_ID`, `OIDC_CLIENT_SECRET`, `OIDC_ISSUER_URL`, `OIDC_REDIRECT_URI` |
| 作成するランダム文字列 | `JWT_SECRET_KEY` |

これらは、環境変数 `OIDC_CLIENT_ID`、`OIDC_CLIENT_SECRET`、`OIDC_ISSUER_URL`、`OIDC_REDIRECT_URI`、`JWT_SECRET_KEY` に対応します。

> [!NOTE]
>
> 値は、平文で指定した場合でも、アップロード時に base64 エンコードされます。

### ステップ 2: Kubernetes Secret の作成

シークレットを作成するため、OIDC プロバイダーの詳細を記載した `oidc-auth.yaml` という名前のファイルを作成します。

```yaml theme={}
apiVersion: v1
kind: Secret
metadata:
  name: oidc-auth
  namespace: sambastack
stringData:
  OIDC_CLIENT_ID: "<client-id>"
  OIDC_CLIENT_SECRET: "<client-secret>"
  OIDC_ISSUER_URL: "<oidc-issuer-url>"
  OIDC_REDIRECT_URI: "https://ui.<yourdomain>/web/auth/callback"
  JWT_SECRET_KEY: "<random-string>"
```

プレースホルダを実際の値に置き換えます (値は平文で指定します)。

* `<client-id>`: OIDC クライアント ID
* `<client-secret>`: OIDC クライアントシークレット
* `<oidc-issuer-url>`: ID プロバイダーから提供される一意の URL
* `<yourdomain>`: 貴組織のドメイン
* `<random-string>`: JWT 署名用に安全に生成されたランダム文字列

> [!NOTE]
>
> SambaNova は、引き渡し時に完全なレジストリ URL とバージョン番号を提供します。アクセス用の認証情報については、SambaNova の担当者にお問い合わせください。

> [!NOTE]
>
> `OIDC_REDIRECT_URI` が UI ドメインのコールバックエンドポイント `https://ui.<yourdomain>/web/auth/callback` と一致していることを確認してください。

### ステップ 3: Secret の適用

```bash theme={}
kubectl apply -f oidc-auth.yaml
```

### ステップ 4: `sambastack.yaml` の更新

`sambastack.yaml` に OIDC 設定を追加します。

```yaml theme={}
gateway:
  replicas: 3
  auth:
    enabled: true
    secretName: oidc-auth     # Must match the oidc-auth secret name
```

> [!NOTE]
>
> 完全な例については、[SambaStack.yaml リファレンス](/docs/ja/v2.1.1/sambastack/resources/sambastack-yaml.md) をご覧ください。

### ステップ 5: 設定の適用

Helm デプロイメントを更新します。

#### オンプレミス

```bash theme={}
helm upgrade sambastack \
  -f sambastack.yaml \
  --namespace sambastack \
  oci://<REGISTRY_URL>/sambastack/sambastack
```

#### エアギャップ

OCI レジストリパスの代わりに、ローカルにある Helm チャートのコピーを使用します。

```shellscript theme={}
helm upgrade sambastack \
  -f sambastack.yaml \
  --namespace sambastack \
  sambastack-<VERSION>.tgz
```

> [!NOTE]
>
> `sambastack-<VERSION>.tgz` は、アップグレードに使用する Helm チャートのローカルコピーです。さらにサポートが必要な場合は、SambaNova のサポート窓口までお問い合わせください。

**SambaStack Hosted**

SambaStack を貴組織の ID プロバイダーと連携させるには、カスタム OIDC 認証を設定します。

### ステップ 1: 必要な値の収集

| **入手元** | **値** |
| :- | :- |
| OIDC プロバイダーから提供 | `OIDC_CLIENT_ID`, `OIDC_CLIENT_SECRET`, `OIDC_ISSUER_URL`, `OIDC_REDIRECT_URI` |
| 作成するランダム文字列 | `JWT_SECRET_KEY` |

これらは、環境変数 `OIDC_CLIENT_ID`、`OIDC_CLIENT_SECRET`、`OIDC_ISSUER_URL`、`OIDC_REDIRECT_URI`、`JWT_SECRET_KEY` に対応します。

> [!NOTE]
>
> 値は、平文で指定した場合でも、アップロード時に base64 エンコードされます。

### ステップ 2: Kubernetes Secret の作成

シークレットを作成するため、OIDC プロバイダーの詳細を記載した `oidc-auth.yaml` という名前のファイルを作成します。

```yaml theme={}
apiVersion: v1
kind: Secret
metadata:
  name: oidc-auth
  namespace: sambastack
stringData:
  OIDC_CLIENT_ID: "<client-id>"
  OIDC_CLIENT_SECRET: "<client-secret>"
  OIDC_ISSUER_URL: "<oidc-issuer-url>"
  OIDC_REDIRECT_URI: "https://ui.<yourdomain>/web/auth/callback"
  JWT_SECRET_KEY: "<random-string>"
```

プレースホルダを実際の値に置き換えます (値は平文で指定します)。

* `<client-id>`: OIDC クライアント ID
* `<client-secret>`: OIDC クライアントシークレット
* `<oidc-issuer-url>`: ID プロバイダーから提供される一意の URL
* `<yourdomain>`: 貴組織のドメイン
* `<random-string>`: JWT 署名用に安全に生成されたランダム文字列

> [!NOTE]
>
> SambaNova は、引き渡し時に完全なレジストリ URL とバージョン番号を提供します。アクセス用の認証情報については、SambaNova の担当者にお問い合わせください。

> [!NOTE]
>
> `OIDC_REDIRECT_URI` が UI ドメインのコールバックエンドポイント `https://ui.<yourdomain>/web/auth/callback` と一致していることを確認してください。

### ステップ 3: Secret の適用

```bash theme={}
kubectl apply -f oidc-auth.yaml
```

### ステップ 4: `sambastack.yaml` の更新

`sambastack.yaml` に OIDC 設定を追加します。

```yaml theme={}
gateway:
  replicas: 3
  auth:
    enabled: true
    secretName: oidc-auth     # Must match the oidc-auth secret name
```

> [!NOTE]
>
> 完全な例については、[SambaStack.yaml リファレンス](/docs/ja/v2.1.1/sambastack/resources/sambastack-yaml.md) をご覧ください。

### ステップ 5: 設定の適用

```bash theme={}
kubectl apply -f sambastack.yaml
```

シークレットを確認します。

```shellscript theme={}
kubectl get secret | grep oidc
```

出力例:

```text theme={}
oidc-auth                      Opaque           5          10s
sambastack-oidc-auth           Opaque           5          7m53s
```

## Keycloak によるユーザー管理

Keycloak を主要な認証ツールとして使用する場合、認証設定の構成の詳細については、[Keycloak Server Administration Guide](https://www.keycloak.org/docs/latest/server_admin/index.html#proc-creating-user_server_administration_guide)（英語）をご参照ください。

> [!NOTE]
>
> Keycloak は以下の機能もサポートしています。
>
> 1. [**ログインアクティビティの追跡**](https://www.keycloak.org/docs/latest/server_admin/#configuring-auditing-to-track-events): イベント種別 (ログイン、ログアウト、登録) ごとに、ユーザーアクティビティの表示・エクスポート・フィルタリングができます。
> 2. [**LDAP 連携**](https://www.keycloak.org/docs/latest/server_admin/index.html#_ldap): 複数の LDAP/AD サーバーを単一の Keycloak realm にフェデレーションし、LDAP のユーザー属性を Keycloak の共通ユーザーモデルにマッピングできます。
