0
1 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
WebLogic Server から Oracle
Database へユーザIDを渡す方法
日本オラ...
2 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。
また、情報提供を唯一の目的と...
3 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
一概に「ユーザー」といっても….
3層アプリケーションの場合
エンドユーザー アプリケーションサーバー...
4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
データベースサーバーはエンドユーザーを知らない
• クラサバ環境では、エンドユーザーはデータベースサー...
5 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
「接続時にクライアントIDを設定」機能とは
• DataSourceをgetConnectionする時...
6 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
データベースサーバーがエンドユーザーを知ると…..
• アプリケーションコードとセキュリティ実装の分離...
7 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
デモ
• 「jdbc/adddrbook」という名前のデータソースのコネクションプールに接続し、
AD...
8 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
参考) Oracle Databaseで情報を見せないようにする機能
• Data Redaction...
9 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
参考) Oracle Databaseの監査機能
• 標準監査証跡
• Unified Auditin...
10 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
「接続時にクライアントIDを設定」機能
11 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
データソース側の設定方法
1. 「データベース資格証明の使用」の有効化
2. 「接続時にクライアント...
12 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
1. 「データベース資格証明の使用」の有効化
• データソースの「構成」タブ
→「Oracle」タブ...
13 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
2. 「接続時にクライアントIDを設定」の有効化
• データソースの「構成」タブ→
「IDオプション...
14 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
アプリケーション側の設定方法
(Database12c利用時のみ)
• weblogic.xmlに以...
15 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
利用時の前提条件
• WebLogic Server 10.3.6(+patch)と12c(12.1...
16 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
参考
• The WebLogic Server Blog
– Data Source Securi...
17 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
18 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Upcoming SlideShare
Loading in...5
×

WebLogic Server から Oracle Database へユーザIDを渡す方法

1,391

Published on

「WebLogic Server から Oracle Database へユーザIDを渡す方法」

2014年5月27日に開催された第47回WebLogic Server勉強会@東京のセッション資料です。Oracle Database がAPユーザを識別する際、CLIENT_IDを使用することができます。WebLogic Server のデータソース便利機能 「接続時にクライアントIDを設定」の使い方を紹介します。この機能は意外と知られていないので、この機会にマスターしてください。

日本オラクル テクノロジー製品事業統括本部 福田 知彦

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,391
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "WebLogic Server から Oracle Database へユーザIDを渡す方法"

  1. 1. 1 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. WebLogic Server から Oracle Database へユーザIDを渡す方法 日本オラクル株式会社 テクノロジー製品事業統括本部 福田 知彦
  2. 2. 2 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中 の社名、商品名等は各社の商標または登録商標である場合があります。
  3. 3. 3 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 一概に「ユーザー」といっても…. 3層アプリケーションの場合 エンドユーザー アプリケーションサーバー データベースサーバー 管理者/ 運用担当 開発者 管理者/ 運用担当 開発者 weblogic sys / system コネクションプール app アクセス(ユーザー認証) ユーザーID 利用者 アクセス対象 利用アカウント
  4. 4. 4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. データベースサーバーはエンドユーザーを知らない • クラサバ環境では、エンドユーザーはデータベースサーバーに直接接続 していたが、アプリケーションサーバーが中間に入り、コネクションプール を使用することで、エンドユーザーがデータベースサーバーから隠ぺいさ れる • データベースにエンドユーザーを伝えるには作り込みが必要 エンドユーザー アプリケーションサーバー データベースサーバー コネクションプール app アクセス(ユーザー認証) ユーザーID でしたが、 「接続時にクライアントIDを設定」機能でエンドユーザー名をデータベース に伝えることができるようになりました
  5. 5. 5 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 「接続時にクライアントIDを設定」機能とは • DataSourceをgetConnectionする時にアプリケーションサー バーにログインしているユーザー名をデータベースに自動的 に伝播する仕組み – WebLogic Serverの場合、認証プロバイダで認証されたユーザー名 – Oracle Databaseの場合、クライアント識別子(Client Identifierアプリ ケーションコンテキスト属性) エンドユーザー アプリケーションサーバー データベースサーバー コネクションプール 接続ユーザー = app クライアント識別子= ユーザーID アクセス(ユーザー認証) ユーザーID
  6. 6. 6 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. データベースサーバーがエンドユーザーを知ると….. • アプリケーションコードとセキュリティ実装の分離 – Oracle Databaseの仮想プライベートデータベース(VPD:Virtual Private Database)機能を利用すれば、アプリケーションから全件検索 してもエンドユーザーが参照権限を持っているデータしか結果として戻 らない • アプリケーションコードが容易に • コーディングミス(忘れ)による情報漏えいリスク軽減 • セキュリティポリシー変更時の対応が楽 • SQLインジェクションなどの攻撃を受けても、情報漏えいの範囲を制限 • データベースのアクセス監査証跡にエンドユーザー名を含め ることが可能 ユーザーIDを渡すとできるようになることの例
  7. 7. 7 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. デモ • 「jdbc/adddrbook」という名前のデータソースのコネクションプールに接続し、 ADDRBOOK表に対してSQLを実行 • 接続ユーザーによって結果の見え方が変わる (Data Redaction機能の利用) 電話帳アプリケーション DataSource ds = (DataSource)context.lookup("jdbc/addrbook"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("SELECT * FROM ADDRBOOK.ADDRBOOK"); ← admin user01→
  8. 8. 8 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 参考) Oracle Databaseで情報を見せないようにする機能 • Data Redaction (Oracle Advanced Security Option機能) – 特定条件により、列の全体もしくは一部をマスキングする機能 • 仮想プライベートデータベース (VPD: Virtual Private Database、Oracle Database Enterprise Edition基本機能) – 特定条件により、特定の行や列のデータを見せないようにする機能 – SQL文にWHERE句を内部的に追加するイメージ
  9. 9. 9 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 参考) Oracle Databaseの監査機能 • 標準監査証跡 • Unified Auditing監査証跡 CLIENT_IDENTIFIERは監査証跡に標準で格納 SQL> select os_username, username, timestamp, client_id, sql_text from dba_audit_trail; OS_USE USERNAME TIMESTAMP CLIENT_ID ------ -------- ------------------- ---------- SQL_TEXT -------------------------------------------------------------------------------- oracle ADDRBOOK 2014/04/17 14:16:32 admin SELECT * FROM ADDRBOOK.ADDRBOOK SQL> select os_username, dbusername, event_timestamp, client_identifier, sql_text from unified_audit_trail; OS_USE DBUSERNA EVENT_TIMESTAMP CLIENT_ID ------ -------- ------------------------------ ---------- SQL_TEXT -------------------------------------------------------------------------------- oracle ADDRBOOK 16-MAY-14 11.08.04.301729 AM admin SELECT * FROM ADDRBOOK.ADDRBOOK
  10. 10. 10 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 「接続時にクライアントIDを設定」機能
  11. 11. 11 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. データソース側の設定方法 1. 「データベース資格証明の使用」の有効化 2. 「接続時にクライアントIDを設定」の有効化 3. WebLogic Serverを再起動
  12. 12. 12 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 1. 「データベース資格証明の使用」の有効化 • データソースの「構成」タブ →「Oracle」タブの「データベ ース資格証明の使用」チェッ クボックスをチェックし、「保 存」ボタンを押します。
  13. 13. 13 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 2. 「接続時にクライアントIDを設定」の有効化 • データソースの「構成」タブ→ 「IDオプション」タブの「接続 時にクライアントIDを設定」 チェックボックスをチェックし 、「保存」ボタンを押します。
  14. 14. 14 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. アプリケーション側の設定方法 (Database12c利用時のみ) • weblogic.xmlに以下の設定を追加 クラス名: oracle.jdbc.OracleSQLPermission ターゲット: clientInfo.OCSID.CLIENTID アクション: (空欄) weblogic.xml <security-permission> <security-permission-spec> grant { permission oracle.jdbc.OracleSQLPermission "clientInfo.OCSID.CLIENTID", "" }; </security-permission-spec> </security-permission>
  15. 15. 15 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 利用時の前提条件 • WebLogic Server 10.3.6(+patch)と12c(12.1.2)で利用可能 • 10.3.6利用時には以下のbugの修正パッチ適用が必要 – Bug 11817754 - FEATURE TO COPY THE WEBLOGIC AUTHENTICATED USER IN THE ORACLE CLIENT ID FIELD • Oracle DatabaseとIBM DB2に対応 • DMS(Dynamic Monitoring Support)未対応のJDBC Driver (例:ojdbc6.jar)の利用が必須 – DMS対応のJDBC Driver(例:ojdbc6dms.jar)では未対応
  16. 16. 16 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 参考 • The WebLogic Server Blog – Data Source Security Part 3 (2012/10/12) • https://blogs.oracle.com/WebLogicServer/entry/data_source_security_ part_3 • http://orablogs-jp.blogspot.jp/2012/11/data-source-security-part-3.html – Data Source Security Part 5 (2012/10/17) • https://blogs.oracle.com/WebLogicServer/entry/data_source_security_ part_5 • http://orablogs-jp.blogspot.jp/2012/11/data-source-security-part-5.html
  17. 17. 17 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  18. 18. 18 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×