3.3. Elytron でのアイデンティティーの切り替え


3.3.1. サーバー間の Jakarta Enterprise Beans コールでのアイデンティティの切り替え

デフォルトでは、アプリケーションサーバーにデプロイされた Jakarta Enterprise Beans にリモート呼び出しを行う場合、リモートサーバーの認証に使用されるアイデンティティーはソースサーバーで使用されていたものと同じになります。場合によっては、異なるアイデンティティーのセキュリティーコンテキスト内でリモートセキュアな Jakarta Enterprise Beans を実行することがあります。

Elytron API を使用して、サーバー間の Jakarta Enterprise Beans 呼び出しのアイデンティティーを切り換えることができます。これを実行すると、API 呼び出しでプログラムに従って指定されたアイデンティティーを使用して、接続上で受信されるリクエストは新しいリクエストとして実行されます。

以下のコード例は、リモート Jakarta Enterprise Beans の認証に使用されるアイデンティティーを切り替える方法を示しています。securityDomain.authenticate() メソッドで渡される remoteUsername および remotePassword 引数は、ターゲットサーバーで認証に使用されるアイデンティティーのクレデンシャルです。

例: サーバー間の Jakarta Enterprise Beans コールでのアイデンティティの切り替え

SecurityDomain securityDomain = SecurityDomain.getCurrent();
Callable<T> forwardIdentityCallable = () -> {
    return AuthenticationContext.empty()
            .with(MatchRule.ALL,
                    AuthenticationConfiguration.empty()
                    .setSaslMechanismSelector(SaslMechanismSelector.ALL)
                    .useForwardedIdentity(securityDomain))
            .runCallable(callable);
};

securityDomain.authenticate(remoteUsername, new PasswordGuessEvidence(remotePassword.toCharArray())).runAs(forwardIdentityCallable);

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.