-
Notifications
You must be signed in to change notification settings - Fork 6.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add an example for IAP on GCE #1099
Changes from 15 commits
c739b6c
012ba83
f900dad
9ee7e57
c38340f
9ba1f52
3756a2d
00f842f
5ae5482
3cc284d
6d6602b
c2e94ae
4619ff5
0c41b20
a6a9ac3
aa5fa11
197cfd1
67007f8
843fc64
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
CLOUD_PROJECT_ID = 'YOUR_PROJECT_ID' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You need to put constant after imports to please the linter. |
||
BACKEND_SERVICE_ID = 'YOUR_BACKEND_SERVICE_ID' | ||
|
||
from flask import Flask | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Import modules, not members, so just |
||
from flask import request | ||
|
||
import platform | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Standard library imports go into the first section:
|
||
|
||
from validate_jwt import validate_iap_jwt_from_compute_engine | ||
|
||
app = Flask(__name__) | ||
|
||
@app.route('/') | ||
def root(): | ||
jwt = request.headers.get('x-goog-iap-jwt-assertion') | ||
if jwt is None: | ||
return 'Unauthorized request.', 401 | ||
user_id, user_email, error_str = validate_iap_jwt_from_compute_engine( | ||
jwt, CLOUD_PROJECT_ID, BACKEND_SERVICE_ID) | ||
if error_str: | ||
return "Error: %s" % error_str | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use single quotes everywhere (except docstrings), and use |
||
else: | ||
return "Hi, {}. I am {}.".format(user_email, platform.node()) | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: two blank spaces between functions. |
||
@app.route('/healthz') | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why's this needed? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's not, actually. I've taken it out. |
||
def health(): | ||
return 'OK', 200 | ||
|
||
if __name__ == '__main__': | ||
app.run(host='0.0.0.0', port=80) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. just use |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
PyJWT==1.5.2 | ||
cryptography==2.0.3 | ||
flask | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You must pin versions. |
||
google-auth==1.0.2 | ||
requests==2.18.4 | ||
requests_toolbelt==0.8.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file needs a license header.