> ## 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 設定

<Tabs>
  <Tab title="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 エンコードされます。
    </Note>

    ### ステップ 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>

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

    ### ステップ 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.2.3/sambastack/resources/sambastack-yaml) をご覧ください。
    </Note>

    ### ステップ 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
    ```

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

  <Tab title="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 エンコードされます。
    </Note>

    ### ステップ 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>

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

    ### ステップ 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.2.3/sambastack/resources/sambastack-yaml) をご覧ください。
    </Note>

    ### ステップ 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
    ```
  </Tab>
</Tabs>

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

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

<Info>
  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 の共通ユーザーモデルにマッピングできます。
</Info>
