lockLDAP 認証

この機能は以下によって開発されています yu-i-i/overleaf-ceparrow-up-right。ここでは設定用のいくつかのドキュメントを提供します。

circle-exclamation

LDAP とは何か

LDAP は外部の識別確認に使用される認証プロトコルです。Overleaf Server Pro は標準の認証方法とは別に、ウェブインターフェース上で専用の LDAP ログインフォームを提供します。ユーザーが LDAP のユーザー名とパスワードを送信すると、Overleaf のバックエンドは構成された LDAP サーバー(例えば ldap://ldap:10389.

LDAP の Server Pro の例

設定

内部的に、Overleaf の LDAP は passport-ldapautharrow-up-right ライブラリを使用します。これらの構成オプションの多くは サーバー の構成オブジェクトに渡され、で構成に使用されます。 passport-ldapauthLDAP の設定で問題がある場合は、が期待する設定の感覚をつかむために passport-ldapauth の README を読む価値があります。

環境変数 EXTERNAL_AUTH は LDAP 認証モジュールを有効にするために必要です。この環境変数はどの外部認証方法が有効化されているかを指定します。この変数の値はリストです。リストに ldap が含まれていれば、LDAP 認証が有効になります。

例えば: EXTERNAL_AUTH=ldap saml

Overleaf CEP とは異なり、当方の ayaka-notes エディションでは LDAP 認証を純粋な認証方法として制限しており、これは以下で利用可能です http://your-overleaf.com/ldap/login.

LDAP 認証方法を使用するとき、ユーザーはログインフォームに ユーザー名パスワード を入力し、次の処理が試みられます:

  1. LDAP ユーザーは、によって定義されたフィルタを使用して LDAP ディレクトリ内で検索され、 OVERLEAF_LDAP_SEARCH_FILTER で認証されます。

  2. 認証に成功した場合、Overleaf のユーザーデータベースで認証された LDAP ユーザーのメールアドレスと一致するプライマリメールアドレスを持つユーザーが存在するか確認されます:

    • 一致するユーザーが見つかった場合、 hashedPassword このユーザーのフィールドは削除されます(存在する場合)。これにより、そのユーザーは今後 LDAP 認証によってのみログインできるようになります。

    • 一致するユーザーが見つからない場合、LDAP サーバーから取得したメール、名、姓を用いて新しい Overleaf ユーザーが作成されます。

triangle-exclamation

環境変数

  • OVERLEAF_LDAP_URL (必須)

    • LDAP サーバーの URL。

      • 例: ldaps://ldap.example.com:636 (SSL 上の LDAP)

      • 例: ldap://ldap.example.com:389 (暗号化されていない、または構成されている場合は STARTTLS)。

  • OVERLEAF_LDAP_IDENTITY_SERVICE_NAME

    • ログインページで使用される LDAP ID サービスの表示名。

    • デフォルトは Log in with LDAP Provider.

  • OVERLEAF_LDAP_EMAIL_ATT

    • LDAP サーバーが返すメール属性、デフォルトは mail。各 LDAP ユーザーは少なくとも 1 つのメールアドレスを持っている必要があります。複数のアドレスが提供されている場合、最初のものだけが使用されます。

  • OVERLEAF_LDAP_FIRST_NAME_ATT

    • アプリケーションで使用されるユーザーの名を保持するプロパティ名。通常は givenName.

  • OVERLEAF_LDAP_LAST_NAME_ATT

    • アプリケーションで使用されるユーザーの姓を保持するプロパティ名。通常は sn.

  • OVERLEAF_LDAP_NAME_ATT

    • ユーザーのフルネームを保持するプロパティ名。通常は cn。前述の二つの変数のいずれかが定義されていない場合、ユーザーの名および/または姓はこの変数から抽出されます。そうでなければ、この変数は使用されません。

  • OVERLEAF_LDAP_PLACEHOLDER

    • ログインフォームのプレースホルダ、デフォルトは Username.

  • OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN

    • が設定されている場合 true、ログイン時に LDAP ユーザーの first_namelast_name フィールドを更新し、LDAP ユーザーに対して /user/settings ページのユーザー詳細フォームをオフにします。そうでない場合、詳細は初回ログイン時のみ取得されます。

  • OVERLEAF_LDAP_BIND_DN

    • LDAP 接続に使用されるべき LDAP ユーザーの識別名(このユーザーは LDAP サーバー上でアカウントを検索/一覧表示できる必要があります)、例: cn=ldap_reader,dc=example,dc=com。定義されていない場合は匿名バインドが使用されます。

  • OVERLEAF_LDAP_BIND_CREDENTIALS

    • のパスワード OVERLEAF_LDAP_BIND_DN.

  • OVERLEAF_LDAP_BIND_PROPERTY

    • クライアントに対してバインドするユーザーのプロパティ。デフォルトは dn.

  • OVERLEAF_LDAP_SEARCH_BASE (必須)

    • ユーザーを検索する開始基点となるベース DN。例: ou=people,dc=example,dc=com.

  • OVERLEAF_LDAP_SEARCH_FILTER

    • LDAP 検索フィルタはユーザーを見つけるために使用されます。リテラル '{{username}}' を使用すると、指定されたユーザー名が LDAP 検索に挿入されます。

      • 例: (|(uid={{username}})(mail={{username}})) (ユーザーはメールまたはログイン名でログインできます)。

      • 例: (sAMAccountName={{username}}) (Active Directory)。

  • OVERLEAF_LDAP_SEARCH_SCOPE

    • 検索のスコープは次のいずれかになり得ます base, one、または sub (デフォルト)。

  • OVERLEAF_LDAP_SEARCH_ATTRIBUTES

    • LDAP サーバーから取得する属性の JSON 配列、例: ["uid", "mail", "givenName", "sn"]。デフォルトでは、すべての属性が取得されます。

  • OVERLEAF_LDAP_STARTTLS

    • が設定されている場合、TLS 上の LDAP が使用されます。 trueOVERLEAF_LDAP_TLS_OPTS_CA_PATH

  • LDAP サーバーの SSL/TLS 証明書を検証するために使用される CA 証明書を含むファイルへのパス。複数の証明書がある場合は、証明書へのパスの JSON 配列にすることができます。ファイルは docker コンテナからアクセス可能でなければなりません。

    • 例(1 件の証明書):

      • /var/lib/overleaf/certs/ldap_ca_cert.pem 例(複数の証明書):

      • ["/var/lib/overleaf/certs/ldap_ca_cert1.pem", "/var/lib/overleaf/certs/ldap_ca_cert2.pem"] OVERLEAF_LDAP_TLS_OPTS_REJECT_UNAUTH

  • 、サーバー証明書は提供された CA リストに対して検証されます。

    • が設定されている場合、TLS 上の LDAP が使用されます。 trueOVERLEAF_LDAP_CACHE

  • 、その場合最大 100 件の資格情報が同時に 5 分間キャッシュされます。

    • が設定されている場合、TLS 上の LDAP が使用されます。 trueOVERLEAF_LDAP_TIMEOUT

  • 操作がタイムアウトするまでクライアントが許容する時間、ミリ秒(デフォルト:無限)。

    • OVERLEAF_LDAP_CONNECT_TIMEOUT

  • TCP 接続でタイムアウトするまでクライアントが待機する時間、ミリ秒(デフォルト:OS のデフォルト)。

    • OVERLEAF_LDAP_IS_ADMIN_ATT

  • OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE両方の環境変数が設定されている場合、ログイン処理は以下を更新します

    • user.isAdmin = true もし LDAP プロファイルに、で指定された属性が含まれており、その値が と一致するか、または配列に OVERLEAF_LDAP_IS_ADMIN_ATT_VALUE を含んでいる場合、そうでなければ 両方の環境変数が設定されている場合、ログイン処理は以下を更新します user.isAdmin 両方の環境変数が設定されている場合、ログイン処理は以下を更新しますfalse に設定されます。これらのいずれかの変数が設定されていない場合、管理者ステータスは Launchpad における管理ユーザー作成時にのみ に設定されます。次の 5 つの変数は、LDAP サーバーからユーザーの連絡先を取得する方法の設定に使用されます。 true OVERLEAF_LDAP_CONTACTS_FILTER

連絡先としてロードするために LDAP サーバーでユーザーを検索するために使用されるフィルタ。フィルタ内のプレースホルダ '{{userProperty}}' は、検索を開始した LDAP ユーザーの

  • OVERLEAF_LDAP_CONTACTS_PROPERTY

    • で指定されたプロパティの値に置き換えられます。定義されていない場合、LDAP サーバーから連絡先へユーザーは取得されません。 OVERLEAF_LDAP_CONTACTS_SEARCH_BASE 連絡先検索を開始するベース DN を指定します。デフォルトは

  • OVERLEAF_LDAP_CONTACTS_SEARCH_SCOPE

    • は、フィルタ内の '{{userProperty}}' プレースホルダを置き換えるユーザーオブジェクトのプロパティを指定します。 OVERLEAF_LDAP_SEARCH_BASE.

  • OVERLEAF_LDAP_CONTACTS_NON_LDAP_VALUE

    • 検索のスコープは次のいずれかになり得ます base, one、または sub (デフォルト)。

  • OVERLEAF_LDAP_CONTACTS_SEARCH_BASE

    • 検索が非 LDAP ユーザーによって開始された場合の OVERLEAF_LDAP_CONTACTS_PROPERTY.

  • の値を指定します。この変数が定義されていない場合、生成されるフィルタは何にも一致しません。値

    • はワイルドカードとして使用できます。 OVERLEAF_LDAP_CONTACTS_SEARCH_BASE* OVERLEAF_LDAP_CONTACTS_FILTER=(gidNumber={{userProperty}})

chevron-rightOVERLEAF_LDAP_CONTACTS_PROPERTY=gidNumberhashtag

。非 LDAP ユーザーは UNIX のすべての LDAP ユーザーを連絡先に持ちます( gid=1000)。 サンプル variables.env ファイル OVERLEAF_APP_NAME="Our Overleaf Instance"

chevron-rightENABLED_LINKED_FILE_TYPES=project_file,project_output_file,urlhashtag

最終更新