SSO(シングルサインオン)— 連携ガイド

本ドキュメントは、エンタープライズ環境において組織の認証システムとVivoldiダッシュボードをRS256方式で安全に連携するための開発者向け技術ガイドです。

Linux環境でのRSA鍵ペア生成 → JWKS(JSON Web Key Set)の構成 → JWT署名トークンの送信までの全工程を、実際のコード例とともにステップごとに解説します。

1. 証明書キー ファイルの生成

The private key file must be used only within the server, and its permissions should be restricted to block external access.

⚠️ Caution: Never expose your private key externally. Do not upload it to public repositories, emails, or cloud drives.

Linux Terminal


# Private Key Generation (RSA 3072-bit, PKCS#1)
$ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out sso_private.pem

# Public Key Extraction (X.509 PEM)
$ openssl rsa -in sso_private.pem -pubout -out sso_public.pem

2. ファイル権限の設定

秘密鍵ファイルはサーバー内部でのみ使用し、権限を制限して外部からのアクセスを遮断する必要があります。

⚠️ 注意: 秘密鍵を外部に公開してはいけません。Gitリポジトリ、メール、クラウドドライブなどの共有ストレージには絶対にアップロードしないでください。

Linux Terminal


# Private Key: Owner-only read access (600 recommended)
$ chmod 600 sso_private.pem

# Public Key: Set to read-only (644)
$ chmod 644 sso_public.pem

# Change the owner to the application execution account when necessary (e.g., www-data)
$ chown www-data:www-data sso_*.pem

3. JWKSファイルの作成と登録

Vivoldiダッシュボードの[開発者 → SSO設定]ページで生成したsso_public.pemファイルをアップロードすると、jwks.jsonファイルが自動的に生成されます。

生成されたjwks.jsonファイルを「https://yourdomain.com/.well-known/jwks.json」のパスにアップロードしてください。

jwks.json example


{
    "keys": [
        {
            "kty": "RSA",
            "use": "sig",
            "kid": "vivoldi-sso-20251008",
            "alg": "RS256",
            "n": "AN3V-5RxI7ekeBtc5N66yHzmhib_5ES5i3ZYoU4znkNh...",
            "e": "AQAB"
        }
    ]
}

Items

ktystring
Key Type(キータイプ)の略です。 SSOではRSA形式の公開鍵を使用します。
usestring
キーの用途を示します。 「sig」は署名(signature)目的で使用されることを意味します。
kidstring
Key ID(キー識別子)で、キーのバージョンを区別するための識別子です。 例:vivoldi-sso-20251008
algstring
使用される署名アルゴリズムを示します。 Vivoldi SSOは、高度なセキュリティのためRS256(RSA + SHA-256)のみをサポートします。
nstring
RSA公開鍵のmodulus(モジュラス)値で、Base64URLでエンコードされた長い文字列です。
この値は、認証トークン生成時にsso_private.pemと共に使用されます。
estring
RSA公開鍵のexponent(指数)値です。
通常はAQAB(65537)に固定されています。

4. JWTトークン生成サンプル

Java、PHP、Node.js環境でRS256方式を使用してJWTトークンを生成する方法を説明します。

JWTトークンを発行するには、組織アカウントに連携されたVivoldiのユーザーアカウントが登録されている必要があります。
先に[設定 → ユーザー管理]ページでユーザーを登録してから進めてください。

💡 エンタープライズ専用機能

Vivoldiはエンタープライズ顧客向けにシングルサインオン(SSO)機能を提供しています。
組織の認証システムと連携することで、セキュリティポリシーを中央で管理し、アクセス制御の効率を最大化できます。

導入に関するご相談は、[お問い合わせ]ページからご連絡ください。

エンタープライズプランにアップグレード後にログインすると、各言語のSSO連携サンプルコードを確認できます。

✨ エンタープライズレベルの統合認証

SSO(シングルサインオン)は、貴社の認証システムとVivoldiを連携させ、
全てのユーザーが一度のログインで安全にサービスへアクセスできるようにします。

集中型アカウント管理、強化されたセキュリティポリシー、アクセス制御の自動化による組織単位でのセキュリティと運用効率の向上は、エンタープライズプランで提供されます。

エンタープライズプランへのアップグレード