4 Oracle RADIUS Agentのチューニングおよびトラブルシューティング
トピック
4.1 チューニング
RADIUSエージェントのパフォーマンスは、いくつかの要因によって異なります。ハードウェア、OSレベルのチューニング、ネットワーク・レイテンシ、LDAPのパフォーマンス・チューニング、Oracle Advanced Authentication (OAA)などの外部要因を適切にチューニングする必要があります。このページでは、RADIUSエージェント内の一般的な重要チューニング・パラメータのみをまとめています。構成パラメータの完全なリストは、「構成プロパティ」を参照してください
トピック
4.1.1 JVM
新しいコンテナを起動するときに、docker runコマンドからJVMオプションをRADIUSエージェントに渡すことができます。例: (ここで指定する値はサンプルの表示用です):
-e java_args='-Xms1g -Xmx4g -Duser.language=en'
すべてのjvmパラメータも同様に指定できます。java.propertiesファイルを使用したJVMオプションの指定:
あるいは、jvmパラメータの長いリストを指定する場合は、構成/ディレクトリ内に存在する必要があるjava.propertiesファイルを使用して指定することもできます(たとえば、ボリュームが/home/opc/Radius:/u01/oracle/user_projectsとしてマップされている場合、java.propertiesファイルは/home/opc/Radius/config/の下に事前に存在している必要があります)。このファイルは、dockerコンテナの起動時に自動的に選択されます。
java.propertiesのコンテンツの例は次のようになります:
java_args= -server -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xms1g -Xmx4g -Duser.language=en
4.1.2 RADIUSエージェント構成
RADIUSエージェントでチューニングするには、次の構成プロパティを使用できます:
リスナー
- numberOfWorkerThreads - 許可されるワーカー・スレッドの最大数。これは、ワーカー・スレッドの基礎となるThreadPoolExecutorの最大PoolSize値にマップされます。
- coreThreadPoolSize - ワーカー・スレッドの基礎となるThreadPoolExecutorのCorePoolSize値。これは、基礎となるThreadPoolExecutorが保持するワーカー・スレッドの最小数です。
- threadPoolKeepAliveTime - ワーカー・スレッドの基礎となるThreadPoolExecutorのスレッド・プールのキープ・アライブ時間(ミリ秒)。最小スレッド数(coreThreadPoolSize)を超えるスレッド・プールが構成されている場合、このthreadPoolKeepAliveTimeより長くアイドル状態になっている超過スレッドは終了します。これにより、スレッド・プールがアクティブに使用されていないときのリソースの消費量を減らすことができます。プールがあとでアクティブになると、新しいスレッドが構築されます。値0は、作成された超過スレッドがクリーン・アップされないことを意味するため、0を使用しないことをお薦めします。
- threadPoolMaxQueueSize - ワーカー・スレッドのThreadPoolExecutorで使用される基礎となるキューに対して許可される最大作業キュー・サイズ値。0は、キューがバインドされていないことを意味します。
ノート:
numberOfWorkerThreadsおよびcoreThreadPoolSizeは、サーバー・ハードウェアで使用可能なCPUコアに基づいて構成する必要があります。LDAP接続プール
- initSize - このプロパティは、接続プールの初期化時に作成される接続の数を示します
- maxSize - プールが保持する接続の最大数。minSizeがmaxSizeより大きい場合、minSizeはmaxSizeに設定されます。
- minSize - プールが保持する接続の最小数。initSizeがminSizeより小さい場合、接続プールはminSize接続で初期化されます。
- poolIncrementSize - すべての既存の接続が使用中であり、接続数がmaxSize未満であるときに確立される接続の数
4.2 トラブルシューティングのヒント
トピック:
4.2.1 RADIUSクライアントがOracle RADIUS Agentに接続できない
次のトラブルシューティングのヒントを使用できます:
- RADIUSクライアント・ホストからOracle RADIUS Agentホストとポートにアクセスできることを確認します
- Oracle RADIUS Agentのログをチェックし、RADIUSクライアントの登録の問題が原因でOracle RADIUS Agentがリクエストを削除しているかどうかを確認します。Oracle RADIUS Agentでクライアント登録を修正できます。
- 正しいホスト名またはIPアドレスを使用して、RADIUSクライアント・アプリケーションがOracle RADIUS Agentに正しく登録されていることを確認します
- RADIUSクライアント側で共有シークレットを検証し、それが正しいことを確認します
- Oracle RADIUS Agentのログ・レベルをFINEまたはFINESTに変更し、Oracle RADIUS Agentのログを確認します
4.2.2 RADIUSリクエストでユーザーのプライマリ認証が失敗する
次のトラブルシューティングのヒントを使用できます:
- Oracle RADIUS Agentのログをチェックして、基礎となるエラーを見つけます。
- RADIUSクライアント側で共有シークレットを検証し、それが正しいことを確認します。クライアント側の共有シークレットが正しくないと、このエラーが発生する可能性があります。
- Oracle RADIUS Agentのログ・レベルをFINEまたはFINESTに変更し、Oracle RADIUS Agentのログを確認します。
4.2.3 RADIUSリクエストでユーザーのMFA認証が失敗する
次のトラブルシューティングのヒントを使用できます:
- Oracle RADIUS Agentのログをチェックして、基礎となるエラーを見つけます。
- Oracle Advanced Authenticationが稼働していることを確認します。
- Oracle Advanced Authentication構成ステップが正しく実行され、Oracle RADIUS Agent構成に存在します。
- ファクタは、ユーザーのOracle Advanced Authenticationにシードされています
- RADIUSクライアントがRADIUSチャレンジをサポートしていることを確認し、サポートしていない場合は同期認証モードを使用する必要があります。
- Oracle Advanced認証からエラーが発生した場合は、Oracle Advanced認証ログをチェックして詳細を取得します。
- Oracle RADIUS Agentのログ・レベルをFINEまたはFINESTに変更し、Oracle RADIUS Agentのログを確認します
4.2.4 RADIUSリクエストで時間がかかる
次のトラブルシューティングのヒントを使用できます:
- Oracle RADIUS Agentアクセス・ログをチェックして、どのレイヤーに時間がかかっているかを調べます。
- RADIUSクライアントとOracle RADIUS Agent間のネットワーク・レイテンシを排除します。
- 対応するドキュメントを参照して、LDAPおよびOracle Advanced Authenticationが正しくチューニングされていることを確認します。
- 必要に応じて、Oracle RADIUS Agentでチューニングを実行します
4.2.5 CLIユーティリティを使用した管理者RESTエンドポイントの有効化
管理者のブロックを解除して、構成およびRADIUSクライアントを管理するためにHTTP-REST管理にアクセスする場合は、CLIユーティリティのみを使用する必要があります。たとえば、管理者ユーザーまたは管理者グループが変更された場合は、CLIユーティリティを使用して管理者ユーザーまたは管理者グループのいずれかをリセットし、HTTP-RESTエンドポイントを再度起動する必要があります。同様に、LDAPの詳細が変更された場合は、管理者ユーザーがHTTP-RESTエンドポイントを起動できるように、CLIユーティリティを使用してLDAPの詳細をリセットできます。
ノート:
dockerコンテナからCLIユーティリティを使用する必要があります。コマンドライン・ユーティリティは、次の9つの操作を提供します:
- 構成のリセット
- 管理者ユーザーのリセット
- 管理者グループのリセット
- 管理者ユーザーおよびグループの出力
- 構成の出力
- LDAP構成のリセット
- HTTPSシークレット・ストア・パスワードの出力
- ブートストラップ・シークレット・ストア・パスワードの出力
- ブートストラップ・シークレット・ストア・パスワードのリセット
ノート:
環境変数ORACLE_RADIUS_AGENT_COMMON_DIR
は、構成ディレクトリの場所を指すように設定する必要があります。
構成のリセット
resetConfigオプションは、oracleRadiusAgent.json
の構成をリセットします。resetConfigオプションは、oracleRadiusAgent.json
内の既存の構成をすべて削除します。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli resetConfig
管理者ユーザーのリセット
resetAdminUsersオプションは、Oracle RADIUS Agent用に定義された管理者ユーザーをリセットします。デリミタ';'で区切られた管理者ユーザーを引数として渡す必要があります。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli resetAdminUsers "uid=adminUser,ou=People,dc=example,dc=com;uid=test,ou=People,dc=example,dc=com"
管理者グループのリセット
resetAdminGroupsオプションは、Oracle RADIUS Agent用に定義された管理者グループをリセットします。デリミタ';'で区切られた管理者グループを引数として指定する必要があります。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli resetAdminGroups "group1;group2"
管理者ユーザーおよびグループの出力
printAdminUsersGroupsオプションは、Oracle RADIUS Agent用に定義されたユーザーおよびグループのリストを出力します。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli printAdminUsersGroups
構成の出力
printConfigurationオプションは、oracleRadiusAgent.json
に存在するOracle RADIUS Agentの構成の詳細を出力します。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli printConfiguration
ORACLE_RADIUS_AGENT_COMMON_DIR
LDAP構成のリセット
resetLdapConfigは、oracleRadiusAgent.json
に存在するプライマリ・オーセンティケータの詳細をリセットします。新しいLDAP url
、dn
、password
、truststore
(Base 64証明書)、truststore type
(JKSまたはPKC12、ベース64証明書の場合はオプション)などのLDAP詳細を古いLDAP url
とともに引数として指定する必要があります。Dn
およびpassword
が指定されていない場合は、loginAttr
およびbaseDN
とともに、既存のLDAP構成の詳細から選択されます。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli resetLdapConfig -oldLdapUrl "ldap://slc14xzv.us.oracle.com:1389" -newLdapUrl "ldaps://slc10nty.us.oracle.com:636" -dn "Administrator@ipf.com" -password "Welcome123" -truststore "-----BEGIN CERTIFICATE-----\nMIIF4DCCBMigAwIBAgITSwAAAALbKU4kkH5mlgAAAAAAAjANBgkqhkiG9w0BAQUF\nADBDMRMwEQYKCZImiZPyLGQBGRYDY29tMRMwEQYKCZImiZPyLGQBGRYDaXBmMRcw\nFQYDVQQDEw51cy1TTEMxME5UWS1DQTAeFw0yMDA3MjIxMjQxMzdaFw0yMTA3MjIx\nMjQxMzdaMCExHzAdBgNVBAMTFnNsYzEwbnR5LnVzLm9yYWNsZS5jb20wggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Ze3otkd+5CLAHEsFK0+rYvqrhfHP\njh46SyANv8qTYzht7k00ijZLOftfDw98wUDTUc+8GQ6O/UZPtDuEdPHpUGVz0G9/\nJZqiMFcFCBMc5gCrc8UYGeQzTVAfFlx6B/2rbTVDCND3huMZO0pIt+/QM1xJmtuA\ns/6lUMyJAuK23A+qIjcvhHvzGu196384WGMlr43N85j2Git+u6hEa5xv8aWxO1ne\nFkS1pb1s153EGqH4V849hJHI+v0nyOz7Ex7mjjl8tUdbfaIgXgWWVDJQCZ4airwk\n3PcK53bXSO1gxqhAUDKSLK2AYLtyu9fdhDLfZyqQhOHzKaHms+me111LAgMBAAGj\nggLtMIIC6TAvBgkrBgEEAYI3FAIEIh4gAEQAbwBtAGEAaQBuAEMAbwBuAHQAcgBv\nAGwAbABlAHIwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMA4GA1UdDwEB\n/wQEAwIFoDB4BgkqhkiG9w0BCQ8EazBpMA4GCCqGSIb3DQMCAgIAgDAOBggqhkiG\n9w0DBAICAIAwCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBLTALBglghkgBZQMEAQIw\nCwYJYIZIAWUDBAEFMAcGBSsOAwIHMAoGCCqGSIb3DQMHMB0GA1UdDgQWBBSuJVQB\nyLox1hotAXeKwWOg1ZOPgTAfBgNVHSMEGDAWgBSue+W/t+6CQmrn/6+ySlpXnNu7\npjCByQYDVR0fBIHBMIG+MIG7oIG4oIG1hoGybGRhcDovLy9DTj11cy1TTEMxME5U\nWS1DQSxDTj1zbGMxMG50eSxDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2Vydmlj\nZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1pcGYsREM9Y29tP2Nl\ncnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0\ncmlidXRpb25Qb2ludDCBvAYIKwYBBQUHAQEEga8wgawwgakGCCsGAQUFBzAChoGc\nbGRhcDovLy9DTj11cy1TTEMxME5UWS1DQSxDTj1BSUEsQ049UHVibGljJTIwS2V5\nJTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1pcGYs\nREM9Y29tP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0\naW9uQXV0aG9yaXR5MEIGA1UdEQQ7MDmgHwYJKwYBBAGCNxkBoBIEEE/w10Ud3xFB\nlF4D6wUf4FeCFnNsYzEwbnR5LnVzLm9yYWNsZS5jb20wDQYJKoZIhvcNAQEFBQAD\nggEBAFIjY72T7aoGYliW+ZTuGC/Js07cuwB4LYgjO+MKz82sTJyb9AYhfzmmr1fq\nsVz6hCWz6OmDHX9oDRxa21kq4e3aJmGqQ4NbW+z4hEtBWWWrW7uG4p6CDuB0aAF2\np5IIscXqQpqH0yJC5aABUHCQWJ2225joNPBeR8vLpa0Wx3raV6GbDhczlxAVWdcA\nGpSkKgajj0MPnhLGHtMvjSJbwcEqw1si6bg5yYUTOEsURaxk2YMRKu/5GXGCX0RR\n30b/3Cu9HJap3Gw4a+4bK4zN11qybZqbwLzyloS4I3IMvAA1BD3wMo3D3JDU1xfQ\nzt+1lcqqaXJ9iuD2/UwJYR7uFI4=\n-----END CERTIFICATE-----"
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli resetLdapConfig -oldLdapUrl "ldap://slc14xzv.us.oracle.com:1389" -newLdapUrl "ldaps://slc10nty.us.oracle.com:636" -truststore "/u01/oracle/cert/orakeystore.p12" -truststoreType "PKCS12" -truststorePassword welcome
HTTPSシークレット・ストア・パスワードの出力
printHTTPSSecretStorePasswordオプションは、HTTPS自己署名シークレット・ストア・パスワードを出力します。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli printHTTPSSecretStorePassword
ブートストラップ・シークレット・ストア・パスワードの出力
printBootstrapSecretStorePasswordオプションは、ブートストラップ・シークレット・ストア・パスワードを出力します。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli printBootstrapSecretStorePassword
ブートストラップ・シークレット・ストア・パスワードのリセット
resetBootstrapSecretStorePasswordオプションは、ブートストラップ・シークレット・ストア・パスワードをリセットします。新しいパスワードを引数として指定する必要があります。
java -cp /u01/oracle/idmradius/oracleradiusagent.jar -DORACLE_RADIUS_AGENT_COMMON_DIR=/u01/oracle/user_projects oracle.idm.radius.util.ORACli resetBootstrapSecretStorePassword <new_password>