Well, this is quite obvious, I can quess that one :-)
Which version of Catalina ? Though probably any in the 5.x range will do, just not sure if
AS 6.0 uses Catalina 6.x or not
Cheers, Sergey
----- "Anil Saldhana" <Anil.Saldhana(a)redhat.com> wrote:
Sergey,
extend Tomcat AuthenticatorBase class for your authenticator. It
should have available in the catalina jar.
Cheers.
On 07/15/2010 09:20 AM, Sergey Beryozkin wrote:
> Hi Anil
>
>
> ----- "Anil Saldhana"<Anil.Saldhana(a)redhat.com> wrote:
>
>
>> The login modules happen late in the container security sequence
and
>> have limited access to the network message etc. They can only say
>> yes/no to authentication. But they cannot do some of the redirects
or
>>
>> other extra steps that are needed in mechanisms outside of the
servlet
>>
>> spec mechanisms (form, client-cert, basic,digest). SAML,
>> OpenID/OAuth
>> etc may need access to the network message (http message) and may
have
>>
>> to redirect the request to an external identity provider. In
these
>> situations, you do container integration (in the case of tomcat, it
is
>>
>> via authenticators).
>>
>> Ideally, you should be doing JSR-196 which will provide you the
>> pluggable server authentication modules and can stack modules just
as
>>
>> you do with login modules.
>>
>> We have support for JSR-196 in AS6 which needs to be taken further
>> before EE6 certification.
>>
http://anil-identity.blogspot.com/search/label/jsr-196
>>
>>
> thanks for all the info, I will experiment with Athenticators, no
redirection will be needed in cases where they should
> enforce that a given OAuth consumer is a valid one, but I'd like to
try them too...
>
> How to figure out which catalina/tomcat dependency should be used
for writing a custom Authenticator to be used in JBossAS 6.0
deployments ?
>
> thanks, Sergey
>
>
>
>> On 07/14/2010 11:17 AM, Sergey Beryozkin wrote:
>>
>>> Hi
>>>
>>>
>>>
>>>> For OAuth there are a few issues:
>>>>
>>>> 1. It has specific headers.
>>>> 2. You create "secrets" on the fly which are used to
authenticate
>>>>
>> and
>>
>>>> authorize requests.
>>>>
>>>>
>>>>
>>> Regarding 2: This is just one approach which the RestEasy
>>>
>> oauth-push-messaging takes, but one can imagine
>>
>>> the administrator registering the OAuth consumers representing
say
>>>
>> messaging services in advance.
>>
>>>
>>>
>>>
>>>> Maybe its best to first iterate on an Authenticator, then move
>>>>
>> logic
>>
>>>> up
>>>> the stack once you get a prototype going? I don't know how
Sergey
>>>> likes
>>>> to work :)
>>>>
>>>>
>>> Well, my own problem so far is that I doubt the necessity of
>>>
>> introducing a role-based
>>
>>> control access in a push-messaging case given the way the current
>>>
>> solution works.
>>
>>> Specifically, a subscriber needs to grant the messaging service a
>>>
>> permission to access a destination URI using a (domain)
admin-level
>> invocation on the message receiver; in other words the subscriber
can
>> not just tell the messaging service to push to some arbitrary
server,
>> the subscriber needs to control that specific URI space on that
>> server; it is really the subscriber's space in the end of the day.
>>
>>> So it is an admin-level decision which is enforced by the OAuth
>>>
>> filter anyway - by authenticating (by ensuring current OAuth
client_id
>> matches the records and checking the signature the secret) and
>> validating that the request URI matches the one specified by the
admin
>> (subscriber) at the previous step.
>>
>>> Thus it is not obvious to me why it is worth introducing another
>>>
>> authorization layer, at least given the way the push-messaging
demo
>> works at the moment. And when I'm in doubt I'm really working very
>> slowly, sorry, probably not a good thing to say publicly :-)
>>
>>> Where I can see the login modules may be introduced is when we
have
>>>
>> OAuth consumers registered well in advance and say the
administrator
>> allocates roles to various consumers using nice UI and then we have
a
>> case where some consumers may access one (resource) service method
and
>> some other consumers can access some other method only. It is not
the
>> case with the push-messaging demo though.
>>
>>> cheers, Sergey
>>>
>>>
>>>
>>>> Chris Bredesen wrote:
>>>>
>>>>
>>>>> Yes.
>>>>>
>>>>> Authenticator is a Catalina/Web construct that delegates to a
>>>>>
>> Realm
>>
>>>>>
>>>>>
>>>>
>>>>
>>>>> (Catalina construct) that, in JBAS is backed by LoginModules
>>>>>
>> (JAAS
>>
>>>>> constructs, JBoss implementations).
>>>>>
>>>>> JAAS LoginModules are constrained by their own API which means
>>>>>
>> they
>>
>>>>>
>>>>>
>>>> get
>>>>
>>>>
>>>>> access to only certain callbacks (username, password, etc) and
>>>>>
>> have
>>
>>>>>
>>>>>
>>>> no
>>>>
>>>>
>>>>> knowledge of the Servlet API. You can do authentication in an
>>>>> Authenticator but that's not portable to other non-Tomcat/JBW
>>>>> environments. The naming is a bit confusing IMO. It made
sense
>>>>>
>> for
>>
>>>>>
>>>>>
>>>>
>>>>
>>>>> Tomcat but adds confusion in JBAS.
>>>>>
>>>>> You don't need to worry about writing an Authenticator unless
you
>>>>>
>>>>>
>>>> need
>>>>
>>>>
>>>>> access to something that you don't already get from the
existing
>>>>> Authenticators, such as cookies, etc.
>>>>>
>>>>> -CB
>>>>>
>>>>> On 07/14/2010 10:53 AM, Bill Burke wrote:
>>>>>
>>>>>
>>>>>> Just guessing,
>>>>>>
>>>>>> Isn't the login module responsible for the actual
authentication
>>>>>>
>>>>>>
>>>> and
>>>>
>>>>
>>>>>> authorization? Tomcat authenticator is just responsible for
>>>>>>
>>>>>>
>>>> extracting
>>>>
>>>>
>>>>>> header info?
>>>>>>
>>>>>> Sergey Beryozkin wrote:
>>>>>>
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> You can achieve by writing a tomcat authenticator and
putting
>>>>>>>>
>> it
>>
>>>>>>>>
>>>>>>>>
>>>> in
>>>>
>>>>
>>>>>>>> WEB-INF/context.xml (JBAS) or META-INF/context.xml
(tomcat).
>>>>>>>>
>>>>>>>> The auth-name is a string defined in the servlet spec.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> thanks for the tip.
>>>>>>>
>>>>>>> What is the difference between writing a custom Tomcat
>>>>>>>
>>>>>>>
>>>> authenticator and a custom LoginModule, example,
>>>>
>>>>
>>>>>>>
>>>>>>>
>>>>
>>
org.picketlink.identity.federation.bindings.jboss.auth.SAML2STSLoginModule
>>
>>>> ?
>>>>
>>>>
>>>>>>> My understanding is that having custom login modules :
>>>>>>> - makes it easy to stack together different modules, as
>>>>>>>
>> shown
>>
>>>>>>>
>>>>>>>
>>>> for ex at [1]
>>>>
>>>>
>>>>>>> - but requires the explicit loading of (JBoss Security)
>>>>>>>
>>>>>>>
>>>> AuthenticationManager (at least when services are POJOs)
>>>>
>>>>
>>>>>>> cheers, Sergey
>>>>>>>
>>>>>>> [1]
>>>>>>>
>>>>>>>
>>>>
>>
http://community.jboss.org/wiki/SAMLEJBIntegrationwithPicketLinkSTS
>>
>>>>
>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On 07/13/2010 11:35 AM, Bill Burke wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> Remy, Anil,
>>>>>>>>>
>>>>>>>>> (I'm cc'ing jboss-dev for archive purposes)
>>>>>>>>>
>>>>>>>>> Sergey , a new web services/resteasy hire, has done
some
>>>>>>>>>
>> great
>>
>>>>>>>>>
>>>>>>>>>
>>>> work
>>>>
>>>>
>>>>>>>>> around OAuth lately. I'm interested in taking
his stuff to
>>>>>>>>>
>> the
>>
>>>>>>>>>
>>>>>>>>>
>>>> next
>>>>
>>>>
>>>>>>>>> level and make it consumable in a way JBoss AS users
are
used
>>>>>>>>>
>>>>>>>>>
>>>> to
>>>>
>>>>
>>>>>>>>> configuring security.
>>>>>>>>>
>>>>>>>>> Specifically, I'm interested in defining a
OAuth
>>>>>>>>> login-config/auth-method within web.xml i.e.
>>>>>>>>>
>>>>>>>>> <login-config>
>>>>>>>>> <auth-name>OAuth</auth-name>
>>>>>>>>> <realm-name>...</realm-name>
>>>>>>>>> </login-config>
>>>>>>>>>
>>>>>>>>> This would be an initial step, eventually I'd
like to be
able
>>>>>>>>>
>>>>>>>>>
>>>> to
>>>>
>>>>
>>>>>>>>> configure a web app to support multiple
authentication
>>>>>>>>>
>>>>>>>>>
>>>> mechanisms,
>>>>
>>>>
>>>>>>>> so
>>>>>>>>
>>>>>>>>
>>>>>>>>> that one URL could support both OAuth and
traditional
>>>>>>>>>
>> clients.
>>
>>>>>>>>> Is JSR 196 the way to do this? Do we support in
AS6? Is
>>>>>>>>>
>> there
>>
>>>>>>>>>
>>>>>>>>>
>>>> doco
>>>>
>>>>
>>>>>>>>> someplace? (I couldn't find with a search).
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>
>>>>>>>>> Bill
_______________________________________________
jboss-development mailing list
jboss-development(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-development