вторник, 20 августа 2013 г.

Настройка Windows AD для смены пароля через Access Manager

Этот пост описывает настройку Active Directory для аутентификации пользователя и смены его пароля средствами OracleAccess Manager 11gR2. Дополнительных настроек ovd, описанных в этом посте, делать не нужно.
Оглавление:

Установка Access Manager 11gR2.
Установка  Oracle Virtual Directory
Настройка Virtual Directory
Настройка Active Directory 
Настройка Access Manager


1. Для хранения ob-атрибутов в АД необходимо расширить её схему. Ldif-файл для расширения схемы входит в дистрибутив AccessManager 11gR2. Его можно найти здесь:
$MIDDLEWARE_HOME/Oracle_IDM1/oam/server/pswdservice/ldif
 В файле много лишних спецсимволов, из-за которых импорт проходит с ошибкой. Под катом отредактированный файл.
 На контроллере необходимо выполнить:
ldifde -i -f "c:\ora\AD_PWDPersonSchema.ldif" –v

2. Дополнительное редактирование схемы.
Для редактирования схемы можно использовать оснастку windows. По умолчанию она не включена. Чтобы ей воспользоваться, надо зарегистрировать библиотеку командой, выполненной в консоли "as Administrator"
regsvr32 schmmgmt.dll
После этого станет доступна оснастка  ActiveDirectory Shema


В этом примере я редактирую класс person, который есть у каждого пользователя.
Импортированные из ldiff-файла классы необходимо добавить в Auxiliary-классы person

и в возможных superior-aх этих классов указать класс person
3. Создание ACL для ob-атрибутовПользователям необходимо дать права на редактирования добавленных атрибутов.
Это можно сделать из оснастки Users And Computers, включив Advanced  Features View

В этом примере создаются ACL на объект сn=users, dn=wcc, dn=local. Доступ даётся для группы SELF. Таким образом пользователи будут иметь возможность менять только свои атрибуты.


Теперь можно сменить значение всех ob-атрибутов через LDAP браузер




среда, 7 августа 2013 г.

JPS-01016: A password credential expected after upgradeOPSS()

На одной из инсталляций после ручного выполнения команды upgradeOPSS() в логах AdminServer-а появляются ошибки (полный текст под катом):

A password credential is expected; instead found null for alias BOOTSTRAP_JPS and key bootstrap_sO8uNRI9l8k4f8ZuBwsz+PME/qI=
JPS-00071: Ldap bootstrap credential retrieval failed
<Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: weblogic.security.SecurityInitializationException:

Текущие настройки сервера:
1. Credentian Store Provider  - база данных


2. Текущее содержимое bootstrap/cwallet.sso
/opt/oracle/middleware/oracle_common/bin/orapki wallet display -wallet cwallet.sso
Oracle PKI Tool : Version 11.1.1.7.0
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Oracle Secret Store entries:
BOOTSTRAP_JPS@#3#@bootstrap_E9Tyfa0er5oeWvzaKnpyyKmg0cA=
fks@#3#@current.key
fks@#3#@master.key.0
fks@#3#@master.key.0.base64
IntegrityChecker@#3#@kss
Trusted Certificates:
Subject:        OU=Class 2 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        OU=Class 3 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
Subject:        CN=GTE CyberTrust Global Root,OU=GTE CyberTrust Solutions\, Inc.,O=GTE Corporation,C=US
Subject:        OU=Class 1 Public Primary Certification Authority,O=VeriSign\, Inc.,C=US
полный текст команды
upgradeOpss(jpsConfig='/opt/oracle/middleware/user_projects/domains/demo_domain/config/fmwconfig/jps-config.xml',jaznData='/opt/oracle/middleware/oracle_common/modules/oracle.jps_11.1.1/domain_config/system-jazn-data.xml',jdbcDriver="oracle.jdbc.driver.OracleDriver",url="jdbc:oracle:thin:@oraclehost:1521:orcldb",user="DEV_OPSS", password="Welcome")
Команда завершается успешно, но в файле jps-config.xml не верно указан ключ к аутентификационным данным для БД (BOOTSTRAP_JPS). Если исправить их на верные (взятые из вывода orapki, сервер стартует успешно.
<propertySet name="props.db.1">
            <property name="oracle.security.jps.farm.name" value="cn=ecmdev_domain"/>
            <property name="server.type" value="DB_ORACLE"/>
            <property name="oracle.security.jps.ldap.root.name" value="cn=SecurityStore"/>
            <property name="datasource.jndi.name" value="jdbc/OPSS_DS"/>
            <property name="jdbc.url" value="
jdbc:oracle:thin:@oraclehost:1521:orcldb"/>
            <property name="bootstrap.security.principal.key"value="bootstrap_E9Tyfa0er5oeWvpyyKmddffasaA="/>
            <property name="oracle.security.jps.db.useDSAdminMapKey" value="true"/>
            <property name="bootstrap.security.principal.map" value="BOOTSTRAP_JPS"/>
            <property name="jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
</propertySet>