Web服务身份验证问题 - 使用openam j2ee agent 3

时间:2012-03-23 13:53:47

标签: openam

我是openAM的新手。我试图使用openAM(954)来保护我的Web服务使用J2EE代理3.0。我在Glass fish 3.1.x上部署了我的webservice(使用CXF)。

我已在网址http://docs.oracle.com/cd/E19575-01/820-4803/ghuqg/index.html

中创建了必要的配置

我想使用用户ID和密码进行身份验证。我正在使用SOAP标头传递此信息(用户标识/密码)。但是当我尝试在浏览器中访问我的Web服务时,它会提供访问禁止的消息。

是否需要其他配置?请告诉我,我无法在任何地方找到任何其他信息。

以下是我们发送的请求。我不确定UsernameToken wsu:Id是否正确?我们如何在发送请求时动态地从OpenAM中获取此值。

        <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="HTTPdocs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">

        <wsse:UsernameToken wsu:Id="UsernameToken-27777511" xmlns:wsu="HTTPdocs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

        <wsse:Username>amadmin</wsse:Username>

        <wsse:Password Type="HTTPdocs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Amit4001</wsse:Password>

        </wsse:UsernameToken>

        </wsse:Security>

  <demo:greetPerson>

     <!--Optional:-->



     <arg0>Ashish</arg0>

  </demo:greetPerson>

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

  

我想使用用户ID和密码进行身份验证。我正在使用SOAP标头传递此信息(用户标识/密码)。但是当我尝试在浏览器中访问我的Web服务时,它会提供访问禁止的消息。

我目前正在努力学习OpenAM,我认为您的具体问题是在用户成功通过身份验证后您尚未设置策略(而不是策略代理)。

如果您还没有尝试以下步骤: 导航到访问控制 - &gt; YourRealm - &gt;政策 - &gt;新政策

姓名: yourpolicyname

规则(点击新):


名称:URLPolicy

资源名称:http:// your-webservice-url / *

检查允许获取和发布

名称:GetUrlPolicy

资源名称:http:// your-webservice-url / *? *

检查允许获取和发布


主题(点击新) Type = OpenAM标识主题 名称:UserAccess 添加您希望能够进行身份验证的用户

你必须添加*? *如果您的网页中有任何GET参数。


希望有所帮助,我知道周围的文档非常糟糕。

答案 1 :(得分:0)

对于您的代理商政策,请在全局标签中:常规部分&gt;代理筛选器模式,删除所有并添加SSO_ONLY(将Map Key留空并将Map Value保留为SSO_ONLY)。请注意,此配置不可热插拔,因此必须重新启动OpenAM才能应用。

以下是在要保护的服务器上安装代理的过程: http://openam.forgerock.org/openam-documentation/openam-doc-source/doc/jee-install-guide/index/chap-glassfish.html

以下是在OpenAM服务器上集中配置代理策略的好方法: http://openam.forgerock.org/openam-documentation/openam-doc-source/doc/admin-guide/index/chap-agents.html#create-agent-profiles

您可能还希望控制要保护的URI(webapps)而不是整个网站。为此,请在代理商政策中:

  • “应用程序”选项卡:“未强制执行的URI处理”部分&gt;添加要保护的URI,例如:/ application1 / *
  • “应用程序”选项卡:“未强制执行的URI处理”部分&gt;选中“Invert Not Enforced URIs”复选框,以便它实际上强制执行“Not Enforced URI”值