Sample code for 30+ languages & platforms
Chilkat2-Python

OneLogin OIDC - Get Discovery Document (OpenID Connect)

See more OneLogin OIDC Examples

Downloads the OpenID Connect self-discovery document for a OneLogin OIDC enabled app.

Chilkat Chilkat2-Python Downloads

Chilkat2-Python
import sys
import chilkat2

success = False

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

http = chilkat2.Http()

http.Accept = "application/json"

resp = chilkat2.HttpResponse()
success = http.HttpNoBody("GET","https://<account>.onelogin.com/oidc/.well-known/openid-configuration",resp)
if (success == False):
    print(http.LastErrorText)
    sys.exit()

print("Response Status Code: " + str(resp.StatusCode))

jsonResponse = chilkat2.JsonObject()
jsonResponse.Load(resp.BodyStr)
jsonResponse.EmitCompact = False
print(jsonResponse.Emit())

if (resp.StatusCode != 200):
    print("Failed.")
    sys.exit()

# Sample output...
# (See the parsing code below..)
# 
# Use the this online tool to generate parsing code from sample JSON: 
# Generate Parsing Code from JSON

# {
#   "acr_values_supported": [
#     "onelogin:nist:level:1:re-auth"
#   ],
#   "authorization_endpoint": "https://chilkat-dev.onelogin.com/oidc/auth",
#   "claims_parameter_supported": true,
#   "claims_supported": [
#     "acr",
#     "auth_time",
#     "company",
#     "custom_fields",
#     "department",
#     "email",
#     "family_name",
#     "given_name",
#     "groups",
#     "iss",
#     "locale_code",
#     "name",
#     "params",
#     "phone_number",
#     "preferred_username",
#     "sid",
#     "sub",
#     "title",
#     "updated_at"
#   ],
#   "grant_types_supported": [
#     "authorization_code",
#     "implicit",
#     "refresh_token",
#     "client_credentials",
#     "password"
#   ],
#   "id_token_signing_alg_values_supported": [
#     "RS256"
#   ],
#   "issuer": "https://openid-connect.onelogin.com/oidc",
#   "jwks_uri": "https://chilkat-dev.onelogin.com/oidc/certs",
#   "request_parameter_supported": false,
#   "request_uri_parameter_supported": false,
#   "response_modes_supported": [
#     "form_post",
#     "fragment",
#     "query"
#   ],
#   "response_types_supported": [
#     "code",
#     "id_token token",
#     "id_token"
#   ],
#   "scopes_supported": [
#     "openid",
#     "name",
#     "profile",
#     "groups",
#     "email",
#     "params",
#     "phone"
#   ],
#   "subject_types_supported": [
#     "public"
#   ],
#   "token_endpoint": "https://chilkat-dev.onelogin.com/oidc/token",
#   "token_endpoint_auth_methods_supported": [
#     "client_secret_basic",
#     "client_secret_post",
#     "none"
#   ],
#   "userinfo_endpoint": "https://chilkat-dev.onelogin.com/oidc/me",
#   "userinfo_signing_alg_values_supported": [
#   ],
#   "code_challenge_methods_supported": [
#     "S256"
#   ],
#   "introspection_endpoint": "https://chilkat-dev.onelogin.com/oidc/token/introspection",
#   "introspection_endpoint_auth_methods_supported": [
#     "client_secret_basic",
#     "client_secret_post",
#     "none"
#   ],
#   "revocation_endpoint": "https://chilkat-dev.onelogin.com/oidc/token/revocation",
#   "revocation_endpoint_auth_methods_supported": [
#     "client_secret_basic",
#     "client_secret_post",
#     "none"
#   ],
#   "claim_types_supported": [
#     "normal"
#   ]
# }
# 

authorization_endpoint = jsonResponse.StringOf("authorization_endpoint")
claims_parameter_supported = jsonResponse.BoolOf("claims_parameter_supported")
issuer = jsonResponse.StringOf("issuer")
jwks_uri = jsonResponse.StringOf("jwks_uri")
request_parameter_supported = jsonResponse.BoolOf("request_parameter_supported")
request_uri_parameter_supported = jsonResponse.BoolOf("request_uri_parameter_supported")
token_endpoint = jsonResponse.StringOf("token_endpoint")
userinfo_endpoint = jsonResponse.StringOf("userinfo_endpoint")
introspection_endpoint = jsonResponse.StringOf("introspection_endpoint")
revocation_endpoint = jsonResponse.StringOf("revocation_endpoint")
i = 0
count_i = jsonResponse.SizeOfArray("acr_values_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("acr_values_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("claims_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("claims_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("grant_types_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("grant_types_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("id_token_signing_alg_values_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("id_token_signing_alg_values_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("response_modes_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("response_modes_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("response_types_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("response_types_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("scopes_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("scopes_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("subject_types_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("subject_types_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("token_endpoint_auth_methods_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("token_endpoint_auth_methods_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("userinfo_signing_alg_values_supported")
while i < count_i :
    jsonResponse.I = i
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("code_challenge_methods_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("code_challenge_methods_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("introspection_endpoint_auth_methods_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("introspection_endpoint_auth_methods_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("revocation_endpoint_auth_methods_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("revocation_endpoint_auth_methods_supported[i]")
    i = i + 1

i = 0
count_i = jsonResponse.SizeOfArray("claim_types_supported")
while i < count_i :
    jsonResponse.I = i
    strVal = jsonResponse.StringOf("claim_types_supported[i]")
    i = i + 1