crossbario / crossbario/autobahn-python
asyncio support & docs for using TLS client certificates
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 768
- PR merge metrics
- No merged PRs in 30d
Description
Autobahn Python can use TLS client certificates to authenticate for example with crossbar, when using Twisted. However, there is no documentation anywhere on what's the status on asyncio. The official word appears to be "it might work". Hence this issue.
FWIW, I tried the following client code:
ssl_c = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_c.load_cert_chain(certfile='client.crt', keyfile='client.key')
ssl_c.load_verify_locations(cafile='xxx.com.cert')
runner = ApplicationRunner(
u"wss://xxx.com:443/ws", u"realm1", ssl=ssl_c, extra={"authid": "myauthid"}
)
The resulting client error:
wamp.error.no_auth_method: cannot authenticate using any of the offered authmethods ['anonymous']
Crossbar log error:
crossbar.router.session.RouterSession] client requested valid, but unconfigured authentication method anonymous
As far as I can tell, crossbar config for server & client TLS use is ok per all the docs, when these errors occur. I can post the config here; I posted it to the crossbar google group as well, already.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the asyncio ApplicationRunner path shown in the report and compare how the supplied ssl.SSLContext is handled against the Twisted path. Confirm client-certificate authentication with Crossbar using the listed configuration, then document whether it is supported and what setup is required.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication, documentation, security
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100