AWS Cognito
LibreChatでユーザー認証にAWS Cognitoを使用するための設定方法を学びます。
Cognitoで新しいユーザープールを作成する
- アクセスしてください: https://console.aws.amazon.com/cognito/
- ルートユーザーとしてサインイン
Create user poolをクリックします
サインインエクスペリエンスの設定
Cognitoユーザープールのサインインオプションには、User NameとEmailを含める必要があります。
セキュリティ要件の設定
必要に応じて、パスワードの要件を今すぐ設定できます。
サインアップ体験の設定
サインアップ時に必須とする属性を選択します。最低限必要なのは name です。ユーザーにサインアップ時にフルネームの使用を義務付けたい場合は、必須属性として given_name および family_name を使用してください。
メッセージ配信の設定
Cognitoを使用したメール送信は、1日あたり最大50通まで無料で利用できます。
アプリを統合する
Use Cognitio Hosted UI を選択し、ドメイン名を選択します
アプリの種類を Confidential client に設定します。
Generate a client secret が設定されていることを確認してください。
Allowed callback URLs を https://YOUR_DOMAIN/oauth/openid/callback に設定します。
Advanced app client settings の下で、OpenID Connect scopes(一番下にあります)に Profile が含まれていることを確認してください。
確認と作成
最後に変更を加えることができます。設定の確認が完了したら、Create user pool をクリックしてください。
環境変数を取得する
- ユーザープールを開く
User Pool IDと AWS リージョンを使用してOPENID_ISSUERを構築します(下記を参照)。
App Integrationsタブに移動します
- アプリクライアントを開く
Show Client Secretを切り替える
-
OPENID_CLIENT_IDにはClient IDを使用してください。 -
OPENID_CLIENT_SECRETにはClient secretを使用してください。 -
OPENID_SESSION_SECRET用のランダムな文字列を生成します
OPENID_SCOPEとOPENID_CALLBACK_URLは、正しい値で事前設定されています。
- LibreChat フォルダーのルートにある
.envファイルを開き、コピーした値を以下の変数に追加してください。
[!WARNING]
Cognito が OIDC プロバイダー(例:Entra へのフェデレーション)で構成されている場合、OPENID_GENERATE_NONCE=trueが必要です。これがないと、Cognito は(クライアントが nonce を提供していないにもかかわらず)独自に nonce を生成してしまい、クレームの検証が失敗します。
- .env ファイルを保存します
注: Dockerを使用している場合は、
docker compose up -dを実行して .env の設定変更を適用してください。
このガイドはいかがでしたか?