Ansible 能够安装OpenAm,但无法登录

Ansible 能够安装OpenAm,但无法登录,ansible,openam,Ansible,Openam,我只想安装openAm,这样就可以通过ansible脚本()安装openAm。我使用了maven存储库中的OpenAm版本14快照。但在成功运行脚本后,我无法使用凭据登录 管理员/密码 我重新检查,变量设置如下,位于 如果我还需要做什么,请告诉我 目标机器未显示错误迹象。但是登录失败了 我研究了创建的嵌入式ldap。我没有找到用户amAdmin 代码直接取自forgerock发布的github,但我已将其剥离为仅运行openam。请查找task/main.yml文件。所有依赖文件都可以假定在

我只想安装openAm,这样就可以通过ansible脚本()安装openAm。我使用了maven存储库中的OpenAm版本14快照。但在成功运行脚本后,我无法使用凭据登录

管理员/密码

我重新检查,变量设置如下,位于

如果我还需要做什么,请告诉我

目标机器未显示错误迹象。但是登录失败了

我研究了创建的嵌入式ldap。我没有找到用户amAdmin

代码直接取自forgerock发布的github,但我已将其剥离为仅运行openam。请查找task/main.yml文件。所有依赖文件都可以假定在github中。目前,它可以连接到外部LDAP并创建嵌入式LDAP。脚本在运行期间成功

- file: path="{{ install_root}}" owner="{{ fr_user }}" state="directory"

- file: path={{ install_root}}/openam owner={{fr_user}} state="directory"

- name: Create staging  directory
  file: path=/var/staging state=directory owner={{ fr_user }}  mode=0777

- name: Download openam snapshot
  shell: 'wget http://maven.forgerock.org/repo/releases/org/forgerock/openam/openam-server/12.0.0/openam-server-12.0.0.war -O /var/staging/openam.war creates=/var/stag$
  register: openam_downloaded


- name: Deploy war to tomcat
  command: creates="{{ tomcat_openam_dir }}/webapps/openam" cp "{{ staging_dir }}/openam.war" "{{ tomcat_openam_dir}}/webapps/openam.war"

- name: copy service from openam to init.d to install it as service
  template: src=openam.service dest="/etc/init.d/openam.service"  mode=0777

- name: Updates all the release candidate as defaults
  shell: 'update-rc.d openam.service defaults'
  register: allRC_Updated

  - file: path="{{ install_root}}" owner="{{ fr_user }}" state="directory"


- file: path={{ install_root}}/openam owner={{fr_user}} state="directory"

- name: Ensure openam tomcat instance is running
  service: name="openam.service" state=restarted enabled=yes

- name: Wait for openam war to be fully deployed before running configurator
  wait_for: port="{{openam_server_port}}" delay=10

- wait_for: port={{openam_server_port}} delay=30

- name: Run ssoconfigure
  ssoconfigure: server_url="http://{{openam_fqdn}}:{{openam_server_port}}"
    deployment_uri="/openam"
    base_dir="{{install_root}}/openam"
    directory_server="{{embedded_dj_host}}"
    root_suffix="o=openam"
    directory_admin_port="{{embedded_dj_admin_port}}"
    directory_jmx_port="{{embedded_dj_jmx_port}}"
    directory_port="{{embedded_dj_ldap_port}}"
    ds_dirmgrdn="{{embedded_dj_dirmgr}}"
    data_store="embedded"
    ds_dirmgrpasswd="{{embedded_dj_password}}"
    userstore_ssl="SIMPLE"
    userstore_host="{{opendj_host}}"
    userstore_port="{{opendj_ldap_port}}"
    userstore_suffix="{{opendj_basedn}}"
    userstore_mgrdn="{{opendj_dirmgr}}"
    userstore_passwd="{{opendj_password}}"
    amldapuserpasswd="{{amldapuser_password}}"
    cookie_domain="{{openam_cookie_domain}}"
    admin_pwd="{{amadmin_password}}"
    acceptlicense="true"
    am_enc_key="AQICY6Za5J5noktyqnhW10JiPVNUdKuiZYwS"
    lb_site_name="sitea"
    lb_primary_url="{{openam_site_url}}"

- file: recurse=yes state=directory  owner="{{ fr_user }}"  path="{{ install_root}}" mode=0775
我在forgerock github的位置又扮演了一个角色,名为ssoadm(task/main.yml),如下所示。我在同一台机器上运行这两个角色。我看不出有什么变化

- file: name="{{ install_root}}/ssoadmin" owner={{ fr_user }} state=directory

- name: Download ssoadmintools snapshot
  shell: 'wget http://maven.forgerock.org/repo/releases/org/forgerock/openam/openam-distribution-ssoadmintools/12.0.0/openam-distribution-ssoadmintools-12.0.0.zip -O /$
  register: ssoadmintools_downloaded

