UMA1 Interop Participants and Solutions
UMA1 Interop Participants and Solutions
Main UMA1 Interop Testing page | Features and Feature Tests | Results
We are planning to do initial interop testing of UMA authorization servers against Roland Hedberg's test suite. Eventually we will test UMA resource servers and clients as well, and conduct cross- matrix testing. In preparation for these later phases, we began to register interop participants on this page; don't read too much into the solution information provided here for now.
Subscribe to the uma-dev mailing list for updates.
Participant information
Participant name and logo | Contact names/emails | Solution full name | Solution abbrev | Roles (AS, RS, C) |
---|---|---|---|---|
Gluu (logo, handle) | Mike Schwartz (mike-at-gluu.org) Yuriy Zabrovarnayy (yuriy-at-gluu.org) | OXAuth | OX | AS, RS, C |
Apache plugin | AP | RS, C | ||
Cloud Identity Limited (logo, handle) | Maciej Machulak (maciej.machulak-at-cloudidentity.co.uk) | NuveAM | CI | AS, RS, C |
Python/Java UMA | PU | RS, C | ||
Roland Hedberg | Roland Hedberg (roland.hedberg-at-adm.umu.se) | PyUMA | RH | AS, RS, C |
ZXID.org (logo) | Sampo Kellomäki (sampo-uma14-at-zxid.org) | ZXID w/mod_auth_saml | ZX | AS, RS, C |
Solution information: AS role
For the purposes of automating testing, one option is to use a query parameter with the name _umaauthn to convey a token string that enables login of an RO or RqP. Any RqP credentials provided in the form of "token strings" below can be used in this fashion.
It is assumed that the C is claims-unaware and will be using the redirect claim profile to redirect the RqP to the AS for login as the sole claims-gathering process.
The "Alice" user can be used as both an RO and an RqP, and the "Bob" user can be used as an RqP. The different RqPs can be used with the same client to test policies that discriminate between RqPs using the same client. Clients "A" and "B" can be easily used to test policies that discriminate between the same RqP using different clients.
Solution:role | Config data URL | RqP method and credentials | C credentials | Supports dynamic client registration? | Other details |
---|---|---|---|---|---|
OX:AS | https://seed.gluu.org/.well-known/uma-configuration | Alice: Bob: | OAuth Client A: | RS: yes C: yes | |
CI:AS | https://demo.nuveam.com/.well-known/uma-configuration | Alice: Bob: | Client A: Client B: | RS: yes C: yes | |
RH:AS | Â | Alice: Bob: | Client A: Client B: | RS: yes C: yes | Â |
ZX:AS | https://zxidp.org/.well-known/uma-configuration | At AS either use username (form field au) and password (ap) alice:test  _uma_authn=YWxpY2U6dGVzdA%3D%3D     # protects and accesses resource bob:test    _uma_authn=Ym9iOnRlc3Q%3D           # accesses resource | Client A: Client B: | RS: yes C: yes | https://zxidp.org/umainfo.html |
Solution information: RS role
Any RS participating in interop needs to expose either multiple resource sets (as registered with the AS) or multiple scopes, or both. This enables testing UMA-specific interop around sufficient/insufficient authorization data, permission tickets that match or don't match the requested type of access, etc., while not dictating the specifics of what the API looks like. Each RS participant needs to provide enough information directly in the table below to explain how to access these differential resource sets and scopes, e.g. the URLs, parameters, etc. This way, clients can tell whether the RS was at fault or not if something goes wrong with authorization. It is recommended that each RS document exactly the one or two endpoints/calls/parameters that are sufficient for UMA interop testing purposes, to limit the universe of potential actions that a client can take.
Solution:role | API info | SDK avail? | Login URL and RO creds | Protected resource URL(s) info | Client SDK/library info | Expects dynamic client registration at AS? | Other details |
---|---|---|---|---|---|---|---|
OX:RS | Java | https://seed.gluu.org/oxuma-rs/ | https://seed.gluu.org/oxuma-rs/ws/phone CRUD: Scopes: | Â | Â | Â | |
CI:RS | https://nuvepds.appspot.com/about/api | Python and Java | https://nuvepds.appspot.com (sign in with your social profile) | https://nuvepds.appspot.com/about/api | Â | Optional | Â |
RH:RS | Uses "pbryan" (http-json-resource) |  | https://xenosmilus.umdc.umu.se:8777/login.html (user:alice, password:krall) | Base URL for alice's resources: https://xenosmilus.umdc.umu.se:8777/json/alice | Available in Python and Java (sample at https://nuvepdsclient.appspot.com/) – where? |  | Supports webfinger. Supports acct and http identifier urls. |
ZX:RS | https://zxidp.org/umainfo.html | libzxid (C/C++, PHP, Perl, Java, Apache httpd module) | https://zxidp.org/idpuma?o=umalogin (test:test) | https://zxidp.org/idpuma?o=umaprotected | ? | ? |  |
Solution information: C role
As noted above, it is assumed that the C is claims-unaware and will be using the redirect claim profile to redirect the RqP to the AS for login as the sole claims-gathering process for assessing policy. There are currently (V0.9) not even any optional feature tests for claim profiles anyway, so we're not testing claims gathering at this stage.
Solution:role | App type | Other details |
---|---|---|
OX:C | https://seed.gluu.org/oxuma-rp/ | Â |
CI:C | https://nuvepdsclient.appspot.com/ | Sign in using social profile or pass a token |
RH:C | Â | Â |
ZX:C | https://zxidp.org/idpuma?o=umatestres | https://zxidp.org/umainfo.html |