mirror of
https://github.com/GSA/notifications-admin.git
synced 2025-12-16 01:53:56 -05:00
33 lines
867 B
Python
33 lines
867 B
Python
from urllib.parse import urlparse
|
|
|
|
from fido2.server import Fido2Server
|
|
from fido2.webauthn import PublicKeyCredentialRpEntity
|
|
|
|
|
|
def init_app(app):
|
|
base_url = urlparse(app.config["ADMIN_BASE_URL"])
|
|
verify_origin_callback = None
|
|
|
|
# stub verification in dev (to avoid need for HTTPS)
|
|
if app.config["NOTIFY_ENVIRONMENT"] == "development":
|
|
verify_origin_callback = stub_origin_checker
|
|
|
|
relying_party = PublicKeyCredentialRpEntity(
|
|
id=base_url.hostname,
|
|
name="U.S. Notify",
|
|
)
|
|
|
|
app.webauthn_server = Fido2Server(
|
|
relying_party,
|
|
attestation="direct",
|
|
verify_origin=verify_origin_callback,
|
|
)
|
|
|
|
# some browsers don't seem to have a default timeout
|
|
# 30 seconds seems like a generous amount of time
|
|
app.webauthn_server.timeout = 30_000
|
|
|
|
|
|
def stub_origin_checker(*args):
|
|
return True
|