- oracle · 2009-03-02 · 24 Проксиаутентификация–eus...
TRANSCRIPT
![Page 1: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/1.jpg)
<Insert Picture Here>
Применение Enterprise User Security Игорь Минеев ,
ведущий консультант в области
информационной безопасности
![Page 2: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/2.jpg)
3. БД не выполняет
авторизацию и аудит
действий конкретных
пользователей
Типичная схема аутентификации
2. Сервер приложений
открывает сессию от имени
служебного пользователя БД
Служебный пользователь “A”
Служебный пользователь “A”
Служебный пользователь “A”
1. Пользователь
проходит
аутентификацию на
сервере приложений
Пул соединений
Oracle DB
![Page 3: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/3.jpg)
3. БД не выполняет
авторизацию и аудит
действий конкретных
пользователей
Типичная схема аутентификации
2. Сервер приложений
открывает сессию от имени
служебного пользователя БД
Служебный пользователь “A”
Служебный пользователь “A”
Служебный пользователь “A”
1. Пользователь
проходит
аутентификацию на
сервере приложений
Пул соединений
Oracle DB
Анонимный доступ негарантирует безопасности !
![Page 4: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/4.jpg)
3. БД выполняет
авторизацию и аудит
действий конкретных
пользователей
Сохранение информации о пользователе
2. Сервер приложений
открывает сессию от имени
служебного пользователя БД и
передает информацию о
пользователе
Служебный пользователь “A”
Служебный пользователь “A”
Служебный пользователь “A”
1. Пользователь
проходит
аутентификацию на
сервере приложений
Пул соединений
Oracle DB
![Page 5: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/5.jpg)
5
Сохранение информации о пользователе
• Существуют три способа передачи учетных
данных пользователей через пул соединений в
базу данных
• Выделенные сессии (Dedicated Sessions)
• Идентификаторы сессии (Session identifiers)
• Прокси аутентификация (Proxy authentication)
![Page 6: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/6.jpg)
6
Выделенные сессии
• Физическое соединение с базой данных
устанавливается на уровне пула соединений
• Соединения могут использоваться многократно
различными сессиями
ods=new OracleOCIConnectionPool;conn=ods.getConnection("scott","tiger");
// код программыconn.close(); conn=ods.getConnection(«imineev",“Welcome1");
![Page 7: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/7.jpg)
7
Выделенные сессии
• Преимущества:
• Сам пользователь и все его действия легко
отслеживаются на уровне БД
• Не надо устанавливать физическое соединение с БД
для каждого пользователя
• Недостатки:
• Каждый раз для выполнения действий пользователя в
БД необходимо организовывать сессию
• Приложение должно иметь информацию о паролях
пользователей в БД
![Page 8: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/8.jpg)
8
Идентификаторы сессии
• Физическое соединение с базой данных и сессии
устанавливаются на уровне пула соединений
• Приложение изменяет контекстконтекст сессии для
каждого пользователя
ods=new OracleOCIConnectionPool;conn=ods.getConnection(“service”,”Welcome1”);
DBMS_SESSION.SET_IDENTIFIER(‘imineev’);// код программы
DBMS_SESSION.SET_IDENTIFIER(‘scott’);
![Page 9: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/9.jpg)
9
Идентификаторы сессии
• Преимущества:
• Идентификаторы могут применяться для присвоения
ролей, срабатывания триггеров и VPD
• Не надо устанавливать даже сессионные соединения с
БД для пользователей
• Приложение не знает пароли пользователей
• Возможен аудит действий пользователя
• Недостатки:
• Для использования механизма ролей в БД необходимо
написание дополнительного программного кода
![Page 10: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/10.jpg)
10
Прокси аутентификация
• Физическое соединение с базой данных и сессии
устанавливаются на уровне пула соединений
• Соединения повторно используются сессиями
Базы Данных
• Прокси аутентификация может проходить тремя
способами:
• Доверительная (Trusted)
• Аутентификация с помощью пароля (Password)
• Аутентификация на основе DN (distinguished name)
![Page 11: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/11.jpg)
11
Прокси Аутентификация - Доверительная
• БД передаются только имена пользователей
• Наиболее простой способ для внедрения
ods=new OracleOCIConnectionPool;
ods.getProxyConnection(OracleOCIConnectionPool.PROXY_USER_NAME,‘imineev');
ALTER USER imineev GRANT CONNECT THROUGH appuser;
![Page 12: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/12.jpg)
12
Прокси аутентификация - Пароль
• Приложение передает имя пользователя и его
пароль БД
ods=new OracleOCIConnectionPool;
ods.getProxyConnection(OracleOCIConnectionPool.PROXY_USER_PASSWORD,’imineev’,’Welcome1’);
ALTER USER imineev GRANT CONNECT THROUGH appuser AUTHENTICATED USING PASSWORD;
![Page 13: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/13.jpg)
13
Прокси аутентификация – Distinguished Name
• Возможно использование EUS
• Можно получить DN пользователя из систем
SSO
ods=new OracleOCIConnectionPool;
userDN=request.getHeader("Osso-User-DN");
ods.getProxyConnection(OracleOCIConnectionPool.PROXY_DISTINGUISHED_NAME,userDN);
ALTER USER ldap_user GRANT CONNECT THROUGH appuser AUTHENTICATED USING DISTINGUISHED NAME;
![Page 14: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/14.jpg)
14
Прокси аутентификация
• Преимущества:
• Идентификаторы могут применяться для присвоения
ролей, срабатывания триггеров и VPD
• Приложение не знает пароли пользователей
• Может использовать EUS
• Конечные пользователи просто определяются на уровне
БД (Аудит + Роли)
• Недостатки:
• Каждый раз для выполнения действий пользователя в
БД необходимо организовывать сессию
![Page 15: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/15.jpg)
Централизованное управление
пользователями (EUS)
• LDAP каталог используется в качестве центрального
хранилища учетных записей пользователей
• Называется Enterprise User Security (EUS)
• Требует Advanced Security Option (ASO)
![Page 16: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/16.jpg)
Авторизация / Корпоративные роли
ENTERPRISE ROLE
DB role
FRCLERK
10g
DB roles
ANALYST
PARKADMIN
Enterprise Role
MANAGEMENT
Contains DB role
FRCLERK and DB
Role PARKADMIN
Enterprise Role
CLERK
Contains DB role
FRCLERK and DB
Role ANALYST
Привязка Глобальных Ролей
через Группы Каталога
Oracle Internet Directory
Oracle Internet Directory илиOVD+MS AD или OVD+SunOne
11g
![Page 17: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/17.jpg)
Контекст сессии
• USERENV • Database sets up
• Attributes:
• Current_user
• Session_user
• Current_schema
• Client_identifier
• External_name
• Proxy_user
• Current_SQL
• ISDBA
• Db_name
• IP_Address
• Network_protocol
• Authentication_type
• SYS_LDAP_USER_DEFAULT • (inetOrgPerson from LDAP)
• Attributes:
• displayName
• o (organization)
• departmentNumber
• employeeNumber
• employeeType
• givenName
• homePhone
• mobile
• pager
• homePostalAddress
• manager
![Page 18: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/18.jpg)
OID – EUS
![Page 19: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/19.jpg)
OVD – EUS
![Page 20: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/20.jpg)
Архитектура Oracle Virtual Directory
Прослушивателиустанавливают соединение с
клиентами
Engine выполняет преобразование
данных,
маршрутизацию, аудит и
обеспечивает безопасность.
Адаптеры обеспечивают
доступ к ID данным
Объединения
![Page 21: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/21.jpg)
21
Enterprise Security Manager
![Page 22: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/22.jpg)
22
Enterprise Security Manager
![Page 23: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/23.jpg)
23
Структура LDAP каталога (EUS)
![Page 24: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/24.jpg)
24
Прокси аутентификация – EUS
• Использование в системе SSO
ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1”,”jdbc:oracle:oci:@orcl”,null);
ods.getProxyConnection(OracleOCIConnectionPool.PROXY_USER_NAME,…);
create user connect_user identified by “Welcome1” ;
grant create session to connect user;
create user shared_user identified globally as ‘’;
alter user shared_user grant connect through connect_user using distinguished name;
![Page 25: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/25.jpg)
Authentication 3rd Party Directory DB OID OVD
(Does Not Require
DIP or DAS)
Password
orapassword
AD + DIP + DAS 9.2.0.3+ 10g+
Password
orapassword
AD + DIP + Password
Filter
9.2.0.3+ 10g+
Password
authpassword
SUN + DIP 10.1+ 10.1.4
Password
authpassword
SUN + OID Server
Chaining
10.1+ 10.1.4
Certificate 8i+ 9i+
Kerberos AD + OID Server
Chaining
10.1+ 10.1.4
Password
authpassword
AD with oidpwdcn DLL 10.1+ 10.1.4.2+
Password
authpassword
Sun 10.1+ 10.1.4.2+
Kerberos AD 10.1+ 10.1.4.2+
Возможные схемы аутентификации
пользователей БД Oracle
![Page 26: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/26.jpg)
![Page 27: - Oracle · 2009-03-02 · 24 Проксиаутентификация–EUS •ИспользованиевсистемеSSO ods=new OracleOCIConnectionPool(“connect_user”,”Welcome1](https://reader033.vdocument.in/reader033/viewer/2022050516/5fa086137ee52c3c534697d9/html5/thumbnails/27.jpg)
27