ユーザー認証
Related information
/ebx-authentication サーブレット
/ebx-authentication サーブレットは、EBX®でのユーザー認証を処理する中心的なポイントです。その役割は次のとおりです。
-
ユーザーが初めてログインするときに、認可トークンを作成します。
-
ユーザーがログアウトするときに、認可トークンを取り消します。
-
許可されたユーザーを適切なページにリダイレクトします。さらに、構成に応じて、次のこともできます。
-
ログイン画面を表示してログインプロセスを処理します。
-
権限のないユーザーをカスタムログイン画面にリダイレクトします。
-
ログアウトしているユーザーをカスタム終了ページにリダイレクトします。
認可トークン
/ebx-authentication サーブレットはユーザーの認証に成功すると、認証情報を含むトークンを作成し、それをセッション Cookie に保存します。
これは、認証がブラウザーのすべてのタブ間で共有されることを意味します。
-
ユーザーがブラウザーのタブですでに認証されており、別のタブで EBX® を開いた場合、再度認証を求められることはありません。
-
同じブラウザーの異なるタブに異なるユーザーでログインすることはできません。
Cookie のプロパティ
トークンを含む Cookie には次のプロパティがあります。
HttpOnly
|
カスタマイズできません。ブラウザの JavaScript コードでは Cookie を読み取ることはできません。
|
Secure
|
ebx.properties のプロパティ ebx.security.authorizationCookie.attribute.secure を介してカスタマイズできます。Cookie を HTTPS 経由のみで送信できるか、HTTP 経由でも送信できるかを定義します。
|
SameSite
|
ebx.properties のプロパティ ebx.security.authorizationCookie.attribute.sameSite を介してカスタマイズできます。外部サイトからの閲覧時に Cookie を送信できるかどうかを定義します。
|
以下も参照してください。:
認証プロセスのカスタマイズ
デフォルトでは、EBX® はビルトインのディレクトリとログインページを使用します。ビルトインのディレクトリをカスタムディレクトリに置き換えることを強くお勧めします。
ディレクトリのカスタマイズ
EBX® にはビルトインのディレクトリが用意されていますが、これを置き換えることを強くお勧めします。
-
Directoryをオーバーライドするクラスを作成します。 -
DirectoryFactoryをオーバーライドするクラスを作成します。 -
ebx.propertiesのプロパティebx.directory.factoryを使用して、ファクトリーを宣言します。
以下も参照してください。:
ログインページのカスタマイズ
EBX® にはビルトインのログインページが用意されていますが、これを置き換えることも可能です。これを行うには、
ebx.properties のプロパティ ebx.security.loginPage.url を使用してカスタムログインページを宣言します。
ユーザーの認証は、カスタムログインページに依存します。ユーザーが認証されると、
/ebx-authentication/login ページにリダイレクトされます。次に、EBX® は認可トークンを作成する前に Directory.authenticateUserFromHttpRequest メソッドを呼び出します。これが機能するには次の点が必要です。
-
/ebx-authentication/loginを指すリクエストには、Cookie、HTTP ヘッダー、クエリパラメーターなど、ユーザーを認証するのに十分な情報が含まれている必要があります。 -
ディレクトリはオーバーライドする必要があり (ディレクトリのカスタマイズを参照)、
Directory.authenticateUserFromHttpRequestメソッドの実装は、受信リクエストから情報を読み取る必要があります。適切なUserReferenceを返すようにします。
注意:
EBX® がユーザーをカスタムログインページにリダイレクトする場合、
resume クエリパラメーターも URL に追加します。この resume クエリパラメーターには、/ebx-authentication/login を指す URL といくつかの追加パラメーターが含まれており、ユーザーを /ebx-authentication/login にリダイレクトするために優先的に使用する必要があります。
以下も参照してください。:
シングルサインオン (SSO)
シングルサインオンにより、ユーザーは個別のログイン資格情報を管理する代わりに、一元化されたIDプロバイダー (IdP) を介して一度認証するだけで、複数のアプリケーションやサービスにアクセスできます。この統合により、ログインプロセスが効率化され、パスワード関連のセキュリティ侵害のリスクが軽減され、シームレスなアクセスが可能になることでユーザーエクスペリエンスが向上します。
以下も参照してください。:
EBX® は SAML 2.0 および OpenID Connect プロトコルをサポートしています。これらの機能を有効にするには、IDプロバイダーでEBX®をアプリケーションとして宣言および構成する必要があります。構成要件は、有効になっているプロトコルによって異なります。SAML 2.0 を使用する場合、起動時に sp-descriptor.xml が生成され、シームレスな構成を確実にするためにIDプロバイダーにインポートする必要があります。
リバースプロキシ構成の場合、サーバーのベースURLは両方のプロトコルのプロパティで構成する必要があります。
注意:
一度に1つのプロトコルのみを構成できます。
注意:
IdPから開始されたログアウトプロセスは、ログアウトに使用されたブラウザーにのみ適用されます。
注意:
デフォルトのセキュリティ設定では、クロスサイトPOSTリクエスト中にCookieが送信されるのを防ぐため、SSO認証がブロックされます。この問題を回避するには、認可Cookieを
Lax に設定します: ebx.security.authorizationCookie.attribute.sameSite=Lax。
構成されたプロトコルを介してログイン/ログアウトを開始するために使用されるエンドポイントは次のとおりです。
http[s]://<host>[:<port>]/ebx-authentication/rest/sso/v1/login
注意:
resume クエリパラメーターは、認証が完了した後にクライアントがリダイレクトされるべきエンコードされたURLを保持するために使用できます。
http[s]://<host>[:<port>]/ebx-authentication/rest/sso/v1/logout
内部ディレクトリを使用する組み込みまたはカスタムログインページにアクセスまたはリダイレクトする必要がある場合は、次のURLを使用できます。
http[s]://<host>[:<port>]/ebx-authentication/login?method=loginPage
SAML 2.0
SAML 2.0 を有効にするには、サービスプロバイダーのプロパティまたは EBX® Container Edition の環境変数を構成し、リポジトリフォルダーにキーストア、idp-descriptor.xml、および sp-descriptor.xml を配置します。
-
キーストア: すべての署名および暗号化操作には、キーストアを構成する必要があります。新しいキーストアを生成するには、次のJava keytoolコマンドを使用します。
keytool -genkeypair -alias ebx.saml -keypass keypass -keystore keystore.p12 -storepass keypass -keyalg RSA -keysize 2048 -validity 3650 -
idp-descriptor.xml: IDプロバイダーからエクスポートされた IDPSSODescriptor XMLファイル。
-
sp-descriptor.xml: 構成されたプロパティを使用してEBX®が起動時に生成する SPSSODescriptor XML ファイル。
構成された
nameId はアサーションから抽出され、EBX®ディレクトリと照合されてユーザーを認証します。したがって、nameId 属性または形式を正確に構成することが重要です。
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST バインディングタイプは、すべての操作に使用されます。
アサーションコンシューマーサービスとシングルログアウトサービスの両方に同じエンドポイントが使用されます。
http[s]://<host>[:<port>]/ebx-authentication/rest/sso/v1/saml2/callback
注意:
プロパティの変更により、新しい sp-descriptor.xml の生成と、既存の keystore.jks および idp-descriptor.xml の読み込みがトリガーされます。
OpenID Connect
OpenID Connect を有効にするには、クライアントプロパティまたは EBX® Container Edition の環境変数を構成します。OpenID を使用する場合:
-
使用されるクライアント認証方法は Client Secret Post です。
-
レスポンスモードは form\_post で、レスポンスタタイプは code です。
リダイレクト操作とログアウト操作の両方に同じエンドポイントが使用されます。
http[s]://<host>[:<port>]/ebx-authentication/rest/sso/v1/oidc/callback