Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To start the authentication process an empty POST call is sent to following URI:
https://pfzww.audkenni.is:443/sso/json/realms/root/realms/audkenni/authenticate?authIndexType=service&authIndexValue=api_v100v200

Notice the Query parameter “authIndexValue”. It’s value is to select the REST API version to use.

...

Code Block
curl --location --request POST 'https://pfzww.audkenni.is:443/sso/json/realms/root/realms/audkenni/authenticate?authIndexType=service&authIndexValue=api_v100v200' \
--header 'Content-Type: application/json' \
--header 'Accept-API-Version: resource=2.0,protocol=1.0' \
--data-raw '{}'

...

Code Block
languagec#
var client = new RestClient("https://pfzww.audkenni.is:443/sso/json/realms/root/realms/audkenni/authenticate?authIndexType=service&authIndexValue=api_v100v200");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept-API-Version", "resource=2.0,protocol=1.0");
request.AddParameter("application/json", "{}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

...

To authenticate using Auðkennis APP another POST call is sent to following URI:
https://pfzww.audkenni.is:443/sso/json/realms/root/realms/audkenni/authenticate?authIndexType=service&authIndexValue=api_v100v200

Callbacks

There are 7 callbacks that needs to be answered in this call.

...

Code Block
curl --location --request POST 'https://pfzww.audkenni.is:443/sso/json/realms/root/realms/audkenni/authenticate?authIndexType=service&authIndexValue=api_v100v200' \
--header 'Content-Type: application/json' \
--header 'Accept-API-Version: resource=2.0,protocol=1.0' \
--header 'Cookie: audssossolb=03' \
--data-raw '{
    "authId": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoSW5kZXhWYWx1ZSI6ImFwaV92MTAwIiwib3RrIjoiNGIxM2R2aDZyZTN0bjluOXU3Z2ptam82ZnUiLCJhdXRoSW5kZXhUeXBlIjoic2VydmljZSIsInJlYWxtIjoiL2F1ZGtlbm5pIiwic2Vzc2lvbklkIjoiKkFBSlRTUUFDTURJQUJIUjVjR1VBQ0VwWFZGOUJWVlJJQUFKVE1RQUNNRE0uKmV5SjBlWEFpT2lKS1YxUWlMQ0pqZEhraU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuWlhsS01HVllRV2xQYVVwTFZqRlJhVXhEU2paaFdFRnBUMmxLVDFRd05VWkphWGRwV2xjMWFrbHFiMmxSVkVWNVQwVk9RMUY1TVVsVmVra3hUbWxKYzBsdFJuTmFlVWsyU1cxU2NHTnBTamt1TGpkRWNWVnRlV3hXYVZwdlJXNTVPSGhSYTBOeFMyY3VjWFphTlY5eldrcDFkMU51YzFKSk9HNXBOMFE0WkVWeU5FaDZNMWROU2kxc1lVVnZkV2RKYVVaSGNWbGZhbnBQTTFaMGRFMW1OVEkzUzFCT1QyaHRVMTlCWmpjNGNGUmtWRmQwTlVad2VUSnZPVVJ4V21kc2VtVjJSa0ZWU1c1YU5sbzRhMjlaYTI5blkwRlpTbm8zUjBkUlNGRXhYMTlWZWsxVFZYRldhRUZTYUdOQ2FWUnNYMTlhTW14bFpWZHpVRGgxTTNsU2VtUk5ZVTlQTkZWU1l6UlVTVlJXYkZoa1lURnljamxyUlZOVWNtdEJaMloyTUVjek1tWm9SakowWjNKNk9FMDBjMjAxUkhCNlZVVXhNMUpVZG1keFpHWXhRVmRsT1VSTlFVZDRlR2xpTFdSbVVFdFJhMXA0U21KNlRrSm5WWFZqUW5sdVYyOTNkblZwT1hsb01UTndaMmxSWVZwNGFrRmpVbWQzUjI5U2QxcHFVRzgxUzJKVmF6QkdTVkJXVlRsMlNrNVFjSEZVTUd0Q1JtaDVWRXRKWld4elZIQkNORkpOZDJaMmNXZzRZbGxMZDBjeVFqQnViSFJZWTNoU2JHZGlNMko1UnpGZlFrNU9RMkpaZEVaalJtRXpVM1pQVFdVM1JuVTJlbmRpVERSQlRXaHpOMUZ2TmpkalEydzFWRk56WTB0WVNqaHBNRFI2YTJrNFIxRmlNSHBIVldWUk1YWkJTVkJGVVd4T1dsTmxVVkZYZFd4Qk4yd3hTMlpvUjNFMFVrZGFUR2h6U1d0UFIzazFkVE5JYjJSUlkxOVZlSEJ3VFRCR1NWcDJiR2hZZVZOc1NDMU9jbkJzZGpJMmJUVkxPRkZZUW0wdFprVnVhRkJzWlZKMVdGWmhVVGgyY1hOek9WcEVjVGxUYVhKVE9GWkJOMlJQZG5sRlYwVTFZMWxyTWxsd1FsaHJRVjlIYVV4dlN6ZDFkMlpRV1VnNVJ6bFBVRjl1YkdKdk5qbFZlblpuT1hNeVZ6Y3lWM2RFUlhGcWQxQmllblZPT1hKNmVHdDFibE5VZG5WalZsOVpZME14VDNNd2VUQndOV0Z6VkhWS1ptRkxVbDlpVVhKdVRVeEtVMDgyTUVSRllYRnpTMTk2VDA1alVsUjJNMWhuYUVaalJWbEVNak5uY25kTU9ETmFOWEJFZVRjNE5rTmtjVTlKVkZObmRXUmpTVWMwUkVWMFVqZHpibFZQZGtGMGJVTkJhV1Z3ZEV4c1VITlhPV2swYUV4Nk1YY3hZVkV6U1dOQkxqVk5WRzFpV2xaTFlqUlFVM1JsVFRoa2FEQlBRVUUuSjcxMVcweXRiVnVKZUpJMXFRNl9keTlUM0hvcTFST2RnNERVcUlXdUI0YyIsImV4cCI6MTYxMTA1NjA2OSwiaWF0IjoxNjExMDU1NzY5fQ.u2__M6JpolKkkNCEmclYfzmrIzD9NQV93YF6Se-q7xs",
    "callbacks": [
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Sláðu inn clientId"
                }
            ],
            "input": [
                {
                    "name": "IDToken1",
                    "value": "myApiClientId"
                }
            ],
            "_id": 0
        },
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Sláðu inn Related Party"
                }
            ],
            "input": [
                {
                    "name": "IDToken2",
                    "value": "MyOwnClient"
                }
            ],
            "_id": 1
        },        
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Sláðu inn símanúmer eða kennitölu"
                }
            ],
            "input": [
                {
                    "name": "IDToken3",
                    "value": "123456789"
                }
            ],
            "_id": 2
        },
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Sláðu inn skilaboð til notanda"
                }
            ],
            "input": [
                {
                    "name": "IDToken4",
                    "value": "Authentication to Auðkenni"
                }
            ],
            "_id": 3
        },
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Nota vchoice (true eða false)"
                }
            ],
            "input": [
                {
                    "name": "IDToken5",
                    "value": "false"
                }
            ],
            "_id": 4
        },
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Nota confirmMessage (true eða false)"
                }
            ],
            "input": [
                {
                    "name": "IDToken6",
                    "value": "false"
                }
            ],
            "_id": 5
        },
        {
            "type": "NameCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Sláðu inn Hash gildi"
                }
            ],
            "input": [
                {
                    "name": "IDToken7",
                    "value": "n/kRNhXaZ2jFKv8KlQX7ydgedXUmVy8b2O4xNq2ZxHteG7wOvCa0Kg3rY1JLOrOBXYQm+z2FRVwIv47w8gUb5g=="
                }
            ],
            "_id": 6
        }, 
        {
            "type": "ChoiceCallback",
            "output": [
                {
                    "name": "prompt",
                    "value": "Veldu auðkenningarleið"
                },
                {
                    "name": "choices",
                    "value": [
                        "sim",
                        "card",
                        "app"
                    ]
                },
                {
                    "name": "defaultChoice",
                    "value": 0
                }
            ],
            "input": [
                {
                    "name": "IDToken8",
                    "value": 2
                }
            ],
            "_id": 7
        }
    ]
}'

