0

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

我已经创建了 URL http://docs.oracle.com/cd/E19575-01/820-4803/ghuqg/index.html中给出的必要配置

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

是否需要任何额外的配置?请让我知道,我无法在任何地方找到任何其他信息。

以下是我们发送的请求。我不确定 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>

请帮我解决这个问题。

4

2 回答 2

1

I want to authenticate using user id and password. I am passing this information (userid/password) using SOAP header. But when I try to access my web service in browser it gives access forbidden message.

I'm currently struggling to learn OpenAM as well and I think your specific problem is that you have not yet set up a policy (not a policy agent) after users have successfully authenticated.

If you haven't try the following steps: Navigate to Access Control -> YourRealm -> Policies -> New Policy

Name: yourpolicyname

Rules (click new):


Name: URLPolicy

Resource Name: http:// your-webservice-url/*

Check allow get and post

Name: GetUrlPolicy

Resource Name: http:// your-webservice-url /* ? *

Check allow get and post


Subjects (click new) Type = OpenAM Identity Subject Name: UserAccess Add users you want to be able to authenticate

You have to add in the * ? * if you have any GET parameters in your web page.


Hope that helps, I know the documentation around is terrible.

于 2012-05-22T15:18:51.677 回答
0

对于您的代理策略,在 Global 选项卡:General 部分 > Agent Filter Mode 中,删除 ALL 并添加 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#创建代理配置文件

您可能还想控制要保护的 URI(Web 应用程序)而不是整个网站。为此,在代理策略中:

  • 应用程序选项卡:未强制执行 URI 处理部分 > 添加要保护的 URI,例如:/application1/*
  • 应用程序选项卡:未强制 URI 处理部分 > 选中“反转未强制 URI”复选框,以便它实际执行“未强制 URI”值
于 2013-11-07T20:16:51.010 回答