id-card-clipOIDC 認証

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

設定

内部的に、Overleaf の OIDC モジュールは passport-openidconnectarrow-up-right ライブラリを使用します。OpenID Connect の設定で問題がある場合は、期待される設定内容を把握するために以下の README を読む価値があります。 passport-openidconnect で期待される設定の感触をつかんでください。

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

例えば: EXTERNAL_AUTH=ldap oidc

OIDC 認証方式を使用する場合、ユーザーはアイデンティティプロバイダ(IdP)の認証サイトにリダイレクトされます。IdP がユーザーを正常に認証した場合、Overleaf のユーザーデータベースで次のような thirdPartyIdentifiers フィールドを含むレコードがあるかどうかが確認されます:

thirdPartyIdentifiers: [
  {
    externalUserId: "...",
    externalData: null,
    providerId: "..."
  }
]

その externalUserId は IdP サーバーが返すプロファイル内のユーザー ID と一致する必要があります(詳細は OVERLEAF_OIDC_USER_ID_FIELD 環境変数を参照)、および providerId は OIDC プロバイダの ID と一致する必要があります(詳細は OVERLEAF_OIDC_PROVIDER_ID).

一致するレコードが見つからない場合、データベースは IdP のユーザープロファイル内のメールと一致する主メールアドレスを持つユーザーを検索します:

  • もしそのようなユーザーが見つかった場合、 thirdPartyIdentifiers フィールドが更新されます。

  • 一致するユーザーが見つからず、JIT(Just-in-Time)アカウント作成が無効化されていない場合、IdP プロファイルからのメールアドレスと thirdPartyIdentifiers で新しいユーザーが作成されます。

どちらの場合でも、ユーザーは外部 OIDC ユーザーに「リンク」されているとみなされます。ユーザーは /user/settings ページで OIDC プロバイダからリンクを解除することができます。

環境変数

以下の 5 つの必須変数の値は、あなたの OpenID プロバイダ(OP)の .well-known/openid-configuration エンドポイントを使用して見つけることができます。

  • OVERLEAF_OIDC_ISSUER (必須)

  • OVERLEAF_OIDC_AUTHORIZATION_URL (必須)

  • OVERLEAF_OIDC_TOKEN_URL (必須)

  • OVERLEAF_OIDC_USER_INFO_URL (必須)

  • OVERLEAF_OIDC_LOGOUT_URL (必須)

以下の 2 つの必須変数の値は、あなたの OP の管理者から提供されます

  • OVERLEAF_OIDC_CLIENT_ID (必須)

  • OVERLEAF_OIDC_CLIENT_SECRET (必須)

  • OVERLEAF_OIDC_SCOPE

    • デフォルト: openid profile email

  • OVERLEAF_OIDC_PROVIDER_ID

    • OP の任意の ID(デフォルトは) oidc.

  • OVERLEAF_OIDC_PROVIDER_NAME

    • OP の名前は Linked Accounts セクションで使用されます /user/settings ページ、デフォルトは OIDC Provider.

  • OVERLEAF_OIDC_IDENTITY_SERVICE_NAME

    • ログインページで使用されるアイデンティティサービスの表示名(デフォルト: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).

  • OVERLEAF_OIDC_PROVIDER_DESCRIPTION

    • OP の説明は Linked Accounts セクションで使用されます(デフォルト: Log in with $OVERLEAF_OIDC_PROVIDER_NAME).

  • OVERLEAF_OIDC_PROVIDER_INFO_LINK

    • 詳細を読む OP 説明内の URL、デフォルト:説明内にリンクはありません。 詳細を読む 説明内にリンクはありません。

  • OVERLEAF_OIDC_PROVIDER_HIDE_NOT_LINKED

    • ユーザーのアカウントが OP とリンクされていない場合、OP を /user/settings ページに表示しない(デフォルト false.

  • OVERLEAF_OIDC_USER_ID_FIELD

    • この属性の値は Overleaf によって外部ユーザー ID として使用されます。デフォルトは id。他の妥当な値には emailusername (対応する OIDC クレームは preferred_username )。

  • OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS

    • OIDC 経由で認証するユーザーの JIT(Just-in-Time)アカウント作成を制限します。カンマ区切りのドメイン名リストに設定すると、新しいアカウントはユーザーのメールアドレスのドメインがリスト内のいずれかと一致する場合にのみ作成されます。ドメインが一致しない場合は、管理者が OIDC ユーザーのメールアドレスを使用してユーザーアカウントを手動で作成する必要があります。その際は強力なランダムパスワードを設定するか、望ましくは hashedPassword フィールドをまったく設定しないでください。ドメイン名はサブドメインにマッチさせるために先頭に *. ワイルドカードを含めることができます。

      • 例:次のようなメールアドレスのユーザーに対して JIT アカウント作成を許可する場合: [email protected][email protected]: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=example.com, *.example.com

      • 例:JIT アカウント作成を完全に無効にする場合: OVERLEAF_OIDC_ALLOWED_EMAIL_DOMAINS=

  • OVERLEAF_OIDC_UPDATE_USER_DETAILS_ON_LOGIN

    • に設定すると true、ログイン時にユーザーの first_namelast_name フィールドが更新され、ユーザー詳細フォームが無効化されます( /user/settings ページで OIDC プロバイダからリンクを解除することができます。

  • OVERLEAF_OIDC_IS_ADMIN_FIELDOVERLEAF_OIDC_IS_ADMIN_FIELD_VALUE

    • 両方の環境変数が設定されている場合、ログイン処理は OP が返すプロファイルに指定された属性が含まれており、かつその値が user.isAdmin = true に一致する場合、 OVERLEAF_OIDC_IS_ADMIN_FIELD そしてその値が一致する場合、 OVERLEAF_OIDC_IS_ADMIN_FIELD_VALUEそうでない場合は user.isAdminfalseに設定されます。もし OVERLEAF_OIDC_IS_ADMIN_FIELD の実行が email に設定されている場合、属性の値として emails[0].value がマッチチェックに使用されます。

あなたの OpenID プロバイダのリダイレクト URL は次のとおりです https://my-overleaf-instance.com/oidc/login/callback.

chevron-rightサンプル variables.env ファイルhashtag

最終更新