...

Code Block
languagec#
var client = new RestClient("https://pfzww.audkenni.is:443/sso/json/realms/root/realms/audkenni/authenticate?authIndexType=service&authIndexValue=api_v100v200");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept-API-Version", "resource=2.0,protocol=1.0");
request.AddHeader("Cookie", "audssossolb=03");
request.AddParameter("application/json", "{\n    \"authId\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdXRoSW5kZXhWYWx1ZSI6ImFwaV92MTAwIiwib3RrIjoiNGIxM2R2aDZyZTN0bjluOXU3Z2ptam82ZnUiLCJhdXRoSW5kZXhUeXBlIjoic2VydmljZSIsInJlYWxtIjoiL2F1ZGtlbm5pIiwic2Vzc2lvbklkIjoiKkFBSlRTUUFDTURJQUJIUjVjR1VBQ0VwWFZGOUJWVlJJQUFKVE1RQUNNRE0uKmV5SjBlWEFpT2lKS1YxUWlMQ0pqZEhraU9pSktWMVFpTENKaGJHY2lPaUpJVXpJMU5pSjkuWlhsS01HVllRV2xQYVVwTFZqRlJhVXhEU2paaFdFRnBUMmxLVDFRd05VWkphWGRwV2xjMWFrbHFiMmxSVkVWNVQwVk9RMUY1TVVsVmVra3hUbWxKYzBsdFJuTmFlVWsyU1cxU2NHTnBTamt1TGpkRWNWVnRlV3hXYVZwdlJXNTVPSGhSYTBOeFMyY3VjWFphTlY5eldrcDFkMU51YzFKSk9HNXBOMFE0WkVWeU5FaDZNMWROU2kxc1lVVnZkV2RKYVVaSGNWbGZhbnBQTTFaMGRFMW1OVEkzUzFCT1QyaHRVMTlCWmpjNGNGUmtWRmQwTlVad2VUSnZPVVJ4V21kc2VtVjJSa0ZWU1c1YU5sbzRhMjlaYTI5blkwRlpTbm8zUjBkUlNGRXhYMTlWZWsxVFZYRldhRUZTYUdOQ2FWUnNYMTlhTW14bFpWZHpVRGgxTTNsU2VtUk5ZVTlQTkZWU1l6UlVTVlJXYkZoa1lURnljamxyUlZOVWNtdEJaMloyTUVjek1tWm9SakowWjNKNk9FMDBjMjAxUkhCNlZVVXhNMUpVZG1keFpHWXhRVmRsT1VSTlFVZDRlR2xpTFdSbVVFdFJhMXA0U21KNlRrSm5WWFZqUW5sdVYyOTNkblZwT1hsb01UTndaMmxSWVZwNGFrRmpVbWQzUjI5U2QxcHFVRzgxUzJKVmF6QkdTVkJXVlRsMlNrNVFjSEZVTUd0Q1JtaDVWRXRKWld4elZIQkNORkpOZDJaMmNXZzRZbGxMZDBjeVFqQnViSFJZWTNoU2JHZGlNMko1UnpGZlFrNU9RMkpaZEVaalJtRXpVM1pQVFdVM1JuVTJlbmRpVERSQlRXaHpOMUZ2TmpkalEydzFWRk56WTB0WVNqaHBNRFI2YTJrNFIxRmlNSHBIVldWUk1YWkJTVkJGVVd4T1dsTmxVVkZYZFd4Qk4yd3hTMlpvUjNFMFVrZGFUR2h6U1d0UFIzazFkVE5JYjJSUlkxOVZlSEJ3VFRCR1NWcDJiR2hZZVZOc1NDMU9jbkJzZGpJMmJUVkxPRkZZUW0wdFprVnVhRkJzWlZKMVdGWmhVVGgyY1hOek9WcEVjVGxUYVhKVE9GWkJOMlJQZG5sRlYwVTFZMWxyTWxsd1FsaHJRVjlIYVV4dlN6ZDFkMlpRV1VnNVJ6bFBVRjl1YkdKdk5qbFZlblpuT1hNeVZ6Y3lWM2RFUlhGcWQxQmllblZPT1hKNmVHdDFibE5VZG5WalZsOVpZME14VDNNd2VUQndOV0Z6VkhWS1ptRkxVbDlpVVhKdVRVeEtVMDgyTUVSRllYRnpTMTk2VDA1alVsUjJNMWhuYUVaalJWbEVNak5uY25kTU9ETmFOWEJFZVRjNE5rTmtjVTlKVkZObmRXUmpTVWMwUkVWMFVqZHpibFZQZGtGMGJVTkJhV1Z3ZEV4c1VITlhPV2swYUV4Nk1YY3hZVkV6U1dOQkxqVk5WRzFpV2xaTFlqUlFVM1JsVFRoa2FEQlBRVUUuSjcxMVcweXRiVnVKZUpJMXFRNl9keTlUM0hvcTFST2RnNERVcUlXdUI0YyIsImV4cCI6MTYxMTA1NjA2OSwiaWF0IjoxNjExMDU1NzY5fQ.u2__M6JpolKkkNCEmclYfzmrIzD9NQV93YF6Se-q7xs\",\n    \"callbacks\": [\n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Sláðu inn clientId\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken1\",\n                    \"value\": \"myApiClientId\"\n                }\n            ],\n            \"_id\": 0\n        },\n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Sláðu inn Related Party\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken2\",\n                    \"value\": \"MyOwnClient\"\n                }\n            ],\n            \"_id\": 1\n        },        \n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Sláðu inn símanúmer eða kennitölu\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken3\",\n                    \"value\": \"123456789\"\n                }\n            ],\n            \"_id\": 2\n        },\n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Sláðu inn skilaboð til notanda\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken4\",\n                    \"value\": \"Authentication to Auðkenni\"\n                }\n            ],\n            \"_id\": 3\n        },\n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Nota vchoice (true eða false)\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken5\",\n                    \"value\": \"false\"\n                }\n            ],\n            \"_id\": 4\n        },\n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Nota confirmMessage (true eða false)\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken6\",\n                    \"value\": \"false\"\n                }\n            ],\n            \"_id\": 5\n        },\n        {\n            \"type\": \"NameCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Sláðu inn Hash gildi\"\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken7\",\n                    \"value\": \"n/kRNhXaZ2jFKv8KlQX7ydgedXUmVy8b2O4xNq2ZxHteG7wOvCa0Kg3rY1JLOrOBXYQm+z2FRVwIv47w8gUb5g==\"\n                }\n            ],\n            \"_id\": 6\n        }, \n        {\n            \"type\": \"ChoiceCallback\",\n            \"output\": [\n                {\n                    \"name\": \"prompt\",\n                    \"value\": \"Veldu auðkenningarleið\"\n                },\n                {\n                    \"name\": \"choices\",\n                    \"value\": [\n                        \"sim\",\n                        \"card\",\n                        \"app\"\n                    ]\n                },\n                {\n                    \"name\": \"defaultChoice\",\n                    \"value\": 0\n                }\n            ],\n            \"input\": [\n                {\n                    \"name\": \"IDToken8\",\n                    \"value\": 2\n                }\n            ],\n            \"_id\": 7\n        }\n    ]\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

...

To get the Authentication Code we send a GET call to following URI:
https://pfzww.audkenni.is:443/sso/oauth2/realms/root/realms/audkenni/authorize?service=api_v100v200&client_id=myApiClientId&response_type=code&scope=openid profile signature&code_challenge=5WnuXW4ALVNtX9G6MydkrPs-F2suz0TQkoaKBsk8Hzk&code_challenge_method=S256&state=abc123&redirect_uri=http://localhost:3000/callback

Header needed in the call

...

Code Block
curl --location --request GET 'https://pfzww.audkenni.is:443/sso/oauth2/realms/root/realms/audkenni/authorize?service=api_v100v200&client_id=myApiClientId&response_type=code&scope=openid%20profile%20signature&code_challenge=5WnuXW4ALVNtX9G6MydkrPs-F2suz0TQkoaKBsk8Hzk&code_challenge_method=S256&state=abc123&redirect_uri=http://localhost:3000/callback' \
--header 'Cookie: audsso=tnPGRz4kjKhRfL8B2jjxPCo0Wcc.*AAJTSQACMDIAAlNLABxPYmVUSDZPWlNrK2ptZWJ0NVJDWE9PUHhweXM9AAR0eXBlAANDVFMAAlMxAAIwMw..*; audssossolb=03; audsso=tnPGRz4kjKhRfL8B2jjxPCo0Wcc.*AAJTSQACMDIAAlNLABxPYmVUSDZPWlNrK2ptZWJ0NVJDWE9PUHhweXM9AAR0eXBlAANDVFMAAlMxAAIwMw..*' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-raw ''

...

Code Block
languagec#
var client = new RestClient("https://pfzww.audkenni.is:443/sso/oauth2/realms/root/realms/audkenni/authorize?service=api_v100v200&client_id=myApiClientId&response_type=code&scope=openid profile signature&code_challenge=5WnuXW4ALVNtX9G6MydkrPs-F2suz0TQkoaKBsk8Hzk&code_challenge_method=S256&state=abc123&redirect_uri=http://localhost:3000/callback");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Cookie", "audsso=tnPGRz4kjKhRfL8B2jjxPCo0Wcc.*AAJTSQACMDIAAlNLABxPYmVUSDZPWlNrK2ptZWJ0NVJDWE9PUHhweXM9AAR0eXBlAANDVFMAAlMxAAIwMw..*; audssossolb=03; audsso=tnPGRz4kjKhRfL8B2jjxPCo0Wcc.*AAJTSQACMDIAAlNLABxPYmVUSDZPWlNrK2ptZWJ0NVJDWE9PUHhweXM9AAR0eXBlAANDVFMAAlMxAAIwMw..*");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("application/x-www-form-urlencoded", "",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

...