AutoIt
AutoIt
Azure Fetch OpenID Connect metadata document
See more OIDC Examples
Downloads the OpenID Connect self-discovery document for an Azure OIDC enabled app.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oHttp = ObjCreate("Chilkat.Http")
$oHttp.Accept = "application/json"
; See the Microsoft Azure OIDC documentation at https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc
; The "tenant" can take one of four values described in the documentation at the link above.
$bSuccess = $oHttp.SetUrlVar("tenant","6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd")
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpNoBody("GET","https://login.microsoftonline.com/{$tenant}/v2.0/.well-known/openid-configuration",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("Response Status Code: " & $oResp.StatusCode & @CRLF)
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.Load($oResp.BodyStr)
$oJson.EmitCompact = False
ConsoleWrite($oJson.Emit() & @CRLF)
If ($oResp.StatusCode <> 200) Then
ConsoleWrite("Failed." & @CRLF)
Exit
EndIf
; Sample output...
; (See the parsing code below..)
;
; Use the this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
; {
; "token_endpoint": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/oauth2/v2.0/token",
; "token_endpoint_auth_methods_supported": [
; "client_secret_post",
; "private_key_jwt",
; "client_secret_basic"
; ],
; "jwks_uri": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/discovery/v2.0/keys",
; "response_modes_supported": [
; "query",
; "fragment",
; "form_post"
; ],
; "subject_types_supported": [
; "pairwise"
; ],
; "id_token_signing_alg_values_supported": [
; "RS256"
; ],
; "response_types_supported": [
; "code",
; "id_token",
; "code id_token",
; "id_token token"
; ],
; "scopes_supported": [
; "openid",
; "profile",
; "email",
; "offline_access"
; ],
; "issuer": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/v2.0",
; "request_uri_parameter_supported": false,
; "userinfo_endpoint": "https://graph.microsoft.com/oidc/userinfo",
; "authorization_endpoint": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/oauth2/v2.0/authorize",
; "device_authorization_endpoint": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/oauth2/v2.0/devicecode",
; "http_logout_supported": true,
; "frontchannel_logout_supported": true,
; "end_session_endpoint": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/oauth2/v2.0/logout",
; "claims_supported": [
; "sub",
; "iss",
; "cloud_instance_name",
; "cloud_instance_host_name",
; "cloud_graph_host_name",
; "msgraph_host",
; "aud",
; "exp",
; "iat",
; "auth_time",
; "acr",
; "nonce",
; "preferred_username",
; "name",
; "tid",
; "ver",
; "at_hash",
; "c_hash",
; "email"
; ],
; "kerberos_endpoint": "https://login.microsoftonline.com/6d8ddd66-68d1-44b0-af5c-e31b4b7ee5cd/kerberos",
; "tenant_region_scope": "NA",
; "cloud_instance_name": "microsoftonline.com",
; "cloud_graph_host_name": "graph.windows.net",
; "msgraph_host": "graph.microsoft.com",
; "rbac_url": "https://pas.windows.net"
; }
Local $strVal
Local $sToken_endpoint = $oJson.StringOf("token_endpoint")
Local $sJwks_uri = $oJson.StringOf("jwks_uri")
Local $sIssuer = $oJson.StringOf("issuer")
Local $bRequest_uri_parameter_supported = $oJson.BoolOf("request_uri_parameter_supported")
Local $sUserinfo_endpoint = $oJson.StringOf("userinfo_endpoint")
Local $sAuthorization_endpoint = $oJson.StringOf("authorization_endpoint")
Local $sDevice_authorization_endpoint = $oJson.StringOf("device_authorization_endpoint")
Local $bHttp_logout_supported = $oJson.BoolOf("http_logout_supported")
Local $bFrontchannel_logout_supported = $oJson.BoolOf("frontchannel_logout_supported")
Local $sEnd_session_endpoint = $oJson.StringOf("end_session_endpoint")
Local $sKerberos_endpoint = $oJson.StringOf("kerberos_endpoint")
Local $sTenant_region_scope = $oJson.StringOf("tenant_region_scope")
Local $sCloud_instance_name = $oJson.StringOf("cloud_instance_name")
Local $sCloud_graph_host_name = $oJson.StringOf("cloud_graph_host_name")
Local $sMsgraph_host = $oJson.StringOf("msgraph_host")
Local $sRbac_url = $oJson.StringOf("rbac_url")
Local $i = 0
Local $iCount_i = $oJson.SizeOfArray("token_endpoint_auth_methods_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("token_endpoint_auth_methods_supported[i]")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("response_modes_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("response_modes_supported[i]")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("subject_types_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("subject_types_supported[i]")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("id_token_signing_alg_values_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("id_token_signing_alg_values_supported[i]")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("response_types_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("response_types_supported[i]")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("scopes_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("scopes_supported[i]")
$i = $i + 1
Wend
$i = 0
$iCount_i = $oJson.SizeOfArray("claims_supported")
While $i < $iCount_i
$oJson.I = $i
$strVal = $oJson.StringOf("claims_supported[i]")
$i = $i + 1
Wend