Comments (6)
29 dec 2014 kl. 15:52 skrev Nestor Diaz [email protected]:
Hello everybody,
I am in the first steps to test pyoidc, I haven't use any single-sign-on method before and I would like to play with it.
Maybe we can begin using the wiki provided within github and publish some howtos.
Let's start with the simple one:
• A simple webpage that authenticate a user using a pyoid service.
• Let the pyoidc service works with just a fixed array of [(username,password,someinfo)] with passwords in plain text where the system will just validate the user and return the username and someinfo fields to the webpage of point 1. At this point what happen if the user authentication is not successful ? It will stay asking for password or just return to the webpage of point 1 ?
• The webpage will print if the user was successfully authenticated and will print it's username and someinfo.
What do you think ?
Sounds like a starting point!
If you are prepared to start writing something I’ll give you all the support I can.
Next could be:
• Changing the fixed array and use an existing source like ldap or a relational database.
Then.• Integrate pyoidc within wsgi in order to use a high grade web server like nginx with uwsgi.
Then.• Remap some fields in order to provide fake information in case of websites that require too much private information.
Does anyone have some literature to read about this topic in a learning by example philosophy ?
There are some documentation in the pyoidc package that you should read if you haven’t already.
http://pyoidc.readthedocs.org/en/latest/howto/index.html
But that document may only make sense to someone who already knows SSO :-/
— Roland
”Being able to think like a child is an important attribute of being an adult” - Eddie Izzard
from pyoidc.
Hi Roland et all, I guess we can start modifying the example from the previous openid implementation which seems to do the job we are planning to do:
https://github.com/openid/python-openid/tree/master/examples
What do you think ?
from pyoidc.
29 dec 2014 kl. 17:28 skrev Nestor Diaz [email protected]:
Hi Roland et all, I guess we can start modifying the example from the previous openid implementation which seems to do the job we are planning to do:
https://github.com/openid/python-openid/tree/master/examples
What do you think ?
I’m not sure the openid example is how single-sign-on normally works so we should
decide on a use case to start with.
Then we could use the server example in oidc_example/op2 and client example in oidc_example/rp3 as a
starting point. Dependent on how close we want to be to the openid example we would have to
sightly modified the existing examples.
— Roland
”Being able to think like a child is an important attribute of being an adult” - Eddie Izzard
from pyoidc.
Hi Rohe,
Thanks for the amazing work!
I have started dabbling with the tests and the code, I think I can help in putting a clear tutorial after understanding what I'm doing and what code is doing. I write here, the steps I followed meanwhile expecting what should be the next logical step.
- I started rp3 test.
- Server runs at 8666 port on localhost
- Open the browser and point to localhost:8666
- Asks me to choose an OP from list (which is empty and drop down doesn;'t work)
- * Question to you: What I should have been expecting in the drop down list?
- OR write the UID of any UID provider
- * I write it as [email protected] and click Enter. The browser shows an empty page.
- * Is it because Webfinger failed during OPen ID connect discovery?
- I started op2 test.
* server runs on 8092 port
* Question to you: How to connect rp2 and op2 tests? - I started rp2 test.
* This test should show me the flow of open id connect. But when I enter my UID, browser
shows an empty page.
* Question to you: What should have happened here?
Thanks so much!
from pyoidc.
Hi rohe,
Sorry for bothering you! Could you please answer the above questions? :-)
Thanks a lot!
from pyoidc.
Finally got some time to look at this, sorry about the delay !
8 apr 2015 kl. 00:56 skrev rvedire [email protected]:
I have started dabbling with the tests and the code, I think I can help in putting a clear tutorial after understanding what I'm doing and what code is doing. I write here, the steps I followed meanwhile expecting what should be the next logical step.
• I started rp3 test.
• Server runs at 8666 port on localhost • Open the browser and point to localhost:8666 • Asks me to choose an OP from list (which is empty and drop down doesn;'t work) • * Question to you: What I should have been expecting in the drop down list?
That depends on what you have in the config.py file.
In that file you have a dictionary named CLIENTS. If you have statically registered your RP with an OP this is
where you would put that information. If you want to use Google for instance this is where you would put
the client_id/client_secret they return to you when you register your RP with them.
The drop down list will contain the key values in CLIENTS except for ””.
”” is the place holder for doing dynamic client registration which some OPs support.
At this time I would say that the majority of OP installations don’t support dynamic client registration.
• OR write the UID of any UID provider • * I write it as @gmail.com and click Enter. The browser shows an empty page.
You can’t do dynamic client registration with Google so this will never work.
• * Is it because Webfinger failed during Open ID connect discovery?
That is one reason.
Google don’t support Webfinger at this time. They do support dynamic provider configuration discovery
and the url for that is https://accounts.google.com .
Another reason is that what you enter should be an account name or an URL.
Note: This is just an example and does not work today and probably not tomorrow either :-)
Hypothetical; In the google case (iff they supported WebFinger) you would have to enter something like [email protected] or
https://accounts.google.com/foobar .
• I started op2 test.
server runs on 8092 port
Question to you: How to connect rp2 and op2 tests?
• I started rp2 test.
OK, rp2 test as it is in the example won’t work. Sorry, have to change that!
If you look in the configuration the BASE is given as a http URL.
It MUST be a https URL. Means you have to supply SERVER_KEY and SERVER_CERT in said file.
Once you have that it should work.
- This test should show me the flow of open id connect. But when I enter my UID, browser
shows and empty page.
The UID should be of the form diana@localhost:8092
- Roland
"It is the consequence of humanity. We are all formed of frailty and error; let us pardon reciprocally each others’ folly - that is the first law of nature.” - Voltaire
from pyoidc.
Related Issues (20)
- Document release process / pypi upload HOT 2
- Create python 3.11 compatible release for pypi HOT 2
- Client.request_and_return no longer works with NoneResponse HOT 5
- Update conda-forge packages HOT 1
- Update URL references after repo move HOT 2
- AttributeError: 'dict' object has no attribute 'create_cookie' HOT 3
- Allow using different authn_method in Consumer.complete()
- Consumer.backchannel_logout and handling state HOT 11
- Architecture question regardings multiple app instances HOT 3
- Cannot add `scope` to registration request HOT 5
- Release 1.5.1 HOT 4
- Investigate failing readthedocs.io build HOT 1
- pydantic 2 seems to be incompatible with oic currently HOT 1
- Now in seconds vs. milliseconds: IATError: Issued in the future HOT 2
- Multiple matching kid support HOT 1
- Add support for RFC 9207 (?) HOT 1
- Why does `Client.do_access_token_refresh` require `state`? HOT 2
- Use SLSA workflow to create releases for PyPi HOT 1
- Client.parse_response misinterprets success as failure HOT 4
- Fix mypy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyoidc.