@connectid-tools/rp-nodejs-sdk 4.2.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +284 -237
- package/package.json +7 -5
- package/{config.js → src/config.js} +2 -31
- package/src/conformance/api/conformance-api.d.ts +38 -0
- package/src/conformance/api/conformance-api.js +53 -0
- package/src/conformance/config.json +60 -0
- package/src/conformance/conformance-config.d.ts +2 -0
- package/src/conformance/conformance-config.js +34 -0
- package/src/conformance/conformance.test.js +101 -0
- package/src/conformance/variant.json +1 -0
- package/src/crypto/crypto-loader.d.ts +32 -0
- package/src/crypto/crypto-loader.js +49 -0
- package/src/crypto/jwt-helper.d.ts +61 -0
- package/src/crypto/jwt-helper.js +92 -0
- package/src/crypto/pkce-helper.d.ts +43 -0
- package/src/crypto/pkce-helper.js +75 -0
- package/src/endpoints/participants-endpoint.d.ts +55 -0
- package/src/endpoints/participants-endpoint.js +137 -0
- package/src/endpoints/pushed-authorisation-request-endpoint.d.ts +87 -0
- package/src/endpoints/pushed-authorisation-request-endpoint.js +192 -0
- package/src/endpoints/retrieve-token-endpoint.d.ts +66 -0
- package/src/endpoints/retrieve-token-endpoint.js +159 -0
- package/src/endpoints/userinfo-endpoint.d.ts +24 -0
- package/src/endpoints/userinfo-endpoint.js +50 -0
- package/src/fapi/fapi-utils.d.ts +6 -0
- package/src/fapi/fapi-utils.js +9 -0
- package/src/http/http-client-extensions.d.ts +60 -0
- package/src/http/http-client-extensions.js +106 -0
- package/src/http/http-client-factory.d.ts +27 -0
- package/src/http/http-client-factory.js +45 -0
- package/src/integration/integration.test.d.ts +1 -0
- package/src/integration/integration.test.js +30 -0
- package/src/model/callback-params.d.ts +31 -0
- package/src/model/callback-params.js +1 -0
- package/src/model/claims.d.ts +100 -0
- package/src/model/claims.js +1 -0
- package/src/model/consolidated-token-set.d.ts +74 -0
- package/src/model/consolidated-token-set.js +100 -0
- package/src/model/discovery-service.d.ts +46 -0
- package/src/model/discovery-service.js +112 -0
- package/src/model/issuer-metadata.d.ts +165 -0
- package/src/model/issuer-metadata.js +1 -0
- package/src/model/jwks.d.ts +12 -0
- package/src/model/jwks.js +1 -0
- package/src/model/token-response.d.ts +31 -0
- package/src/model/token-response.js +1 -0
- package/src/model/token-set.d.ts +73 -0
- package/src/model/token-set.js +179 -0
- package/src/relying-party-client-sdk.d.ts +68 -0
- package/src/relying-party-client-sdk.js +150 -0
- package/src/test-data/large-participants-test-data.d.ts +865 -0
- package/src/test-data/large-participants-test-data.js +18907 -0
- package/src/test-data/participants-test-data.d.ts +149 -0
- package/src/test-data/participants-test-data.js +458 -0
- package/src/test-data/sandbox-participants-test-data.d.ts +865 -0
- package/src/test-data/sandbox-participants-test-data.js +3794 -0
- package/src/tests/cert-utils.test.d.ts +1 -0
- package/src/tests/cert-utils.test.js +13 -0
- package/src/tests/functional-utils.test.d.ts +1 -0
- package/src/tests/functional-utils.test.js +13 -0
- package/src/tests/participant-filters.test.d.ts +1 -0
- package/src/tests/participant-filters.test.js +151 -0
- package/src/tests/pushed-authorisation-request-endpoint.test.d.ts +1 -0
- package/src/tests/pushed-authorisation-request-endpoint.test.js +159 -0
- package/src/tests/relying-party-client-sdk.test.d.ts +1 -0
- package/src/tests/relying-party-client-sdk.test.js +313 -0
- package/src/tests/request-utils.test.d.ts +1 -0
- package/src/tests/request-utils.test.js +16 -0
- package/src/tests/system-information.test.d.ts +1 -0
- package/src/tests/system-information.test.js +16 -0
- package/src/tests/user-agent.test.d.ts +1 -0
- package/src/tests/user-agent.test.js +23 -0
- package/src/tests/validator.test.d.ts +1 -0
- package/src/tests/validator.test.js +38 -0
- package/{types.d.ts → src/types.d.ts} +61 -32
- package/src/types.js +1 -0
- package/{utils → src/utils}/request-utils.d.ts +1 -1
- package/src/utils/request-utils.js +8 -0
- package/{utils → src/utils}/user-agent.d.ts +1 -1
- package/src/utils/user-agent.js +4 -0
- package/relying-party-client-sdk.d.ts +0 -37
- package/relying-party-client-sdk.js +0 -364
- package/utils/request-utils.js +0 -8
- package/utils/user-agent.js +0 -6
- /package/{config.d.ts → src/config.d.ts} +0 -0
- /package/{types.js → src/conformance/conformance.test.d.ts} +0 -0
- /package/{filter → src/filter}/participant-filters.d.ts +0 -0
- /package/{filter → src/filter}/participant-filters.js +0 -0
- /package/{logger.d.ts → src/logger.d.ts} +0 -0
- /package/{logger.js → src/logger.js} +0 -0
- /package/{utils → src/utils}/cert-utils.d.ts +0 -0
- /package/{utils → src/utils}/cert-utils.js +0 -0
- /package/{utils → src/utils}/functional-utils.d.ts +0 -0
- /package/{utils → src/utils}/functional-utils.js +0 -0
- /package/{utils → src/utils}/system-information.d.ts +0 -0
- /package/{utils → src/utils}/system-information.js +0 -0
- /package/{validator.d.ts → src/validator.d.ts} +0 -0
- /package/{validator.js → src/validator.js} +0 -0
package/README.md
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
# Relying Party Node.
|
|
1
|
+
# Relying Party Node.js SDK
|
|
2
2
|
|
|
3
3
|
The rp-nodejs-sdk provides an SDK to allows Relying Parties easily integrate with the Digital Identity ecosystem.
|
|
4
4
|
|
|
5
5
|
# Getting Started
|
|
6
6
|
|
|
7
|
-
> A minimum of Node
|
|
7
|
+
> A minimum of Node.js version 20.x is recommended. Download [here](https://nodejs.org/download/release/v20.9.0/).
|
|
8
8
|
|
|
9
|
-
Install the package in your
|
|
9
|
+
Install the package in your Node.js project using:
|
|
10
10
|
|
|
11
11
|
```shell
|
|
12
12
|
npm install @connectid-tools/rp-nodejs-sdk
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Update your `package.json` to use `module`:
|
|
16
|
+
|
|
16
17
|
```json
|
|
17
18
|
{
|
|
18
19
|
.
|
|
@@ -25,23 +26,26 @@ Update your `package.json` to use `module`:
|
|
|
25
26
|
You can then import and instantiate an instance of the rp-nodejs-sdk using:
|
|
26
27
|
|
|
27
28
|
```javascript
|
|
28
|
-
import { config } from './config.js'
|
|
29
|
-
import RelyingPartyClientSdk from './relying-party-client-sdk'
|
|
29
|
+
import { config } from './config.js'
|
|
30
|
+
import RelyingPartyClientSdk from './relying-party-client-sdk'
|
|
30
31
|
|
|
31
|
-
const rpClient = new RelyingPartyClientSdk(config)
|
|
32
|
+
const rpClient = new RelyingPartyClientSdk(config)
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
The above code assumes that you have a config file called `config.js` in your project folder that contains
|
|
35
36
|
the configuration required for the sdk, eg: the location of the certificate files, the client details,
|
|
36
37
|
the callback urls, etc. The configuration attributes are described below.
|
|
37
38
|
|
|
38
|
-
## Using
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
## Using TypeScript
|
|
40
|
+
|
|
41
|
+
To use the Node.js SDK with TypeScript you'll need to make the following changes in your `tsconfig.json`:
|
|
42
|
+
|
|
43
|
+
- Set `"target: "es2016"` or higher
|
|
44
|
+
- Have `"module": "ES2015"` or higher
|
|
45
|
+
- Have `"moduleResolution": "Bundler"`
|
|
43
46
|
|
|
44
47
|
Sample tsconfig:
|
|
48
|
+
|
|
45
49
|
```json
|
|
46
50
|
{
|
|
47
51
|
"compilerOptions": {
|
|
@@ -49,13 +53,17 @@ Sample tsconfig:
|
|
|
49
53
|
"module": "ES2015",
|
|
50
54
|
"moduleResolution": "Bundler",
|
|
51
55
|
"strictNullChecks": true,
|
|
52
|
-
"outDir": "dist/"
|
|
56
|
+
"outDir": "dist/"
|
|
53
57
|
},
|
|
54
58
|
"include": ["**/*.ts"]
|
|
55
59
|
}
|
|
56
60
|
```
|
|
61
|
+
|
|
57
62
|
### Setting up SDK config options
|
|
58
|
-
|
|
63
|
+
|
|
64
|
+
`RelyingPartyClientSdkConfig` has some fixed values. To be able to set the config
|
|
65
|
+
options for the SDK you can use the example as below:
|
|
66
|
+
|
|
59
67
|
```typescript
|
|
60
68
|
// index.ts
|
|
61
69
|
import RelyingPartyClientSdk from '@connectid-tools/rp-nodejs-sdk'
|
|
@@ -68,37 +76,11 @@ const relyingPartyClientSdk = new RelyingPartyClientSdk(config)
|
|
|
68
76
|
// config.ts
|
|
69
77
|
export const config = {
|
|
70
78
|
data: {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
.
|
|
77
|
-
.
|
|
78
|
-
client: {
|
|
79
|
-
.
|
|
80
|
-
.
|
|
81
|
-
.
|
|
82
|
-
application_type: 'web' as const,
|
|
83
|
-
grant_types: ['client_credentials', 'authorization_code', 'implicit'] as ['client_credentials', 'authorization_code', 'implicit'],
|
|
84
|
-
id_token_signed_response_alg: 'PS256' as const,
|
|
85
|
-
post_logout_redirect_uris: [] as [],
|
|
86
|
-
require_auth_time: false as const,
|
|
87
|
-
response_types: ['code id_token', 'code'] as ['code id_token', 'code'],
|
|
88
|
-
subject_type: 'public' as const,
|
|
89
|
-
token_endpoint_auth_method: 'private_key_jwt' as const,
|
|
90
|
-
token_endpoint_auth_signing_alg: 'PS256' as const,
|
|
91
|
-
introspection_endpoint_auth_method: 'private_key_jwt' as const,
|
|
92
|
-
revocation_endpoint_auth_method: 'private_key_jwt' as const,
|
|
93
|
-
request_object_signing_alg: 'PS256' as const,
|
|
94
|
-
require_signed_request_object: true as const,
|
|
95
|
-
require_pushed_authorization_requests: true as const,
|
|
96
|
-
authorization_signed_response_alg: 'PS256' as const,
|
|
97
|
-
tls_client_certificate_bound_access_tokens: true as const,
|
|
98
|
-
backchannel_user_code_parameter: false as const,
|
|
99
|
-
scope: 'openid' as const,
|
|
100
|
-
software_roles: ['RP-CORE'] as ['RP-CORE'],
|
|
101
|
-
},
|
|
79
|
+
.
|
|
80
|
+
.
|
|
81
|
+
.
|
|
82
|
+
log_level: 'info' as const,
|
|
83
|
+
}
|
|
102
84
|
```
|
|
103
85
|
|
|
104
86
|
# rp-nodejs-sdk Configuration
|
|
@@ -112,36 +94,32 @@ the configuration properties is available from: <https://github.com/connectid-to
|
|
|
112
94
|
The simplest way to pass in the configuration is shown below (assumes the `config.js` file is in the project directory):
|
|
113
95
|
|
|
114
96
|
```javascript
|
|
115
|
-
const config = require('./config')
|
|
116
|
-
const RelyingPartyClientSdk = require('@connectid-tools/rp-nodejs-sdk')
|
|
117
|
-
const rpClient = new RelyingPartyClientSdk(config)
|
|
97
|
+
const config = require('./config')
|
|
98
|
+
const RelyingPartyClientSdk = require('@connectid-tools/rp-nodejs-sdk')
|
|
99
|
+
const rpClient = new RelyingPartyClientSdk(config)
|
|
118
100
|
```
|
|
119
101
|
|
|
120
|
-
| Property | Description | Example value
|
|
121
|
-
|
|
122
|
-
| `ca_pem` | The collection of trusted root certificates that can be used for certification validation. May be an absolute or relative path. | `'./conf/ca.pem' `
|
|
123
|
-
| `ca_pem_content` | The collection of trusted root certificates content (string) that can be used for certification validation. Overrides `ca_pem`. | `'-----BEGIN CERTIFICATE----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'`
|
|
124
|
-
| `signing_kid` | The id for the signing key in the JWKS. This can be found in the registry via Software Statements -> Client Details -> Certificates | `'Xf1Pf-GXyhryOY5wwg0ddL5yzUicIcQrOIxja0yHhpg'`
|
|
125
|
-
| `signing_key` | The path to the signing key used when signing requests. May be an absolute or relative path. `signing_key` or `signing_key_content` must be used to provide the signing key. | `'./conf/signing.key'`
|
|
126
|
-
| `signing_key_content` | The signing key content (string) used when signing requests. If supplied, will override the key data supplied via `signing_key`. | `'-----BEGIN PRIVATE KEY----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'`
|
|
127
|
-
| `registry_participants_uri` | The URI for the registry endpoint that provides the participant list | `https://data.directory.sandbox.connectid.com.au/participants`
|
|
128
|
-
| `signing_pem` | The path to the signing certificate used when signing requests. May be an absolute or relative path. | `'./conf/signing.pem'`
|
|
129
|
-
| `transport_key` | The path to the transport key used for mutual TLS. May be an absolute or relative path. `transport_key` or `transport_key_content` must be used to provide the transport key. | `'./conf/transport.key'`
|
|
130
|
-
| `transport_key_content` | The transport key content (string) used for mutual TLS. If supplied, will override the key data supplied via `transport_key`. | `'-----BEGIN PRIVATE KEY----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'`
|
|
131
|
-
| `transport_pem` | The path to the transport certificate used for mutual TLS. May be an absolute or relative path. `tranport_pem` or `transport_pem_content` must be used to provide the transport certificate | `'./conf/transport.pem'`
|
|
132
|
-
| `transport_pem_content` | The transport certificate content (string) used for mutual TLS. If supplied, will override the certificate supplied via `transport_pem`. | `'-----BEGIN CERTIFICATE----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'`
|
|
133
|
-
| `application_redirect_uri` | The specific redirect url used for all requests from this rp-nodejs-sdk instance. Must be one of the redirect_urls specified in the registry for the client | `'https://tpp.localhost/cb'`
|
|
134
|
-
| `
|
|
135
|
-
| `
|
|
136
|
-
| `
|
|
137
|
-
| `
|
|
138
|
-
| `
|
|
139
|
-
| `
|
|
140
|
-
| `
|
|
141
|
-
| `purpose` | The default purpose to be displayed to the consumer on the IDP consent screen to indicate why their data is being requested to be shared | `'verifying your identity'` |
|
|
142
|
-
| `include_uncertified_participants` | By default the SDK will filter out all authorisation servers that are not fully certified. If you wish to test one of the uncertified auth servers you will need to set this to `true`. If not provided, defaults to 'false' | `false` |
|
|
143
|
-
| `required_claims` | The list of claims that the RP will be using and requires IDPs to support. If supplied, this will be used to filter the list of IDPs returned from `getParticipants` so that only IDPs supporting the claims are returned. If this value is not supplied, no filtering by claim support will be performed. | `['name', 'address']` |
|
|
144
|
-
| `required_participant_certifications` | The list of required certifications a server must support for the IDP use case (eg: TDIF Certification). If supplied, this will be used to filter the list of IDPs returned from `getParticipants` so that only IDPs with the certification are returned. If this value is not supplied, no filtering for specific certifications will be performed. | `[{ profileType: 'TDIF Accreditation', profileVariant: 'Identity Provider'}]` |
|
|
102
|
+
| Property | Description | Example value |
|
|
103
|
+
|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
|
104
|
+
| `ca_pem` | The collection of trusted root certificates that can be used for certification validation. May be an absolute or relative path. | `'./conf/ca.pem' ` |
|
|
105
|
+
| `ca_pem_content` | The collection of trusted root certificates content (string) that can be used for certification validation. Overrides `ca_pem`. | `'-----BEGIN CERTIFICATE----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'` |
|
|
106
|
+
| `signing_kid` | The id for the signing key in the JWKS. This can be found in the registry via Software Statements -> Client Details -> Certificates | `'Xf1Pf-GXyhryOY5wwg0ddL5yzUicIcQrOIxja0yHhpg'` |
|
|
107
|
+
| `signing_key` | The path to the signing key used when signing requests. May be an absolute or relative path. `signing_key` or `signing_key_content` must be used to provide the signing key. | `'./conf/signing.key'` |
|
|
108
|
+
| `signing_key_content` | The signing key content (string) used when signing requests. If supplied, will override the key data supplied via `signing_key`. | `'-----BEGIN PRIVATE KEY----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'` |
|
|
109
|
+
| `registry_participants_uri` | The URI for the registry endpoint that provides the participant list | `https://data.directory.sandbox.connectid.com.au/participants` |
|
|
110
|
+
| `signing_pem` | The path to the signing certificate used when signing requests. May be an absolute or relative path. | `'./conf/signing.pem'` |
|
|
111
|
+
| `transport_key` | The path to the transport key used for mutual TLS. May be an absolute or relative path. `transport_key` or `transport_key_content` must be used to provide the transport key. | `'./conf/transport.key'` |
|
|
112
|
+
| `transport_key_content` | The transport key content (string) used for mutual TLS. If supplied, will override the key data supplied via `transport_key`. | `'-----BEGIN PRIVATE KEY----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'` |
|
|
113
|
+
| `transport_pem` | The path to the transport certificate used for mutual TLS. May be an absolute or relative path. `tranport_pem` or `transport_pem_content` must be used to provide the transport certificate | `'./conf/transport.pem'` |
|
|
114
|
+
| `transport_pem_content` | The transport certificate content (string) used for mutual TLS. If supplied, will override the certificate supplied via `transport_pem`. | `'-----BEGIN CERTIFICATE----- MIIFnTCCBIWgAwIBAgIUKl2OAbHVc1r9isRs6WIExS/1BLgwDQYJKoZIhvcNAQEL...'` |
|
|
115
|
+
| `application_redirect_uri` | The specific redirect url used for all requests from this rp-nodejs-sdk instance. Must be one of the redirect_urls specified in the registry for the client | `'https://tpp.localhost/cb'` |
|
|
116
|
+
| `client_id` | Identifies the client. This value is available from the Registry via Software Statements -> Client Details -> Client ID | `'https://rp.directory.sandbox.connectid.com.au/openid_relying_party/280518db-9807-4824-b080-324d94b45f6a'` |
|
|
117
|
+
| `log_level` | The log level to use for console logs, eg: 'info', 'debug'. Enabling 'debug' will cause all requests and responses to remote servers to be logged. 'debug' must not be used in Production as it will log Personal Information. | `'info'` |
|
|
118
|
+
| `enable_auto_compliance_verification` | When running the OIDC FAPI compliance suite, it requires a call to userInfo after successfully decoding the response claims. If this is set to true, the SDK will automatically make the required call. | `false` |
|
|
119
|
+
| `purpose` | The default purpose to be displayed to the consumer on the IDP consent screen to indicate why their data is being requested to be shared | `'verifying your identity'` |
|
|
120
|
+
| `include_uncertified_participants` | By default the SDK will filter out all authorisation servers that are not fully certified. If you wish to test one of the uncertified auth servers you will need to set this to `true`. If not provided, defaults to 'false' | `false` |
|
|
121
|
+
| `required_claims` | The list of claims that the RP will be using and requires IDPs to support. If supplied, this will be used to filter the list of IDPs returned from `getParticipants` so that only IDPs supporting the claims are returned. If this value is not supplied, no filtering by claim support will be performed. | `['name', 'address']` |
|
|
122
|
+
| `required_participant_certifications` | The list of required certifications a server must support for the IDP use case (eg: TDIF Certification). If supplied, this will be used to filter the list of IDPs returned from `getParticipants` so that only IDPs with the certification are returned. If this value is not supplied, no filtering for specific certifications will be performed. | `[{ profileType: 'TDIF Accreditation', profileVariant: 'Identity Provider'}]` |
|
|
145
123
|
|
|
146
124
|
# Process Overview Sequence Diagram
|
|
147
125
|
|
|
@@ -149,21 +127,21 @@ The expected interactions between the Relying Party and RP Connector as part of
|
|
|
149
127
|
|
|
150
128
|
The key steps are:
|
|
151
129
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
130
|
+
- Retrieve the list of Participants so the user can be prompted to choose their bank
|
|
131
|
+
- Send a pushed authorisation request to the selected bank with the requested claims and redirect the user to their bank
|
|
132
|
+
- Use the callback querystring to retrieve the access token and identity token with the claims the user has consented to share
|
|
155
133
|
|
|
156
134
|
```mermaid
|
|
157
135
|
sequenceDiagram
|
|
158
136
|
Customer->>+Relying Party: Use Digital ID
|
|
159
137
|
Relying Party->>+rp-nodejs-sdk: getParticipants()
|
|
160
138
|
rp-nodejs-sdk-->>-Relying Party: Participant metadata
|
|
161
|
-
Relying Party-->>-Customer: Display Bank Selector
|
|
139
|
+
Relying Party-->>-Customer: Display Bank Selector
|
|
162
140
|
Customer->>+Relying Party: Select Bank
|
|
163
141
|
Relying Party->>+rp-nodejs-sdk: sendPushedAuthorisationRequest()
|
|
164
142
|
rp-nodejs-sdk-->>-Relying Party: authUrl, codeVerifier, state, nonce
|
|
165
143
|
Note right of Relying Party: The RP must associate the codeVerifier,<br/>state and nonce with the user<br/>to use when retrieving claims
|
|
166
|
-
Relying Party-->>-Customer: redirect to Bank using authUrl
|
|
144
|
+
Relying Party-->>-Customer: redirect to Bank using authUrl
|
|
167
145
|
Customer->>+Bank: redirect to AuthUrl
|
|
168
146
|
Bank->>Bank: Authenticate & Capture Consent
|
|
169
147
|
Bank-->>-Customer: Redirect customer to RP callback URI
|
|
@@ -188,126 +166,126 @@ You may also set the `required_claims` and `required_participant_certifications`
|
|
|
188
166
|
based on the needs of your use case (eg: if you require IDPs to be TDIF certified).
|
|
189
167
|
|
|
190
168
|
```javascript
|
|
191
|
-
const idps = await rpClient.getParticipants()
|
|
169
|
+
const idps = await rpClient.getParticipants()
|
|
192
170
|
```
|
|
193
171
|
|
|
194
172
|
The response will contain an array of Organisations and their Authorisation Server, with an object structure similar to below.
|
|
195
173
|
|
|
196
174
|
They key fields of interest are:
|
|
197
175
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
in the flow to identify the Authorisation Server to send the PAR to.
|
|
176
|
+
- `CustomerFriendlyName` - this is the name of the Bank to display to the customer
|
|
177
|
+
- `CustomerFriendlyLogoUri` - this is a logo for the Bank that can be displayed alongside the bank name
|
|
178
|
+
- `AuthorisationServerId` - this uniquely identifies the authorisation server. It will be needed as part of the next call
|
|
179
|
+
in the flow to identify the Authorisation Server to send the PAR to.
|
|
202
180
|
|
|
203
181
|
Note that in the response there may be:
|
|
204
182
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
to differentiate Business Banking from Retail Banking)
|
|
183
|
+
- multiple organisations - each Bank will be its own organisation
|
|
184
|
+
- multiple authorisation servers per bank - a Bank may have different authorisation servers for its different brands (or potentially
|
|
185
|
+
to differentiate Business Banking from Retail Banking)
|
|
208
186
|
|
|
209
187
|
```json
|
|
210
|
-
|
|
188
|
+
[
|
|
189
|
+
{
|
|
190
|
+
"Status": "Active",
|
|
191
|
+
"OrgDomainRoleClaims": [],
|
|
192
|
+
"AuthorisationServers": [
|
|
211
193
|
{
|
|
212
|
-
"
|
|
213
|
-
"
|
|
214
|
-
"
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
"SupportsCiba": false,
|
|
228
|
-
"DeveloperPortalUri": null,
|
|
229
|
-
"NotificationWebhookAddedDate": null,
|
|
230
|
-
"AuthorisationServerId": "cde44c30-9138-4b58-ba50-221833d14319"
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
"PayloadSigningCertLocationUri": "https://auth.bank3.directory.sandbox.connectid.com.au/na",
|
|
234
|
-
"ParentAuthorisationServerId": null,
|
|
235
|
-
"OpenIDDiscoveryDocument": "https://auth.bank3.directory.sandbox.connectid.com.au/.well-known/openid-configuration",
|
|
236
|
-
"CustomerFriendlyName": "Bank N",
|
|
237
|
-
"CustomerFriendlyDescription": "Bank3",
|
|
238
|
-
"TermsOfServiceUri": null,
|
|
239
|
-
"ApiResources": [],
|
|
240
|
-
"AutoRegistrationSupported": true,
|
|
241
|
-
"CustomerFriendlyLogoUri": "https://static.relyingparty.net/BankN.svg",
|
|
242
|
-
"SupportsDCR": false,
|
|
243
|
-
"AuthorisationServerCertifications": [],
|
|
244
|
-
"SupportsCiba": false,
|
|
245
|
-
"DeveloperPortalUri": null,
|
|
246
|
-
"NotificationWebhookAddedDate": null,
|
|
247
|
-
"AuthorisationServerId": "22c2d67e-4d95-414a-b51a-ca863e9d691d"
|
|
248
|
-
}
|
|
249
|
-
],
|
|
250
|
-
"OrgDomainClaims": [],
|
|
251
|
-
"Size": null,
|
|
252
|
-
"RegistrationId": null,
|
|
253
|
-
"OrganisationId": "ed63c5b4-4dcb-4867-bd8b-e2b04a0ab04b",
|
|
254
|
-
"City": "Banksville",
|
|
255
|
-
"Postcode": "4103",
|
|
256
|
-
"AddressLine2": "Bank Town",
|
|
257
|
-
"RegisteredName": "RefBank",
|
|
258
|
-
"AddressLine1": "1 Reference Bank Street",
|
|
259
|
-
"LegalEntityName": "Reference Bank",
|
|
260
|
-
"OrganisationName": "Reference Banks",
|
|
261
|
-
"Country": "AU",
|
|
262
|
-
"RegistrationNumber": "ABN 123 456 7890",
|
|
263
|
-
"CreatedOn": "2021-12-14T23:09:03.581Z",
|
|
264
|
-
"Tag": null,
|
|
265
|
-
"ParentOrganisationReference": "",
|
|
266
|
-
"CompanyRegister": "ABN",
|
|
267
|
-
"CountryOfRegistration": "AU"
|
|
194
|
+
"PayloadSigningCertLocationUri": "https://auth.bank4.directory.sandbox.connectid.com.au/na",
|
|
195
|
+
"ParentAuthorisationServerId": null,
|
|
196
|
+
"OpenIDDiscoveryDocument": "https://auth.bank4.directory.sandbox.connectid.com.au/.well-known/openid-configuration",
|
|
197
|
+
"CustomerFriendlyName": "Bank W",
|
|
198
|
+
"CustomerFriendlyDescription": "Bank4",
|
|
199
|
+
"TermsOfServiceUri": null,
|
|
200
|
+
"ApiResources": [],
|
|
201
|
+
"AutoRegistrationSupported": true,
|
|
202
|
+
"CustomerFriendlyLogoUri": "https://static.relyingparty.net/BankW.svg",
|
|
203
|
+
"SupportsDCR": false,
|
|
204
|
+
"AuthorisationServerCertifications": [],
|
|
205
|
+
"SupportsCiba": false,
|
|
206
|
+
"DeveloperPortalUri": null,
|
|
207
|
+
"NotificationWebhookAddedDate": null,
|
|
208
|
+
"AuthorisationServerId": "cde44c30-9138-4b58-ba50-221833d14319"
|
|
268
209
|
},
|
|
269
210
|
{
|
|
270
|
-
"
|
|
271
|
-
"
|
|
272
|
-
"
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
"SupportsCiba": false,
|
|
286
|
-
"DeveloperPortalUri": null,
|
|
287
|
-
"NotificationWebhookAddedDate": null,
|
|
288
|
-
"AuthorisationServerId": "355df9aa-bf8f-4cec-aa4d-78b10356762e"
|
|
289
|
-
}
|
|
290
|
-
],
|
|
291
|
-
"OrgDomainClaims": [],
|
|
292
|
-
"Size": null,
|
|
293
|
-
"RegistrationId": "",
|
|
294
|
-
"OrganisationId": "adf2af89-2782-4058-86d9-ff3a9068e4a5",
|
|
295
|
-
"City": "Sydney",
|
|
296
|
-
"Postcode": "2000",
|
|
297
|
-
"AddressLine2": "201 Sussex Street",
|
|
298
|
-
"RegisteredName": "Commonwealth Bank of Australia",
|
|
299
|
-
"AddressLine1": "Ground Floor Tower 1",
|
|
300
|
-
"LegalEntityName": "Commonwealth Bank of Australia",
|
|
301
|
-
"OrganisationName": "Commonwealth Bank of Australia",
|
|
302
|
-
"Country": "AU",
|
|
303
|
-
"RegistrationNumber": "ABN 48 123 123 124",
|
|
304
|
-
"CreatedOn": "2022-03-14T00:42:29.202Z",
|
|
305
|
-
"Tag": null,
|
|
306
|
-
"ParentOrganisationReference": "",
|
|
307
|
-
"CompanyRegister": "ABN",
|
|
308
|
-
"CountryOfRegistration": "AU"
|
|
211
|
+
"PayloadSigningCertLocationUri": "https://auth.bank3.directory.sandbox.connectid.com.au/na",
|
|
212
|
+
"ParentAuthorisationServerId": null,
|
|
213
|
+
"OpenIDDiscoveryDocument": "https://auth.bank3.directory.sandbox.connectid.com.au/.well-known/openid-configuration",
|
|
214
|
+
"CustomerFriendlyName": "Bank N",
|
|
215
|
+
"CustomerFriendlyDescription": "Bank3",
|
|
216
|
+
"TermsOfServiceUri": null,
|
|
217
|
+
"ApiResources": [],
|
|
218
|
+
"AutoRegistrationSupported": true,
|
|
219
|
+
"CustomerFriendlyLogoUri": "https://static.relyingparty.net/BankN.svg",
|
|
220
|
+
"SupportsDCR": false,
|
|
221
|
+
"AuthorisationServerCertifications": [],
|
|
222
|
+
"SupportsCiba": false,
|
|
223
|
+
"DeveloperPortalUri": null,
|
|
224
|
+
"NotificationWebhookAddedDate": null,
|
|
225
|
+
"AuthorisationServerId": "22c2d67e-4d95-414a-b51a-ca863e9d691d"
|
|
309
226
|
}
|
|
310
|
-
]
|
|
227
|
+
],
|
|
228
|
+
"OrgDomainClaims": [],
|
|
229
|
+
"Size": null,
|
|
230
|
+
"RegistrationId": null,
|
|
231
|
+
"OrganisationId": "ed63c5b4-4dcb-4867-bd8b-e2b04a0ab04b",
|
|
232
|
+
"City": "Banksville",
|
|
233
|
+
"Postcode": "4103",
|
|
234
|
+
"AddressLine2": "Bank Town",
|
|
235
|
+
"RegisteredName": "RefBank",
|
|
236
|
+
"AddressLine1": "1 Reference Bank Street",
|
|
237
|
+
"LegalEntityName": "Reference Bank",
|
|
238
|
+
"OrganisationName": "Reference Banks",
|
|
239
|
+
"Country": "AU",
|
|
240
|
+
"RegistrationNumber": "ABN 123 456 7890",
|
|
241
|
+
"CreatedOn": "2021-12-14T23:09:03.581Z",
|
|
242
|
+
"Tag": null,
|
|
243
|
+
"ParentOrganisationReference": "",
|
|
244
|
+
"CompanyRegister": "ABN",
|
|
245
|
+
"CountryOfRegistration": "AU"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"Status": "Active",
|
|
249
|
+
"OrgDomainRoleClaims": [],
|
|
250
|
+
"AuthorisationServers": [
|
|
251
|
+
{
|
|
252
|
+
"PayloadSigningCertLocationUri": "https://mtls.partner.idp.test.commbank.com.au/pf/JWKS",
|
|
253
|
+
"ParentAuthorisationServerId": null,
|
|
254
|
+
"OpenIDDiscoveryDocument": "https://mtls.partner.idp.test.commbank.com.au/.well-known/openid-configuration",
|
|
255
|
+
"CustomerFriendlyName": "Commonwealth Bank",
|
|
256
|
+
"CustomerFriendlyDescription": "Test IDP for CBA",
|
|
257
|
+
"TermsOfServiceUri": null,
|
|
258
|
+
"ApiResources": [],
|
|
259
|
+
"AutoRegistrationSupported": true,
|
|
260
|
+
"CustomerFriendlyLogoUri": "https://www.commbank.com.au/test.svg",
|
|
261
|
+
"SupportsDCR": false,
|
|
262
|
+
"AuthorisationServerCertifications": [],
|
|
263
|
+
"SupportsCiba": false,
|
|
264
|
+
"DeveloperPortalUri": null,
|
|
265
|
+
"NotificationWebhookAddedDate": null,
|
|
266
|
+
"AuthorisationServerId": "355df9aa-bf8f-4cec-aa4d-78b10356762e"
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
"OrgDomainClaims": [],
|
|
270
|
+
"Size": null,
|
|
271
|
+
"RegistrationId": "",
|
|
272
|
+
"OrganisationId": "adf2af89-2782-4058-86d9-ff3a9068e4a5",
|
|
273
|
+
"City": "Sydney",
|
|
274
|
+
"Postcode": "2000",
|
|
275
|
+
"AddressLine2": "201 Sussex Street",
|
|
276
|
+
"RegisteredName": "Commonwealth Bank of Australia",
|
|
277
|
+
"AddressLine1": "Ground Floor Tower 1",
|
|
278
|
+
"LegalEntityName": "Commonwealth Bank of Australia",
|
|
279
|
+
"OrganisationName": "Commonwealth Bank of Australia",
|
|
280
|
+
"Country": "AU",
|
|
281
|
+
"RegistrationNumber": "ABN 48 123 123 124",
|
|
282
|
+
"CreatedOn": "2022-03-14T00:42:29.202Z",
|
|
283
|
+
"Tag": null,
|
|
284
|
+
"ParentOrganisationReference": "",
|
|
285
|
+
"CompanyRegister": "ABN",
|
|
286
|
+
"CountryOfRegistration": "AU"
|
|
287
|
+
}
|
|
288
|
+
]
|
|
311
289
|
```
|
|
312
290
|
|
|
313
291
|
## getFallbackProviderParticipants()
|
|
@@ -323,13 +301,12 @@ Note that there is only expected to be a single Fallback Provider for the scheme
|
|
|
323
301
|
auth server should be returned here).
|
|
324
302
|
|
|
325
303
|
```javascript
|
|
326
|
-
const fallbackProviders = await rpClient.getFallbackProviderParticipants()
|
|
304
|
+
const fallbackProviders = await rpClient.getFallbackProviderParticipants()
|
|
327
305
|
```
|
|
328
306
|
|
|
329
307
|
The response will contain an array of Organisations and their Authorisation Servers, with the structure the same
|
|
330
308
|
as that for `getParticipants()`.
|
|
331
309
|
|
|
332
|
-
|
|
333
310
|
## sendPushedAuthorisationRequest(authServerId: string, essentialClaims: string[], voluntaryClaims: string[] = [], purpose: string = '{default value from config}')
|
|
334
311
|
|
|
335
312
|
This sends a Pushed Authorisation Request to the specified Identity Server requesting the list of supplied claims. The response
|
|
@@ -338,24 +315,24 @@ process.
|
|
|
338
315
|
|
|
339
316
|
The required function parameters are:
|
|
340
317
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
Note that permitted claim names are defined in section 6 of the [Digital ID API Security Profile](https://docs.sandbox.connectid.com.au/docs/network-documentation/technical-specifications/) specification.
|
|
344
|
-
When the IDP is obtaining user consent, the only method for a user to opt out of consenting to an `essential` claim is to cancel the entire transaction.
|
|
345
|
-
|
|
346
|
-
Note that permitted claim names are defined in section 6 of the [Digital ID API Security Profile](https://docs.sandbox.connectid.com.au/docs/network-documentation/technical-specifications/) specification.
|
|
347
|
-
When the IDP is obtaining user consent, they may allow the user to opt out of consenting to providing each of the `voluntary` claims, while still consenting to all `essential` claims.
|
|
348
|
-
If a user does not consent to `voluntary` claims, but does consent to `essential` claims, this will result in a successful transaction.
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
The method will return: `{ authUrl,
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
header to the server. Intended as a correlation id for diagnosing issues between the client and the authorisation server.
|
|
318
|
+
- `authorisationServerId` - identifies the authorisation server to send the PAR to
|
|
319
|
+
- `essentialClaims` - a list of the identity essential claim names that being requested for the user.
|
|
320
|
+
Note that permitted claim names are defined in section 6 of the [Digital ID API Security Profile](https://docs.sandbox.connectid.com.au/docs/network-documentation/technical-specifications/) specification.
|
|
321
|
+
When the IDP is obtaining user consent, the only method for a user to opt out of consenting to an `essential` claim is to cancel the entire transaction.
|
|
322
|
+
- `voluntaryClaims` - a list of the identity voluntary claim names that are being requested for the user.
|
|
323
|
+
Note that permitted claim names are defined in section 6 of the [Digital ID API Security Profile](https://docs.sandbox.connectid.com.au/docs/network-documentation/technical-specifications/) specification.
|
|
324
|
+
When the IDP is obtaining user consent, they may allow the user to opt out of consenting to providing each of the `voluntary` claims, while still consenting to all `essential` claims.
|
|
325
|
+
If a user does not consent to `voluntary` claims, but does consent to `essential` claims, this will result in a successful transaction.
|
|
326
|
+
- `purpose` - the purpose to be displayed to the consumer on the IDP consent screen to indicate why their data is being requested to be shared. If not supplied, the default purpose configured in the SDK config will be used.
|
|
327
|
+
|
|
328
|
+
The method will return: `{ authUrl, codeVerifier, state, nonce, xFapiInteractionId }`. The fields are:
|
|
329
|
+
|
|
330
|
+
- `authUrl` - the URL the user must be redirected to in order to complete the authorisation process with their Identity Provider
|
|
331
|
+
- `codeVerifier`
|
|
332
|
+
- `state`
|
|
333
|
+
- `nonce`
|
|
334
|
+
- `xFapiInteractionId` - a unique identifier for this interaction with the Authorisation Server, that was sent in the `x-fapi-interaction-id` request
|
|
335
|
+
header to the server. Intended as a correlation id for diagnosing issues between the client and the authorisation server.
|
|
359
336
|
|
|
360
337
|
The `codeVerifier`, `state` and `nonce` are all associated with this specific PAR and are required when retrieving the
|
|
361
338
|
token claims when the user has authorised the request. You must securely associate these with your user request
|
|
@@ -365,19 +342,19 @@ so that you can use them on the subsequent call.
|
|
|
365
342
|
|
|
366
343
|
```typescript
|
|
367
344
|
interface CallbackParamsType {
|
|
368
|
-
access_token?: string
|
|
369
|
-
code?: string
|
|
370
|
-
error?: string
|
|
371
|
-
error_description?: string
|
|
372
|
-
error_uri?: string
|
|
373
|
-
expires_in?: string
|
|
374
|
-
id_token?: string
|
|
375
|
-
state?: string
|
|
376
|
-
token_type?: string
|
|
377
|
-
session_state?: string
|
|
378
|
-
response?: string
|
|
379
|
-
|
|
380
|
-
[key: string]: unknown
|
|
345
|
+
access_token?: string
|
|
346
|
+
code?: string
|
|
347
|
+
error?: string
|
|
348
|
+
error_description?: string
|
|
349
|
+
error_uri?: string
|
|
350
|
+
expires_in?: string
|
|
351
|
+
id_token?: string
|
|
352
|
+
state?: string
|
|
353
|
+
token_type?: string
|
|
354
|
+
session_state?: string
|
|
355
|
+
response?: string
|
|
356
|
+
|
|
357
|
+
[key: string]: unknown
|
|
381
358
|
}
|
|
382
359
|
```
|
|
383
360
|
|
|
@@ -387,15 +364,14 @@ identity token with the claims. The tokens are then returned to the API caller.
|
|
|
387
364
|
|
|
388
365
|
The required function parameters are:
|
|
389
366
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
367
|
+
- `authorisationServerId` - identifies the authorisation server providing the user information
|
|
368
|
+
- `requestParams` - the full querystring from the callback to the Relying Party callback address
|
|
369
|
+
- `codeVerifier` - from the response to the PAR for this identity request
|
|
370
|
+
- `state` - from the response to the PAR for this identity request
|
|
371
|
+
- `nonce` - from the response to the PAR for this identity request
|
|
395
372
|
|
|
396
|
-
The method will return a `ConsolidatedTokenSet`
|
|
397
|
-
|
|
398
|
-
on the TokenSet. The `ConsolidatedTokenSet` provides a new method `consolidatedClaims()`, which will return a single
|
|
373
|
+
The method will return a `ConsolidatedTokenSet` that contains the access_token and id_token. The user identity claims can be retrieved using the utility method `claims()`
|
|
374
|
+
on the ConsolidatedTokenSet. The `ConsolidatedTokenSet` provides a method `consolidatedClaims()`, which will return a single
|
|
399
375
|
object containing all the claims, including the extended claims, as a single object. The tokenset also contains an `xFapiInteractionId` which
|
|
400
376
|
is a correlation id for the request that was sent to the IDP.
|
|
401
377
|
|
|
@@ -408,36 +384,68 @@ All user identity claims will be provided as part of the `id_token` returned by
|
|
|
408
384
|
|
|
409
385
|
The required function parameters are:
|
|
410
386
|
|
|
411
|
-
|
|
412
|
-
|
|
387
|
+
- `authorisationServerId` - identifies the authorisation server providing the user information
|
|
388
|
+
- `accessToken` - the access token provided by `retrieveTokens`
|
|
413
389
|
|
|
414
390
|
# Release Notes
|
|
415
391
|
|
|
392
|
+
### 5.0.0 (Dec 21, 2025)
|
|
393
|
+
|
|
394
|
+
**Major architectural refactoring - Breaking Changes**
|
|
395
|
+
|
|
396
|
+
This release removes the dependency on `openid-client` and implements custom OIDC/FAPI flow logic to align with the Java and .NET SDKs.
|
|
397
|
+
|
|
398
|
+
**Breaking Changes:**
|
|
399
|
+
- **Removed `cache_ttl` configuration parameter**: Participant list caching has been removed to align with Java/.NET SDKs.
|
|
400
|
+
- **Internal architecture changes**: The SDK now uses a modular endpoint-based architecture with separate classes for each OIDC operation (PAR, token retrieval, userinfo, etc.).
|
|
401
|
+
- **Configuration changes**: The `client_id` parameter is no longer part of the `client` config, but moved up 1 level.
|
|
402
|
+
- **Configuration changes**: The configuration block for `client` with it's associated parameters is no longer required and has been removed. Please review the `config.ts` for the correct structure and update your configuration accordingly.
|
|
403
|
+
|
|
404
|
+
**Internal Improvements:**
|
|
405
|
+
- Replaced `openid-client` dependency with custom implementation using `jose` library for JWT operations
|
|
406
|
+
- Implemented custom HTTP client with mTLS support
|
|
407
|
+
|
|
408
|
+
**Note:** The public API remains mostly unchanged - all existing public methods maintain the same signatures and behavior, but some of the return types may have become stricter.
|
|
409
|
+
Note that the field `codeVerifier` has been renamed from `code_verifier` to `codeVerifier` to be more in line with TypeScript naming conventions.
|
|
410
|
+
|
|
411
|
+
### 4.2.1 (Nov 27, 2025)
|
|
412
|
+
|
|
413
|
+
- Updated dependencies.
|
|
414
|
+
|
|
416
415
|
### 4.2.0 (Aug 8, 2025)
|
|
416
|
+
|
|
417
417
|
- `cba_loyalty` claim.
|
|
418
418
|
|
|
419
419
|
### 4.1.0 (Feb 25, 2025)
|
|
420
|
+
|
|
420
421
|
- Implemented user-agent support.
|
|
421
422
|
|
|
422
423
|
### 4.0.5 (Feb 24, 2025)
|
|
423
|
-
|
|
424
|
+
|
|
425
|
+
- Add README.md and licence files to bundle.
|
|
424
426
|
|
|
425
427
|
### 4.0.4 (Feb 21, 2025)
|
|
428
|
+
|
|
426
429
|
- Remove `declarationMap`.
|
|
427
430
|
|
|
428
431
|
### 4.0.3 (Nov 29, 2024)
|
|
432
|
+
|
|
429
433
|
- Issuer value for aud in private_key_jwt.
|
|
430
434
|
|
|
431
435
|
### 4.0.2 (Oct 22, 2024)
|
|
436
|
+
|
|
432
437
|
- Single string audience in the private key jwt.
|
|
433
438
|
|
|
434
439
|
### 4.0.1 (Oct 1, 2024)
|
|
440
|
+
|
|
435
441
|
- Changed type of `ApiResources` from `str` to `ApiResource`.
|
|
436
442
|
|
|
437
443
|
### 4.0.0 (Sep 2, 2024)
|
|
444
|
+
|
|
438
445
|
- Breaking change: removed essential claims default value. If you are relying on essential claims default value calling `sendPushedAuthorisationRequest` then you need to provide the claims explicitly. Otherwise, no need to change anything.
|
|
439
446
|
|
|
440
447
|
How it was:
|
|
448
|
+
|
|
441
449
|
```typescript
|
|
442
450
|
const defaultClaimList: string[] = ['given_name', 'middle_name', 'family_name', 'phone_number', 'email', 'address', 'birthdate', 'txn']
|
|
443
451
|
|
|
@@ -445,37 +453,47 @@ async sendPushedAuthorisationRequest(authServerId: string, essentialClaims: stri
|
|
|
445
453
|
```
|
|
446
454
|
|
|
447
455
|
How it is now:
|
|
456
|
+
|
|
448
457
|
```typescript
|
|
449
458
|
async sendPushedAuthorisationRequest(authServerId: string, essentialClaims: string[], voluntaryClaims: string[] = [], purpose: string = this.purpose) {
|
|
450
459
|
```
|
|
451
460
|
|
|
452
461
|
### 4.0.0 (Sep 23, 2024)
|
|
453
|
-
|
|
454
|
-
-
|
|
462
|
+
|
|
463
|
+
- Updated Node.js version to 20.x.
|
|
464
|
+
- Removed jest and axios dependencies.
|
|
455
465
|
|
|
456
466
|
### 3.0.0 (Aug 27, 2024)
|
|
467
|
+
|
|
457
468
|
- Breaking change: removed `name` from essential claims default value. If you are relying on essential claims default value calling `sendPushedAuthorisationRequest` and use `name` claim then you need to provide `name` claim explicitly. Otherwise, no need to change anything.
|
|
458
469
|
|
|
459
470
|
### 2.15.0 (Jun 20, 2024)
|
|
471
|
+
|
|
460
472
|
- Updated purpose statement.
|
|
461
473
|
- Dependencies updated.
|
|
462
474
|
|
|
463
475
|
### 2.14.1 (Jun 17, 2024)
|
|
476
|
+
|
|
464
477
|
- Removed `got` dependency and used `fetch` instead.
|
|
465
478
|
|
|
466
479
|
### 2.14.0 (Jun 12, 2024)
|
|
467
|
-
|
|
480
|
+
|
|
481
|
+
- Added cache to `getParticipants()` method.
|
|
468
482
|
|
|
469
483
|
### 2.13.0 (April 17, 2024)
|
|
484
|
+
|
|
470
485
|
- Updated dependencies
|
|
471
486
|
|
|
472
487
|
### 2.12.3 (Nov 8, 2023)
|
|
488
|
+
|
|
473
489
|
- `nonce` should have 43 chars.
|
|
474
490
|
|
|
475
491
|
### 2.12.2 (Nov 8, 2023)
|
|
492
|
+
|
|
476
493
|
- Updated README.md to include `tsconfig` suggestion.
|
|
477
494
|
|
|
478
495
|
### 2.12.1 (Nov 7, 2023)
|
|
496
|
+
|
|
479
497
|
- Made `ca_pem` optional. Although either `ca_pem` or `ca_pem_content` must be provided.
|
|
480
498
|
- Made `signing_key` optional. Although either `signing_key` or `signing_key_content` must be provided.
|
|
481
499
|
- Made `signing_pem` optional. Although either `signing_pem` or `signing_pem_content` must be provided.
|
|
@@ -483,97 +501,126 @@ async sendPushedAuthorisationRequest(authServerId: string, essentialClaims: stri
|
|
|
483
501
|
- Made `transport_pem` optional. Although either `transport_pem` or `transport_pem_content` must be provided.
|
|
484
502
|
|
|
485
503
|
### 2.12.0 (October 19, 2023)
|
|
486
|
-
|
|
504
|
+
|
|
505
|
+
- Added support to Node.js 18.
|
|
487
506
|
|
|
488
507
|
### 2.11.2 (August 22, 2023)
|
|
508
|
+
|
|
489
509
|
- Conformance test succeed on warnings.
|
|
490
510
|
|
|
491
511
|
### 2.11.1 (August 3, 2023)
|
|
512
|
+
|
|
492
513
|
- Added automated Conformance test.
|
|
493
514
|
|
|
494
515
|
### 2.11.0 (August 1, 2023)
|
|
516
|
+
|
|
495
517
|
- Updated trust_framework in the PAR to contain an object `{ value: 'au_connectid' }` instead of having a string value. This
|
|
496
|
-
is to bring it inline with OIDC4A spec that requires trust_framework to contain an object.
|
|
518
|
+
is to bring it inline with OIDC4A spec that requires trust_framework to contain an object.
|
|
497
519
|
|
|
498
520
|
### 2.10.0 (July 31, 2023)
|
|
521
|
+
|
|
499
522
|
- Updated documentation to include `registry_participants_uri` parameter.
|
|
500
523
|
- Updated two testcases.
|
|
501
524
|
|
|
502
525
|
### 2.9.0 (July 17, 2023)
|
|
526
|
+
|
|
503
527
|
- Updated `getParticipants()` so it only returns participants that are active in the network by default. Can be
|
|
504
|
-
overridden using config to return all if required. Also allow filtering of Auth Servers by capabilities.
|
|
528
|
+
overridden using config to return all if required. Also allow filtering of Auth Servers by capabilities.
|
|
505
529
|
- Added `getFallbackProviderParticipants()` to return the manual verification authorisation server.
|
|
506
530
|
- Note that `sendPushedAuthorisationRequest()` will require the auth server id to be valid for the current filter config (eg: Active auth servers).
|
|
507
531
|
|
|
508
532
|
### 2.8.0 (June 7, 2023)
|
|
533
|
+
|
|
509
534
|
- Ensured that the `txn` claim is always requested so clients always have a reference for the transaction.
|
|
510
535
|
|
|
511
536
|
### 2.7.2 (June 6, 2023)
|
|
537
|
+
|
|
512
538
|
- Removed `redirect_url` and `response_type` authorization request parameters from the request to the authorization endpoint to comply with FAPI2 Security Profile Implementers Draft 3.
|
|
513
539
|
|
|
514
540
|
### 2.7.1 (June 5, 2023)
|
|
541
|
+
|
|
515
542
|
- Removed `scope` authorization request parameter from the request to the authorization endpoint to comply with FAPI2 Security Profile Implementers Draft 3.
|
|
516
543
|
|
|
517
544
|
### 2.7.0 (May 31, 2023)
|
|
545
|
+
|
|
518
546
|
- Enhanced logging so x-fapi-interaction-id logged for PAR and token requests.
|
|
519
547
|
|
|
520
548
|
### 2.6.1 (May 29, 2023)
|
|
549
|
+
|
|
521
550
|
- Fixed invalid main file definition.
|
|
522
551
|
|
|
523
552
|
### 2.6.0 (May 29, 2023)
|
|
553
|
+
|
|
524
554
|
- Added support for `purpose` as request object parameter on PAR requests. Can be supplied per request or use the default supplied via config.
|
|
525
555
|
|
|
526
556
|
### 2.5.0 (May 24, 2023)
|
|
557
|
+
|
|
527
558
|
- Added support for `x-fapi-interaction-id` headers on PAR, token and userinfo requests.
|
|
528
559
|
|
|
529
560
|
### 2.4.1 (May 5, 2023)
|
|
561
|
+
|
|
530
562
|
- Updated clientId details for testing and documentation to use a federated clientId.
|
|
531
563
|
|
|
532
564
|
### 2.4.0 (March 28, 2023)
|
|
565
|
+
|
|
533
566
|
- Reimplemented extended claims, which now supports the following claims: `over16`, `over18`, `over21`, `over25`, `over65`, `beneficiary_account_au`, `beneficiary_account_au_payid`, `beneficiary_account_international`.
|
|
534
567
|
- Implemented strict mode for TypeScript to prevent the use of `any` type and other unsafe types.
|
|
535
568
|
- Fix for `ClaimsRequest` type to support non-verified claims in the type definition.
|
|
536
569
|
|
|
537
570
|
### 2.3.0 (March 10, 2023)
|
|
571
|
+
|
|
538
572
|
- Added support for the following extended claims: `over16`, `over18`, `over21`, `over25`, `over65`, `beneficiary_account`, `pay_id`.
|
|
539
573
|
|
|
540
574
|
### 2.2.0 (Feb 20, 2023)
|
|
575
|
+
|
|
541
576
|
- Maintenance update of dependencies to address CVE-2022-36083 in JOSE library.
|
|
542
577
|
|
|
543
578
|
### 2.1.0 (Feb 13, 2023)
|
|
579
|
+
|
|
544
580
|
- Moved `prompt=consent` parameter to pushed authorisation request object instead of a URL parameter.
|
|
545
581
|
|
|
546
582
|
### 2.0.7 (Dec 22, 2022)
|
|
547
|
-
|
|
548
|
-
|
|
583
|
+
|
|
584
|
+
- Run on Node.js 14 and 16 (openid-client lib does not support Node.js 18 yet).
|
|
585
|
+
|
|
549
586
|
### 2.0.6 (Dec 21, 2022)
|
|
587
|
+
|
|
550
588
|
- Removed the need to use `--experimental-specifier-resolution=node` flag when importing the SDK.
|
|
551
589
|
- Log SDK version.
|
|
552
|
-
|
|
590
|
+
|
|
553
591
|
### 2.0.5 (Dec 20, 2022)
|
|
592
|
+
|
|
554
593
|
- Updated documentation.
|
|
555
594
|
|
|
556
595
|
### 2.0.4 (Dec 20, 2022)
|
|
596
|
+
|
|
557
597
|
- Fixed `RelyingPartyClientSdk is not a constructor`.
|
|
558
598
|
|
|
559
599
|
### 2.0.3 (Dec 20, 2022)
|
|
600
|
+
|
|
560
601
|
- Made `ca_pem_content, signing_key_content, signing_pem_content, transport_key_content, transport_pem_content` from `RelyingPartyClientSdkConfig` optional.
|
|
561
602
|
|
|
562
603
|
### 2.0.2 (Dec 20, 2022)
|
|
604
|
+
|
|
563
605
|
- Removed version logging when SDK is created.
|
|
564
606
|
|
|
565
607
|
### 2.0.1 (Dec 20, 2022)
|
|
608
|
+
|
|
566
609
|
- Fixed npm publish.
|
|
567
610
|
|
|
568
611
|
### 2.0.0 (Dec 19, 2022)
|
|
569
|
-
|
|
612
|
+
|
|
613
|
+
- TypeScript support.
|
|
570
614
|
- Breaking change: SDK imported using `require` will need to add a `default` at the end of the import.
|
|
615
|
+
|
|
571
616
|
```javascript
|
|
572
617
|
const RelyingPartyClientSdk = require('@idmvp/rp-nodejs-sdk').default
|
|
573
618
|
```
|
|
574
|
-
|
|
619
|
+
|
|
575
620
|
### 1.2.3 (Oct 24, 2022)
|
|
621
|
+
|
|
576
622
|
- Code formatting. See `.prettierrc.json`.
|
|
577
623
|
|
|
578
624
|
### 1.2.2
|
|
625
|
+
|
|
579
626
|
\<starting point\>
|