Oracle Identity Federationは、複数ドメインからなるアイデンティティ・ネットワークでのシングル・サインオンおよび認証を可能にする、スタンドアロンの自己完結型フェデレーション・サーバーです。この章の内容は次のとおりです。
注意: この章で説明する構成例および推奨設定は解説用のものです。各自のユースケース・シナリオを検討し、パフォーマンスの向上が可能な構成オプションを判断してください。 |
Oracle Identity Federationは、複数ドメインからなるアイデンティティ・ネットワークでのシングル・サインオン(SSO)および認証を可能にする、スタンドアロンの自己完結型フェデレーション・サーバーです。フェデレーション・シングル・サインオン機能は、SAML 1.x/SAML 2.0/WS-Fedプロトコルをベースとしています。サーバーは、WebLogic管理対象サーバーにデプロイされたJ2EEアプリケーションです。そのため、ソリューション・セットに含まれる他のOracle Identity Management製品を実装しているかどうかにかかわらず、異機種環境や異業種提携におけるフェデレーションが可能になります。
詳細は、Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドを参照してください。
この項では、LDAPのチューニングに使用できる次の構成設定について説明します。
最適なパフォーマンスを得るため、Oracle Identity Federationのチューニングを行う前に、第2章「主なパフォーマンス分野」でチューニング構成を確認してください。
Oracle Identity Federationがユーザー・データ・ストア、フェデレーション・データ・ストアまたは認証エンジンとしてLDAPサーバーと統合されている場合、サーバーは後続のリクエストで再利用可能なLDAP接続のプールを保持します。
Oracle Identity Federationは、LDAPサーバーに対して次の種類の操作を実行します。
ユーザー・データ・ストア
アサーション・マッピング中のユーザーの検索
アサーション作成時にユーザー・レコードから属性を取得
認証エンジン
ユーザーの検索
認証操作中のユーザー資格証明の検証
フェデレーション・データ・ストア(使用する場合)
フェデレーション・レコードの作成
フェデレーション・レコードの検索
フェデレーション・レコードの更新または削除。LDAP接続プールは次の方法で構成できます。
最大接続数を指定します。これは、プールに保持できるLDAP接続の数を示します。
接続待機タイムアウトを設定します。これは、プールに使用可能なLDAP接続がなく、プールが最大容量に達している場合に、スレッドがLDAP接続の取得を再試行するまで待機する時間です。
ユーザー・ストア、フェデレーション・ストア、およびLDAP認証エンジンの詳細は、Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのOracle Identity Federationの構成に関する項を参照してください。
Oracle Identity Federationがユーザー・データ・ストア、フェデレーション・データ・ストアまたは認証エンジンとしてLDAPサーバーと統合されている場合、LDAPランタイム接続を構成できます。詳細は、Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのOracle Identity Federationの構成に関する項を参照してください。
LDAP接続を構成するには次の方法があります。
LDAP非アクティブ時間を設定します。これにより、LDAP接続がアクティブでないために削除されるまでプールに保持しておく期間をOracle Identity Federationに指示します。長期的には、非アクティブの状態が長く続いたためにLDAPサーバーが接続をクローズすることがあります。チェックしないままだと、これがエラーの原因となり、Oracle Identity Federationのパフォーマンスに影響を与える可能性があります。
Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのLDAP非アクティブ設定の構成に関する項を参照してください。
LDAP読取りタイムアウトを設定します。LDAPサーバーは応答しなくなることがありますが、その場合、スレッド/ユーザーはレスポンスまたはエラーを待つことになります。サーバーが応答していないときにエラーを長時間待つことがないよう、Oracle Identity FederationでLDAP接続に対する読取りタイムアウト・プロパティを設定します。読取りタイムアウトの時間内にLDAPサーバーが応答しない場合は、エラーが生成されます。Oracle Identity Federationは、接続をクローズし、新しい接続をオープンして、LDAPコマンドを再発行します。
Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのLDAP読取りタイムアウト設定の構成に関する項を参照してください。
高可用性(HA)LDAPフラグを設定します。Oracle Identity FederationがHAモードでデプロイされたLDAPサーバーと統合されている場合、Oracle Identity Federationの構成の際に、LDAPサーバーがHAモードであることを指定する必要があります。
Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドの高可用性LDAPサーバーの構成に関する項を参照してください。
Oracle Internet Directoryをフェデレーション・データ・ストアとして使用する場合、Oracle Identity Federationは、アカウント・リンク情報を含むフェデレーション・レコードの作成、検索、更新および削除を行います。
Oracle Identity Federationは、Oracle Internet Directoryとやり取りする際に特定の問合せを使用するため、Oracle Internet Directoryでフィルタを作成するとパフォーマンスが向上します。Oracle Internet Directoryをフェデレーション・データ・ストアとして使用する場合は、LDAPサーバーをチューニングして、参照操作のパフォーマンスを高めることができます。Oracle Identity Federationサーバーは、フェデレーション・ストアを使用してフェデレーテッド・アイデンティティ・レコードを保存するように構成できます。
フェデレーション・サーバーは、このストアを使用して次の操作を行います。
様々な問合せによるフェデレーション・レコードの参照
フェデレーション・レコードの作成
フェデレーションの削除
デフォルトで用意されているOracle Identity Federation関連のorclinmemfiltprocess
フィルタ(objectclass=orclfeduserinfo)
に加えて、一部のOracle Identity Federation環境では次の形式のフィルタも有効なことがあります。
(orclfedserverid
=local_oif_server_id
)
(orclfedproviderid=
providerid_of_remote_server
)
(orclfedfederationtype=
n
)
orclfedserverid
は、問合せを作成しているOracle Identity Federationサーバーを表します。orclfedproviderid
は、リモートSAMLサーバーの識別子です。orclfedfederationtype
は、1
または3
です。Oracle Identity Federationがアイデンティティ・プロバイダであり、リモート・プロバイダがサービス・プロバイダである場合は、orclfedfederationtype
の値として1
を使用します。Oracle Identity Federationがサービス・プロバイダであり、リモート・プロバイダがアイデンティティ・プロバイダである場合は、3
を使用します。
多くのリモートSAMLサーバーと連携するようにデプロイメントを構成できるため、orclfedproviderid
フィルタおよびorclfedfederationtype
フィルタが複数存在する場合もあります。
次に例を示します。
(orclfedserverid=my_oif_server)
(orclfedproviderid=http://server.example.com:7499/fed/idp)
(orclfedproviderid=http://server2.example.com:7492/fed/idp)
(orclfedfederationtype=1)
(orclfedfederationtype=3)
この項では、データベースのチューニングに使用できる構成設定について説明します。
Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドの追加のRDBMS構成に関する項を参照してください。
Oracle Identity Federationは、次のような各種操作を実行する際に、J2EEデータ・ソースを使用してデータベースとやり取りします。
ユーザー・データ・ストア内のユーザー・レコードの検索
ユーザー・データ・ストア内のユーザー・レコードの属性の取得
フェデレーション・データ・ストア内のOracle Identity Federationレコードの検索、作成または削除
セッション・データ・ストアまたはメッセージ・データ・ストア内のOracle Identity Federation一時レコードの検索、作成または削除。(一時レコードは、ユーザー・セッション、アーティファクト・レコード、フェデレーション・プロトコル、セッション状態のいずれかです。)
Oracle Identity Federationで使用可能なデータ・ソースをOracle WebLogic管理コンソールで作成する際に、パフォーマンスが向上するよう、最大および最小の接続設定をチューニングする必要があります。各自のユースケース・シナリオを検討し、アプリケーションのパフォーマンス向上が可能な接続設定を判断してください。
Oracle Identity Federationがセッション・データ・ストアとして使用するRDBMSと統合されている場合、サーバーは実行時のパフォーマンスを高めるためにキャッシュ・メカニズムを使用します。これにより、最近使用したセッション・オブジェクトへの参照をメモリー内に保持できるため、データベースへの読取りアクセスが不要になります。
RDBMSのセッション・キャッシュを最適化するには、次の項目を構成します。
同時にメモリーに保持されるセッション・オブジェクトの数
特定のセッション・オブジェクトがメモリーに保持される時間
注意: Oracle Identity Federationがロード・バランサを使用した高可用性(HA)モードの場合、常に正確なデータがキャッシュに反映されるように、スティッキー・セッションを有効にする必要があります。 |
Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのRDBMSセッション・キャッシュの構成に関する項を参照してください。
RDBMSに格納されるデータの量を減らすために、Oracle Identity Federationはデータを圧縮してからデータベースに格納する機能を備えています。圧縮可能なデータには次の3種類があります。
SSOアーティファクト・プロファイルのAuthnRequest
: Oracle Identity FederationがLiberty 1.xプロトコルのIdPとして機能する場合、サーバーは、アーティファクト・プロファイルが使用されたときに、AuthnRequest
メッセージをRDBMSに格納します。
SSOアーティファクト・プロファイルのアサーション・レスポンス: Oracle Identity FederationがSSOプロトコルのIdPとして機能する場合、サーバーは、アーティファクト・プロファイルが使用されたときに、アサーションを含むレスポンス・メッセージをRDBMSに格納します。アサーションに属性が含まれている場合は、これを有効にする必要があります。
ユーザー・セッション・データ: Oracle Identity Federationは、実行時にユーザー関連のセッション・データを格納します。(カスタム認証エンジンで設定されているか、Oracle Identity Federationがサービス・プロバイダであったときに属性アサーション・ストレージが有効になっていたために)複数の属性がユーザー・セッションに格納される場合、圧縮を使用する必要があります。
Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのRDBMSデータ圧縮の構成に関する項を参照してください。
Oracle Identity FederationがOracle HTTP Server(OHS)を介して動作する場合、HTTP Serverの構成をチューニングすることでパフォーマンスを改善できます。Oracle HTTP Serverの詳細は、『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』を参照してください。
OHSのhttpd.confファイルにある次のパラメータを変更できます。その他のOracle HTTPチューニング構成については、第5章「Oracle HTTP Serverのパフォーマンス・チューニング」を参照してください。各自のユースケース・シナリオを検討し、どのような設定が適切であるかを判断してください。
Timeout
KeepAlive
MaxKeepAliveRequests
KeepAlive TimeOut
MinSpareServers
MaxSpareServers
StartServers
MaxClients
MaxRequestPerChild
これらのパラメータを変更した後、OHMを保存して再起動します。
Security Assertion Markup Language(SAML)プロトコルは、Simple Object Access Protocol(SOAP)を使用したリモート・サーバーとのやり取りを必要とします。
Oracle Identity Federationサーバーは、SAMLリクエストの送信およびSAMLレスポンスの受信にSOAPプロトコルを使用します。
パフォーマンスを最適化するには、次のSOAP接続を構成します。
Oracle Identity Federationが同時にオープンできるSOAP接続の合計最大数
Oracle Identity Federationが特定のリモート・サーバーに対して同時にオープンできるSOAP接続の最大数
詳細は、Oracle Fusion Middleware Oracle Identity Federationの管理者ガイドのSOAPバインディングに関する項を参照してください。
Oracle Identity FederationのSAMLプロトコルおよびWS-Fedプロトコルでは、メッセージの真正性、およびメッセージが改ざんされていないことを保証するために、XMLデジタル署名を使用します。
可能であれば、アサーションまたはレスポンス(あるいはその両方)に署名して、変更が加えられるのを防止してください。メッセージにXMLデジタル署名がない場合、アーカイブされる監査済メッセージには、メッセージの真正性および整合性を証明するデータは含まれません。
次の場合は、アサーションまたはレスポンス(あるいはその両方)に署名しないようにOracle Identity Federationを構成するほうがよいことがあります。
パフォーマンスを改善する必要がある場合
SOAP通信に対してSSL認証を行うSSLが有効になっている場合
XMLデジタル署名を無効にすることが企業のセキュリティ規定に合致している場合
注意: SAML 2暗号化が使用されている場合を除き、暗号化アサーションの内容は参照可能です。アサーションの暗号化はオプションですが、XML暗号化はリソース消費量が多く、パフォーマンス低下の原因となります。 |
SAML仕様で定義されたシングル・サインオン・プロファイルには次の2種類があります。
POSTプロファイル
POSTプロファイルでは、アサーションはユーザーのブラウザを介して遷移します。したがって、アサーションまたはレスポンス(あるいはその両方)に署名して、内容が変更されていないことを保証する必要があります。
注意: パフォーマンスを改善する必要があり、かつPOSTプロファイルの使用が企業のセキュリティ規定に合致しているのであれば、POSTプロファイルを使用するようにOracle Identity Federationを構成することがパフォーマンス改善の方法となる場合もあります。 |
アーティファクト・プロファイル
アーティファクト・プロファイルでは、アイデンティティ・プロバイダがIdPのローカル・ストア内のアサーションを参照するランダムな識別子を作成します。(アサーションは、アイデンティティ・プロバイダからサービス・プロバイダへ直接提供されます。)この識別子は、ユーザーのブラウザを介してサービス・プロバイダに提示されます。サービス・プロバイダは、アイデンティティ・プロバイダにアクセスして識別子の参照を解除し、対応するアサーションを取得します。
SPからIdPへのSOAP接続が、SSLサーバー証明書を使用したSSLプロトコルで暗号化されている場合、SPはIdPを認証し、通信内容が改ざんされていないことを証明します。この場合は、トランスポート層でメッセージの真正性および整合性を実現しているため、SAMLのレスポンスおよびアサーションに対するXMLデジタル署名はオプションです。
メッセージにXMLデジタル署名がない場合、アーカイブされる監査済メッセージには、メッセージの真正性および整合性を証明するデータは含まれません。
注意: アーティファクト・プロファイルを使用すると、サービス・プロバイダとアイデンティティ・プロバイダの間で余分な通信フローが発生するため、パフォーマンスが低下する可能性があります。 |