- unarchive: src={{ staging_dir }}/ssoadmintools.zip dest="{{ install_root}}/ssoadmin" copy=no

- file: path="{{ install_root }}/ssoadmin" owner="{{ fr_user}}" mode=0777 recurse=yes

- name: setup ssoadm tools
  command: chdir={{ install_root }}/ssoadmin {{ install_root }}/ssoadmin/setup -p {{ install_root }}/openam --acceptLicense
  environment:
    JAVA_HOME:  /opt/java/oracle/jdk1.7.0_71

- template: src=ssoadm-patch dest="{{install_root}}/ssoadmin/openam/bin/" mode=0755 owner={{fr_user}}
- command: chdir="{{install_root}}/ssoadmin/openam/bin" ./ssoadm-patch

- file: recurse=yes state=directory  owner="{{ fr_user }}" path="{{ install_root}}/ssoadmin" mode=0775

您在安装时使用的cookie域是什么? 在ansible脚本中,cookie域在名为“openam_cookie_domain”的属性中指定。您还可以通过转到“openam/json/serverinfo/*”来查看设置了哪个cookie域

“.amazonaws.com”被归类为顶级域,因此不能在其上设置cookies。如果OpenAM服务器无法正确设置cookies,身份验证将失败


最好的选择是完全使用不同的域(即“.example.com”),否则您可以使用amazon实例FQDN(“ec2 XXX.compute1.amazonaws.com”)作为您的cookie域。

您必须使用基于主机的cookie(从platformservice中删除所有cookie域)在Amazon云中运行OpenAM时,Amazon将其列为公共后缀(请参阅),因此浏览器必须删除OpenAM发布的域cookie

您需要安装ssoadm并使用


ssoadm-u amadmin-f PATH_TO_PWDFILE remove attr defs-s iPlanetAMPlatformService-t global-a iplanet am platform cookie domains

我查看了文件系统,检查是否能找到任何内容。以下是我在一个文件中看到的内容。。。。。。。。。。。。。。。。。。。。。ubuntu@ip-172-31-5-29:/opt/ois/openam/openam$cat openam_mon_auth demo AQICGNKMFCOP14LNKSCONPWMNVU6SR2RBFR。这是否意味着“演示”用户可以登录。密码是什么?-名称:Run-ssoconfigure-ssoconfigure:server_url=“”。。。。。。admin_pwd=“password”#在此处硬编码,但仍然不起作用。acceptlicense=“true”am_enc_key=“AQICY6Za5J5noktyqnhW10JiPVNUdKuiZYwS”lb_site_name=“sitea”lb_primary_url=“{{{openam_site_url}”是否尝试显式指定管理控制台?https:///openam/XUI/#login/&authIndexType=service&authIndexValue=adminconsoleserviceI 再试一次。在浏览器屏幕上为我抛出了一个错误“无法登录到OpenAM”。我是为了登录而打电话的。错误如下。106.216.133.107---[19/Jan/2016:08:29:52+0000]“POST/openam/json/users?”行动=idFromSession HTTP/1.1“401 62 106.216.133.107---[19/Jan/2016:08:29:52+0000]“POST/openam/json/authenticate?authIndexType=service&authIndexValue=adminconsoleservic%E2%80%8C%E2%80%8Be HTTP/1.1”400非常感谢您的回答,我正在使用.amazonaws.com cookie域,因为这是我能做的最简单的事情,而且不需要购买任何域,仍然面临这个问题。我将再次尝试复制它并发布我的发现…如果不选择使用您自己的域,您将不得不使用主机名(“ec2 XXX.compute1.amazonaws.com”)作为cookie域。一旦您可以访问管理控制台,以后可以根据需要添加多个cookie域。是的,aws实例的cookie域必须是amazonaws.com。但这可能不是问题所在,因为我正确地使用了域。。在上面的代码中,我只使用了一个角色“Openam”。我看到大多数与ssoconfigtool相关的代码都有注释,所以可能不需要这个角色。但ssoadm角色可能是必需的,仍在探索需要修改的内容。另外,amadmin用户在嵌入式ldap中不可见,因此我想知道我遗漏了什么。您不需要角色来访问管理控制台。此外,“amadmin”用户也不是作为普通LDAP用户存储的。您可以看看从/json/authenticate端点得到的HTTP响应吗?JSON响应中是否有“tokenId”属性?如果是这样的话,这意味着身份验证成功了,而其他方面正在失败。您还可以在javascript控制台中查找错误。看起来这可能是个问题。错误显示用户不是使用openam角色创建的(通过ldap浏览器查看opendj,确认相同)。“2016-01-19 08:53:04”“登录成功| isNoSession=false”9277c6f925ee63e401 id=amadmin,ou=user,o=openam 106.216.133.107 INFO o=openam AUTHENTICATION-100“cn=dsameuser,ou=DSAME Users,o=openam”“不可用”数据存储106.216.133.107