我是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>
请帮我解决这个问题。
答案 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)而不是整个网站。为此,请在代理商政策中: