Пример #1
0
def handle_login(form_data):
    print "handle_login()"

    # Authenticate via Okta API to get Session Token
    user = form_data["username"]
    password = form_data["password"]
    session_token = None
    try:
        session_token = get_session_token(username=user, password=password)
    except ValueError as err:
        print(err.args)

    print "session_token: {0}".format(session_token)

    # Use Session Token to generatet OIDC Auth Code URL
    if (session_token):
        okta_util = OktaUtil(request.headers, config.okta)
        oidc_auth_code_url = okta_util.create_oidc_auth_code_url(
            session_token, config.okta["oidc_client_id"],
            config.okta["redirect_uri"])

        print "url: {0}".format(oidc_auth_code_url)
        # redirect to User Auth Code URL to Get OIDC Code
        return redirect(oidc_auth_code_url)

    else:
        return make_response(redirect("/"))
Пример #2
0
def get_current_user_token():
    print "get_current_user_token()"
    user_results_json = None
    okta_util = OktaUtil(request.headers, config.okta)

    if ("token" in request.cookies):
        introspection_results_json = okta_util.introspect_oauth_token(
            request.cookies.get("token"))

        if ("active" in introspection_results_json):
            if (introspection_results_json["active"]):
                print "Has active token"
                user_results_json = {
                    "active": introspection_results_json["active"],
                    "username": introspection_results_json["username"],
                    "uid": introspection_results_json["uid"]
                }
            else:
                print "Has inactive token"
        else:
            print "has inactive token error"
            check_okta_session_url = okta_util.create_oidc_auth_code_url(
                None, config.okta["oidc_client_id"],
                config.okta["redirect_uri"])
            user_results_json = {
                "active": False,
                "redirect_url": check_okta_session_url
            }
    else:
        print "has no token"
        check_okta_session_url = okta_util.create_oidc_auth_code_url(
            None, config.okta["oidc_client_id"], config.okta["redirect_uri"])
        user_results_json = {
            "active": False,
            "redirect_url": check_okta_session_url
        }

    if (not user_results_json):
        print "has no token default"
        user_results_json = {"active": False}

    return user_results_json
Пример #3
0
def login():
    print "login()"
    print request.form

    okta_util = OktaUtil(request.headers, config.okta)

    # Authenticate via Okta API to get Session Token
    session_token = None
    try:
        if "auth_token" in request.form:
            session_token = okta_util.authenticate_via_activation_token(
                request.form["auth_token"])
        else:
            session_token = get_session_token(
                username=request.form["username"],
                password=request.form["password"])
    except ValueError as err:
        print(err.args)

    print "session_token: {0}".format(session_token)

    # Use Session Token to generatet OIDC Auth Code URL
    if (session_token):
        oidc_auth_code_url = okta_util.create_oidc_auth_code_url(
            session_token, config.okta["oidc_client_id"],
            config.okta["redirect_uri"])

        print "url: {0}".format(oidc_auth_code_url)
        # redirect to User Auth Code URL to Get OIDC Code
        return redirect(oidc_auth_code_url)

    else:
        error_list = {
            "messages": [{
                "message": "Bad user name and/or password"
            }]
        }
        response = make_response(
            render_template("index.html",
                            user={},
                            error_list=error_list,
                            form_data={},
                            okta_config=config.okta,
                            is_admin=False))
        return response