Skip to content

Instantly share code, notes, and snippets.

@srinivasanagandla-okta
Last active August 29, 2015 14:18
Show Gist options
  • Save srinivasanagandla-okta/156bc8b8ceac624b6897 to your computer and use it in GitHub Desktop.
Save srinivasanagandla-okta/156bc8b8ceac624b6897 to your computer and use it in GitHub Desktop.
Okta Verify Push API Gaps

#Enroll (From UserAgent):

##Request POST {{url}}/api/v1/users/{{userId}}/factors

{
  "factorType"   : "push",
  "provider" 	 : "okta"
}

##Response

{
  "id": "opfh52xcuft3J4uZc0g3",
  "factorType": "push",
  "provider": "OKTA",
  "status": "PENDING_ACTIVATION",
  "created": "2015-04-01T15:57:32.000Z",
  "lastUpdated": "2015-04-01T15:57:32.000Z",
  "profile": {
      "credentialId": "[email protected]",
      "keys": [
        {
          "kty": "PKIX",
          "use": "sig",
          "kid": "default",
          "x5c": [
              null
            ]
          }
        ]
  },
  "_links": {
    "activate": {
      "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3/lifecycle/activate",
      "hints": {
        "allow": [
          "POST"
        ]
      }
    },
    "self": {
      "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3",
      "hints": {
        "allow": [
          "GET"
        ]
      }
    },
    "user": {
      "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3",
      "hints": {
        "allow": [
          "GET"
        ]
      }
    },
    "qrcode": {
      "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3/qr/00CnAHABTzHh9hjEij9qcteMrOoeFLK6evHruUH7p9",
      "type": "image/png"
    }
  },
  "_embedded": {
    "activation": {
      "links": null,
      "deviceActivationToken": "I17JQoOqbYOPH_lMWK5F"
    }
  }
}

###Gaps/Issues

  1. Don't show "keys"
  2. Fix links in "_embedded->activation"
  3. Remove "activate" link

#After Activation:

##Request: GET {{url}}/api/v1/users/{{userId}}/factors/{{factorId}}

##Response:

{
    "id": "opfh52xcuft3J4uZc0g3",
    "factorType": "push",
    "provider": "OKTA",
    "status": "ACTIVE",
    "created": "2015-04-01T15:57:32.000Z",
    "lastUpdated": "2015-04-01T16:04:56.000Z",
    "profile": {
        "credentialId": "[email protected]",
        "keys": [
            {
                "kty": "PKIX",
                "use": "sig",
                "kid": "default",
                "x5c": [
                    "MIIDPDCCAiQCCQDydJgOlszqbzANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEQMA4GA1UEChMHSmFua3lDbzESMBAGA1UEAxMJbG9jYWxob3N0MB4XDTE0MDMxMjE5NDYzM1oXDTI3MTExOTE5NDYzM1owYDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xEDAOBgNVBAoTB0phbmt5Q28xEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMGvJpRTTasRUSPqcbqCG+ZnTAurnu0vVpIG9lzExnh11o/BGmzu7lB+yLHcEdwrKBBmpepDBPCYxpVajvuEhZdKFx/Fdy6j5mH3rrW0Bh/zd36CoUNjbbhHyTjeM7FN2yF3u9lcyubuvOzr3B3gX66IwJlU46+wzcQVhSOlMk2tXR+fIKQExFrOuK9tbX3JIBUqItpI+HnAow509CnM134svw8PTFLkR6/CcMqnDfDK1m993PyoC1Y+N4X9XkhSmEQoAlAHPI5LHrvuujM13nvtoVYvKYoj7ScgumkpWNEvX652LfXOnKYlkB8ZybuxmFfIkzedQrbJsyOhfL03cMECAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAeHwzqwnzGEkxjzSD47imXaTqtYyETZow7XwBc0ZaFS50qRFJUgKTAmKS1xQBP/qHpStsROT35DUxJAE6NY1Kbq3ZbCuhGoSlY0L7VzVT5tpu4EY8+Dq/u2EjRmmhoL7UkskvIZ2n1DdERtd+YUMTeqYl9co43csZwDno/IKomeN5qaPc39IZjikJ+nUC6kPFKeu/3j9rgHNlRtocI6S1FdtFz9OZMQlpr0JbUt2T3xS/YoQJn6coDmJL5GTiiKM6cOe+Ur1VwzS1JEDbSS2TWWhzq8ojLdrotYLGd9JOsoQhElmz+tMfCFQUFLExinPAyy7YHlSiVX13QH2XTu/iQQ=="
                ]
            }
        ]
    },
    "_links": {
        "verify": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3/verify",
            "hints": {
                "allow": [
                    "POST"
                ]
            }
        },
        "self": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3",
            "hints": {
                "allow": [
                    "GET",
                    "DELETE"
                ]
            }
        },
        "user": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3",
            "hints": {
                "allow": [
                    "GET"
                ]
            }
        }
    }
}

###Gaps/Issues:

  1. Add "reset" link

#Start Challenge:

##Request:

POST {{url}}/api/v1/users/{{userId}}/factors/{{factorId}}/verify

##Response:

{
    "factorResult": "WAITING",
    "_links": {
        "verify": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3/verify",
            "hints": {
                "allow": [
                    "POST"
                ]
            }
        },
        "factor": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3",
            "hints": {
                "allow": [
                    "GET",
                    "DELETE"
                ]
            }
        }
    }
}

Gaps/Issues:

  1. Rename "verify" link to "poll"

#After Auth is Approved on Device: ##Request: POST {{url}}/api/v1/users/{{userId}}/factors/{{factorId}}/verify

{
  "transactionId":"mst1eiHghhPxf0yhp0g3"
}

##Response:

{
    "factorResult": "SUCCESS"
}

###Gaps/Issues:

  1. Currently we expect "rawToken" as "transactionId" in the request. This need to be changed to transactionId.

#When timed-out:

##Request: POST {{url}}/api/v1/users/{{userId}}/factors/{{factorId}}/verify

{
  "transactionId":"mst1eiHghhPxf0yhp0g3"
}

Response:

{
    "factorResult": "TIMEOUT",
    "_links": {
        "verify": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3/verify",
            "hints": {
                "allow": [
                    "POST"
                ]
            }
        },
        "factor": {
            "href": "https://nag.okta1.com:80/api/v1/users/00ugti3kwafWJBRIY0g3/factors/opfh52xcuft3J4uZc0g3",
            "hints": {
                "allow": [
                    "GET",
                    "DELETE"
                ]
            }
        }
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment