Sample code for 30+ languages & platforms
PowerShell

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 PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

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

$http = New-Object Chilkat.Http

$http.Accept = "application/json"

$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpNoBody("GET","https://<account>.onelogin.com/oidc/.well-known/openid-configuration",$resp)
if ($success -eq $false) {
    $($http.LastErrorText)
    exit
}

$("Response Status Code: " + $resp.StatusCode)

$jsonResponse = New-Object Chilkat.JsonObject
$jsonResponse.Load($resp.BodyStr)
$jsonResponse.EmitCompact = $false
$($jsonResponse.Emit())

if ($resp.StatusCode -ne 200) {
    $("Failed.")
    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 -lt $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 -lt $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 -lt $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 -lt $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 -lt $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 -lt $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 -lt $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 -lt $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 -lt $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 -lt $count_i) {
    $jsonResponse.I = $i
    $i = $i + 1
}

$i = 0
$count_i = $jsonResponse.SizeOfArray("code_challenge_methods_supported")
while ($i -lt $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 -lt $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 -lt $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 -lt $count_i) {
    $jsonResponse.I = $i
    $strVal = $jsonResponse.StringOf("claim_types_supported[i]")
    $i = $i + 1
}