authlete 1.5.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,108 @@
1
+ # :nodoc:
2
+ #
3
+ # Copyright (C) 2014-2021 Authlete, Inc.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ require 'authlete'
19
+ require 'json'
20
+ require 'minitest/autorun'
21
+
22
+
23
+ class HskTest < Minitest::Test
24
+ KTY = 'EC'
25
+ USE = 'sig'
26
+ ALG = 'ES256'
27
+ KID = 'jane'
28
+ HSM_NAME = 'google'
29
+ HANDLE = '<handle>'
30
+ PUBLIC_KEY = '<public-key>'
31
+
32
+
33
+ def generate_json
34
+ return <<~JSON
35
+ {
36
+ "kty": "EC",
37
+ "use": "sig",
38
+ "alg": "ES256",
39
+ "kid": "jane",
40
+ "hsmName": "google",
41
+ "handle": "<handle>",
42
+ "publicKey": "<public-key>"
43
+ }
44
+ JSON
45
+ end
46
+
47
+
48
+ def generate_hash
49
+ {
50
+ kty: 'EC',
51
+ use: 'sig',
52
+ alg: 'ES256',
53
+ kid: 'jane',
54
+ hsmName: 'google',
55
+ handle: '<handle>',
56
+ publicKey: '<public-key>'
57
+ }
58
+ end
59
+
60
+
61
+ def set_params(obj)
62
+ obj.kty = KTY
63
+ obj.use = USE
64
+ obj.alg = ALG
65
+ obj.kid = KID
66
+ obj.hsmName = HSM_NAME
67
+ obj.handle = HANDLE
68
+ obj.publicKey = PUBLIC_KEY
69
+ end
70
+
71
+
72
+ def match(obj)
73
+ assert_equal KTY, obj.kty
74
+ assert_equal USE, obj.use
75
+ assert_equal ALG, obj.alg
76
+ assert_equal KID, obj.kid
77
+ assert_equal HSM_NAME, obj.hsmName
78
+ assert_equal HANDLE, obj.handle
79
+ assert_equal PUBLIC_KEY, obj.publicKey
80
+ end
81
+
82
+
83
+ def test_from_json
84
+ jsn = generate_json
85
+ hsh = JSON.parse(jsn)
86
+ actual = Authlete::Model::Hsk.new(hsh)
87
+
88
+ match(actual)
89
+ end
90
+
91
+
92
+ def test_setters
93
+ actual = Authlete::Model::Hsk.new
94
+ set_params(actual)
95
+
96
+ match(actual)
97
+ end
98
+
99
+
100
+ def test_to_hash
101
+ obj = Authlete::Model::Hsk.new
102
+ set_params(obj)
103
+ actual = obj.to_hash
104
+ expected = generate_hash
105
+
106
+ assert_equal expected, actual
107
+ end
108
+ end
@@ -21,241 +21,262 @@ require 'minitest/autorun'
21
21
 
22
22
 
23
23
  class ServiceTest < Minitest::Test
24
- NUMBER = 1000
25
- SERVICE_OWNER_NUMBER = 12345
26
- SERVICE_NAME = '<service-name>'
27
- API_KEY = '<api-key>'
28
- API_SECRET = '<api-secret>'
29
- ISSUER = '<issuer>'
30
- AUTHORIZATION_ENDPOINT = '<authorization-endpoint>'
31
- TOKEN_ENDPOINT = '<token-endpoint>'
32
- REVOCATION_ENDPOINT = '<revocation-endpoint>'
33
- SUPPORTED_REVOCATION_AUTH_METHODS = [ 'NONE', 'CLIENT_SECRET_BASIC' ]
34
- USER_INFO_ENDPOINT = '<user-info-endpoint>'
35
- JWKS_URI = '<jwks-uri>'
36
- JWKS = '<jwks>'
37
- REGISTRATION_ENDPOINT = '<registration-endpoint>'
38
- REGISTRATION_MANAGEMENT_ENDPOINT = '<registration-management-endpoint>'
39
- SUPPORTED_SCOPE_NAME = 'scope0'
40
- SUPPORTED_SCOPE_DESCRIPTION = '<scope0-description>'
41
- SUPPORTED_SCOPES = [ Authlete::Model::Scope.new(name: SUPPORTED_SCOPE_NAME, description: SUPPORTED_SCOPE_DESCRIPTION) ]
42
- SUPPORTED_RESPONSE_TYPES = [ 'NONE', 'CODE', 'TOKEN', 'ID_TOKEN' ]
43
- SUPPORTED_GRANT_TYPES = [ 'AUTHORIZATION_CODE', 'REFRESH_TOKEN' ]
44
- SUPPORTED_ACRS = [ '<supported-acr0>', '<supported-acr1>' ]
45
- SUPPORTED_TOKEN_AUTH_METHODS = [ 'NONE', 'CLIENT_SECRET_BASIC' ]
46
- SUPPORTED_DISPLAYS = [ 'PAGE', 'POPUP', 'TOUCH', 'WAP' ]
47
- SUPPORTED_CLAIM_TYPES = [ 'NORMAL' ]
48
- SUPPORTED_CLAIMS = [ '<supported-claim0>', '<supported-claim1>' ]
49
- SERVICE_DOCUMENTATION = '<service-documentation>'
50
- SUPPORTED_CLAIM_LOCALES = [ 'en-US' ]
51
- SUPPORTED_UI_LOCALES = [ 'en-US' ]
52
- POLICY_URI = '<policy-uri>'
53
- TOS_URI = '<tos-uri>'
54
- AUTHENTICATION_CALLBACK_ENDPOINT = '<authentication-callback-endpoint>'
55
- AUTHENTICATION_CALLBACK_API_KEY = '<authentication-callback-api-key>'
56
- AUTHENTICATION_CALLBACK_API_SECRET = '<authentication-callback-api-secret>'
57
- SUPPORTED_SNSES = [ 'FACEBOOK' ]
58
- SNS_CREDENTIALS_SNS = 'FACEBOOK'
59
- SNS_CREDENTIALS_API_KEY = '<sns-credentials0-api-key>'
60
- SNS_CREDENTIALS_API_SECRET = '<sns-credentials0-api-secret>'
61
- SNS_CREDENTIALS = [ Authlete::Model::SnsCredentials.new(sns: SNS_CREDENTIALS_SNS, apiKey: SNS_CREDENTIALS_API_KEY, apiSecret: SNS_CREDENTIALS_API_SECRET) ]
62
- CREATED_AT = 10000
63
- MODIFIED_AT = 10000
64
- DEVELOPER_AUTHENTICATION_CALLBACK_ENDPOINT = '<developer-authentication-callback-endpoint>'
65
- DEVELOPER_AUTHENTICATION_CALLBACK_API_KEY = '<developer-authentication-callback-api-key>'
66
- DEVELOPER_AUTHENTICATION_CALLBACK_API_SECRET = '<developer-authentication-callback-api-secret>'
67
- SUPPORTED_DEVELOPER_SNSES = [ 'FACEBOOK' ]
68
- DEVELOPER_SNS_CREDENTIALS_SNS = 'FACEBOOK'
69
- DEVELOPER_SNS_CREDENTIALS_API_KEY = '<developer-sns-credentials0-api-key>'
70
- DEVELOPER_SNS_CREDENTIALS_API_SECRET = '<developer-sns-credentials0-api-secret>'
71
- DEVELOPER_SNS_CREDENTIALS = [ Authlete::Model::SnsCredentials.new(sns: DEVELOPER_SNS_CREDENTIALS_SNS, apiKey: DEVELOPER_SNS_CREDENTIALS_API_KEY, apiSecret: DEVELOPER_SNS_CREDENTIALS_API_SECRET) ]
72
- CLIENTS_PER_DEVELOPER = 10
73
- DIRECT_AUTHORIZATION_ENDPOINT_ENABLED = true
74
- DIRECT_TOKEN_ENDPOINT_ENABLED = true
75
- DIRECT_REVOCATION_ENDPOINT_ENABLED = true
76
- DIRECT_USER_INFO_ENDPOINT_ENABLED = true
77
- DIRECT_JWKS_ENDPOINT_ENABLED = true
78
- DIRECT_INTROSPECTION_ENDPOINT_ENABLED = true
79
- SINGLE_ACCESS_TOKEN_PER_SUBJECT = false
80
- PKCE_REQUIRED = true
81
- PKCE_S256_REQUIRED = true
82
- REFRESH_TOKEN_KEPT = true
83
- REFRESH_TOKEN_DURATION_KEPT = true
84
- ERROR_DESCRIPTION_OMITTED = false
85
- ERROR_URI_OMITTED = false
86
- CLIENT_ID_ALIAS_ENABLED = true
87
- SUPPORTED_SERVICE_PROFILES = [ 'FAPI', 'OPEN_BANKING' ]
88
- TLS_CLIENT_CERTIFICATE_BOUND_ACCESS_TOKENS = true
89
- INTROSPECTION_ENDPOINT = '<introspection-endpoint>'
90
- SUPPORTED_INTROSPECTION_AUTH_METHODS = [ 'NONE', 'CLIENT_SECRET_BASIC' ]
91
- MUTUAL_TLS_VALIDATE_PKI_CERT_CHAIN = true
92
- TRUSTED_ROOT_CERTIFICATES = [ '<trusted-root-certificate0>', '<trusted-root-certificate1>' ]
93
- DYNAMIC_REGISTRATION_SUPPORTED = true
94
- END_SESSION_ENDPOINT = '<end-session-endpoint>'
95
- DESCRIPTION = '<description>'
96
- ACCESS_TOKEN_TYPE = 'Bearer'
97
- ACCESS_TOKEN_SIGN_ALG = 'HS256'
98
- ACCESS_TOKEN_DURATION = 300
99
- REFRESH_TOKEN_DURATION = 300
100
- ID_TOKEN_DURATION = 300
101
- AUTHORIZATION_RESPONSE_DURATION = 300
102
- PUSHED_AUTH_REQ_DURATION = 300
103
- METADATA_KEY = '<metadata0-key>'
104
- METADATA_VALUE = '<metadata0-value>'
105
- METADATA = [ Authlete::Model::Pair.new(key: METADATA_KEY, value: METADATA_VALUE) ]
106
- ACCESS_TOKEN_SIGNATURE_KEY_ID = '<access-token-signature-key-id>'
107
- AUTHORIZATION_SIGNATURE_KEY_ID = '<authorization-signature-key-id>'
108
- ID_TOKEN_SIGNATURE_KEY_ID = '<id-token-signature-key-id>'
109
- USER_INFO_SIGNATURE_KEY_ID = '<user-info-signature-key-id>'
110
- SUPPORTED_BACKCHANNEL_TOKEN_DELIVERY_MODES = [ 'POLL', 'PING', 'PUSH' ]
111
- BACKCHANNEL_AUTHENTICATION_ENDPOINT = '<backchannel-authentication-endpoint>'
112
- BACKCHANNEL_USER_CODE_PARAMETER_SUPPORTED = true
113
- BACKCHANNEL_AUTH_REQ_ID_DURATION = 300
114
- BACKCHANNEL_POLLING_INTERVAL = 10
115
- BACKCHANNEL_BINDING_MESSAGE_REQUIRED_IN_FAPI = true
116
- ALLOWABLE_CLOCK_SKEW = 100
117
- DEVICE_AUTHORIZATION_ENDPOINT = '<device-authorization-endpoint>'
118
- DEVICE_VERIFICATION_URI = '<device-verification-uri>'
119
- DEVICE_VERIFICATION_URI_COMPLETE = '<device-verification-uri-complete>'
120
- DEVICE_FLOW_CODE_DURATION = 300
121
- DEVICE_FLOW_POLLING_INTERVAL = 10
122
- USER_CODE_CHARSET = 'BASE20'
123
- USER_CODE_LENGTH = 100
124
- PUSHED_AUTH_REQ_ENDPOINT = '<pushed-auth-req-endpoint>'
125
- MTLS_ENDPOINT_ALIAS_NAME = '<mtls-endpoint-alias0-name>'
126
- MTLS_ENDPOINT_ALIAS_URI = '<mtls-endpoint-alias0-uri>'
127
- MTLS_ENDPOINT_ALIASES = [ Authlete::Model::NamedUri.new(name: MTLS_ENDPOINT_ALIAS_NAME, uri: MTLS_ENDPOINT_ALIAS_URI) ]
128
- SUPPORTED_AUTHORIZATION_DETAILS_TYPES = [ '<supported-authorization-details-type0>', '<supported-authorization-details-type1>' ]
129
- SUPPORTED_TRUST_FRAMEWORKS = [ '<supported-trust-framework0>', '<supported-trust-framework1>' ]
130
- SUPPORTED_EVIDENCE = [ '<supported-evidence0>', '<supported-evidence1>' ]
131
- SUPPORTED_IDENTITY_DOCUMENTS = [ '<supported-identity-document0>', '<supported-identity-document1>' ]
132
- SUPPORTED_VERIFICATION_METHODS = [ '<supported-verification-method0>', '<supported-verification-method1>' ]
133
- SUPPORTED_VERIFIED_CLAIMS = [ '<supported-verified-claim0>', '<supported-verified-claim1>' ]
134
- MISSING_CLIENT_ID_ALLOWED = false
135
- PAR_REQUIRED = false
136
- REQUEST_OBJECT_REQUIRED = true
137
- TRADITIONAL_REQUEST_OBJECT_PROCESSING_APPLIED = false
138
- CLAIM_SHORTCUT_RESTRICTIVE = false
139
- SCOPE_REQUIRED = true
140
- NBF_OPTIONAL = true
141
- ISS_SUPPRESSED = false
142
- ATTRIBUTE_KEY = '<attribute0-key>'
143
- ATTRIBUTE_VALUE = '<attribute0-value>'
144
- ATTRIBUTES = [ Authlete::Model::Pair.new(key: ATTRIBUTE_KEY, value: ATTRIBUTE_VALUE) ]
145
- SUPPORTED_CUSTOM_CLIENT_METADATA = [ '<supported-custom-client-metadata0>', '<supported-custom-client-metadata1>' ]
24
+ NUMBER = 1000
25
+ SERVICE_OWNER_NUMBER = 12345
26
+ SERVICE_NAME = '<service-name>'
27
+ API_KEY = '<api-key>'
28
+ API_SECRET = '<api-secret>'
29
+ ISSUER = '<issuer>'
30
+ AUTHORIZATION_ENDPOINT = '<authorization-endpoint>'
31
+ TOKEN_ENDPOINT = '<token-endpoint>'
32
+ REVOCATION_ENDPOINT = '<revocation-endpoint>'
33
+ SUPPORTED_REVOCATION_AUTH_METHODS = [ 'NONE', 'CLIENT_SECRET_BASIC' ]
34
+ USER_INFO_ENDPOINT = '<user-info-endpoint>'
35
+ JWKS_URI = '<jwks-uri>'
36
+ JWKS = '<jwks>'
37
+ REGISTRATION_ENDPOINT = '<registration-endpoint>'
38
+ REGISTRATION_MANAGEMENT_ENDPOINT = '<registration-management-endpoint>'
39
+ SUPPORTED_SCOPE_NAME = 'scope0'
40
+ SUPPORTED_SCOPE_DESCRIPTION = '<scope0-description>'
41
+ SUPPORTED_SCOPES = [ Authlete::Model::Scope.new(name: SUPPORTED_SCOPE_NAME, description: SUPPORTED_SCOPE_DESCRIPTION) ]
42
+ SUPPORTED_RESPONSE_TYPES = [ 'NONE', 'CODE', 'TOKEN', 'ID_TOKEN' ]
43
+ SUPPORTED_GRANT_TYPES = [ 'AUTHORIZATION_CODE', 'REFRESH_TOKEN' ]
44
+ SUPPORTED_ACRS = [ '<supported-acr0>', '<supported-acr1>' ]
45
+ SUPPORTED_TOKEN_AUTH_METHODS = [ 'NONE', 'CLIENT_SECRET_BASIC' ]
46
+ SUPPORTED_DISPLAYS = [ 'PAGE', 'POPUP', 'TOUCH', 'WAP' ]
47
+ SUPPORTED_CLAIM_TYPES = [ 'NORMAL' ]
48
+ SUPPORTED_CLAIMS = [ '<supported-claim0>', '<supported-claim1>' ]
49
+ SERVICE_DOCUMENTATION = '<service-documentation>'
50
+ SUPPORTED_CLAIM_LOCALES = [ 'en-US' ]
51
+ SUPPORTED_UI_LOCALES = [ 'en-US' ]
52
+ POLICY_URI = '<policy-uri>'
53
+ TOS_URI = '<tos-uri>'
54
+ AUTHENTICATION_CALLBACK_ENDPOINT = '<authentication-callback-endpoint>'
55
+ AUTHENTICATION_CALLBACK_API_KEY = '<authentication-callback-api-key>'
56
+ AUTHENTICATION_CALLBACK_API_SECRET = '<authentication-callback-api-secret>'
57
+ SUPPORTED_SNSES = [ 'FACEBOOK' ]
58
+ SNS_CREDENTIALS_SNS = 'FACEBOOK'
59
+ SNS_CREDENTIALS_API_KEY = '<sns-credentials0-api-key>'
60
+ SNS_CREDENTIALS_API_SECRET = '<sns-credentials0-api-secret>'
61
+ SNS_CREDENTIALS = [ Authlete::Model::SnsCredentials.new(sns: SNS_CREDENTIALS_SNS, apiKey: SNS_CREDENTIALS_API_KEY, apiSecret: SNS_CREDENTIALS_API_SECRET) ]
62
+ CREATED_AT = 10000
63
+ MODIFIED_AT = 10000
64
+ DEVELOPER_AUTHENTICATION_CALLBACK_ENDPOINT = '<developer-authentication-callback-endpoint>'
65
+ DEVELOPER_AUTHENTICATION_CALLBACK_API_KEY = '<developer-authentication-callback-api-key>'
66
+ DEVELOPER_AUTHENTICATION_CALLBACK_API_SECRET = '<developer-authentication-callback-api-secret>'
67
+ SUPPORTED_DEVELOPER_SNSES = [ 'FACEBOOK' ]
68
+ DEVELOPER_SNS_CREDENTIALS_SNS = 'FACEBOOK'
69
+ DEVELOPER_SNS_CREDENTIALS_API_KEY = '<developer-sns-credentials0-api-key>'
70
+ DEVELOPER_SNS_CREDENTIALS_API_SECRET = '<developer-sns-credentials0-api-secret>'
71
+ DEVELOPER_SNS_CREDENTIALS = [ Authlete::Model::SnsCredentials.new(sns: DEVELOPER_SNS_CREDENTIALS_SNS, apiKey: DEVELOPER_SNS_CREDENTIALS_API_KEY, apiSecret: DEVELOPER_SNS_CREDENTIALS_API_SECRET) ]
72
+ CLIENTS_PER_DEVELOPER = 10
73
+ DIRECT_AUTHORIZATION_ENDPOINT_ENABLED = true
74
+ DIRECT_TOKEN_ENDPOINT_ENABLED = true
75
+ DIRECT_REVOCATION_ENDPOINT_ENABLED = true
76
+ DIRECT_USER_INFO_ENDPOINT_ENABLED = true
77
+ DIRECT_JWKS_ENDPOINT_ENABLED = true
78
+ DIRECT_INTROSPECTION_ENDPOINT_ENABLED = true
79
+ SINGLE_ACCESS_TOKEN_PER_SUBJECT = false
80
+ PKCE_REQUIRED = true
81
+ PKCE_S256_REQUIRED = true
82
+ REFRESH_TOKEN_KEPT = true
83
+ REFRESH_TOKEN_DURATION_KEPT = true
84
+ ERROR_DESCRIPTION_OMITTED = false
85
+ ERROR_URI_OMITTED = false
86
+ CLIENT_ID_ALIAS_ENABLED = true
87
+ SUPPORTED_SERVICE_PROFILES = [ 'FAPI', 'OPEN_BANKING' ]
88
+ TLS_CLIENT_CERTIFICATE_BOUND_ACCESS_TOKENS = true
89
+ INTROSPECTION_ENDPOINT = '<introspection-endpoint>'
90
+ SUPPORTED_INTROSPECTION_AUTH_METHODS = [ 'NONE', 'CLIENT_SECRET_BASIC' ]
91
+ MUTUAL_TLS_VALIDATE_PKI_CERT_CHAIN = true
92
+ TRUSTED_ROOT_CERTIFICATES = [ '<trusted-root-certificate0>', '<trusted-root-certificate1>' ]
93
+ DYNAMIC_REGISTRATION_SUPPORTED = true
94
+ END_SESSION_ENDPOINT = '<end-session-endpoint>'
95
+ DESCRIPTION = '<description>'
96
+ ACCESS_TOKEN_TYPE = 'Bearer'
97
+ ACCESS_TOKEN_SIGN_ALG = 'HS256'
98
+ ACCESS_TOKEN_DURATION = 300
99
+ REFRESH_TOKEN_DURATION = 300
100
+ ID_TOKEN_DURATION = 300
101
+ AUTHORIZATION_RESPONSE_DURATION = 300
102
+ PUSHED_AUTH_REQ_DURATION = 300
103
+ METADATA_KEY = '<metadata0-key>'
104
+ METADATA_VALUE = '<metadata0-value>'
105
+ METADATA = [ Authlete::Model::Pair.new(key: METADATA_KEY, value: METADATA_VALUE) ]
106
+ ACCESS_TOKEN_SIGNATURE_KEY_ID = '<access-token-signature-key-id>'
107
+ AUTHORIZATION_SIGNATURE_KEY_ID = '<authorization-signature-key-id>'
108
+ ID_TOKEN_SIGNATURE_KEY_ID = '<id-token-signature-key-id>'
109
+ USER_INFO_SIGNATURE_KEY_ID = '<user-info-signature-key-id>'
110
+ SUPPORTED_BACKCHANNEL_TOKEN_DELIVERY_MODES = [ 'POLL', 'PING', 'PUSH' ]
111
+ BACKCHANNEL_AUTHENTICATION_ENDPOINT = '<backchannel-authentication-endpoint>'
112
+ BACKCHANNEL_USER_CODE_PARAMETER_SUPPORTED = true
113
+ BACKCHANNEL_AUTH_REQ_ID_DURATION = 300
114
+ BACKCHANNEL_POLLING_INTERVAL = 10
115
+ BACKCHANNEL_BINDING_MESSAGE_REQUIRED_IN_FAPI = true
116
+ ALLOWABLE_CLOCK_SKEW = 100
117
+ DEVICE_AUTHORIZATION_ENDPOINT = '<device-authorization-endpoint>'
118
+ DEVICE_VERIFICATION_URI = '<device-verification-uri>'
119
+ DEVICE_VERIFICATION_URI_COMPLETE = '<device-verification-uri-complete>'
120
+ DEVICE_FLOW_CODE_DURATION = 300
121
+ DEVICE_FLOW_POLLING_INTERVAL = 10
122
+ USER_CODE_CHARSET = 'BASE20'
123
+ USER_CODE_LENGTH = 100
124
+ PUSHED_AUTH_REQ_ENDPOINT = '<pushed-auth-req-endpoint>'
125
+ MTLS_ENDPOINT_ALIAS_NAME = '<mtls-endpoint-alias0-name>'
126
+ MTLS_ENDPOINT_ALIAS_URI = '<mtls-endpoint-alias0-uri>'
127
+ MTLS_ENDPOINT_ALIASES = [ Authlete::Model::NamedUri.new(name: MTLS_ENDPOINT_ALIAS_NAME, uri: MTLS_ENDPOINT_ALIAS_URI) ]
128
+ SUPPORTED_AUTHORIZATION_DETAILS_TYPES = [ '<supported-authorization-details-type0>', '<supported-authorization-details-type1>' ]
129
+ SUPPORTED_TRUST_FRAMEWORKS = [ '<supported-trust-framework0>', '<supported-trust-framework1>' ]
130
+ SUPPORTED_EVIDENCE = [ '<supported-evidence0>', '<supported-evidence1>' ]
131
+ SUPPORTED_IDENTITY_DOCUMENTS = [ '<supported-identity-document0>', '<supported-identity-document1>' ]
132
+ SUPPORTED_VERIFICATION_METHODS = [ '<supported-verification-method0>', '<supported-verification-method1>' ]
133
+ SUPPORTED_VERIFIED_CLAIMS = [ '<supported-verified-claim0>', '<supported-verified-claim1>' ]
134
+ MISSING_CLIENT_ID_ALLOWED = false
135
+ PAR_REQUIRED = false
136
+ REQUEST_OBJECT_REQUIRED = true
137
+ TRADITIONAL_REQUEST_OBJECT_PROCESSING_APPLIED = false
138
+ CLAIM_SHORTCUT_RESTRICTIVE = false
139
+ SCOPE_REQUIRED = true
140
+ NBF_OPTIONAL = true
141
+ ISS_SUPPRESSED = false
142
+ ATTRIBUTE_KEY = '<attribute0-key>'
143
+ ATTRIBUTE_VALUE = '<attribute0-value>'
144
+ ATTRIBUTES = [ Authlete::Model::Pair.new(key: ATTRIBUTE_KEY, value: ATTRIBUTE_VALUE) ]
145
+ SUPPORTED_CUSTOM_CLIENT_METADATA = [ '<supported-custom-client-metadata0>', '<supported-custom-client-metadata1>' ]
146
+ TOKEN_EXPIRATION_LINKED = false
147
+ FRONT_CHANNEL_REQUEST_OBJECT_ENCRYPTION_REQUIRED = false
148
+ REQUEST_OBJECT_ENCRYPTION_ALG_MATCH_REQUIRED = false
149
+ REQUEST_OBJECT_ENCRYPTION_ENC_MATCH_REQUIRED = false
150
+ HSKS_KTY = 'EC'
151
+ HSKS_USE = 'sig'
152
+ HSKS_ALG = 'ES256'
153
+ HSKS_KID = 'jane'
154
+ HSKS_HSMNAME = 'google'
155
+ HSKS_HANDLE = '<handle>'
156
+ HSKS_PUBLICKEY = '<public-key>'
157
+ HSKS = [ Authlete::Model::Hsk.new(kty: HSKS_KTY, use: HSKS_USE, alg: HSKS_ALG, kid: HSKS_KID, hsmName: HSKS_HSMNAME, handle: HSKS_HANDLE, publicKey: HSKS_PUBLICKEY) ]
158
+ HSM_ENABLED = false
159
+ REFRESH_TOKEN_DURATION_RESET = false
146
160
 
147
161
 
148
162
  def generate_json
149
163
  return <<~JSON
150
164
  {
151
- "number": 1000,
152
- "serviceOwnerNumber": 12345,
153
- "serviceName": "<service-name>",
154
- "apiKey": "<api-key>",
155
- "apiSecret": "<api-secret>",
156
- "issuer": "<issuer>",
157
- "authorizationEndpoint": "<authorization-endpoint>",
158
- "tokenEndpoint": "<token-endpoint>",
159
- "revocationEndpoint": "<revocation-endpoint>",
160
- "supportedRevocationAuthMethods": [ "NONE", "CLIENT_SECRET_BASIC" ],
161
- "userInfoEndpoint": "<user-info-endpoint>",
162
- "jwksUri": "<jwks-uri>",
163
- "jwks": "<jwks>",
164
- "registrationEndpoint": "<registration-endpoint>",
165
- "registrationManagementEndpoint": "<registration-management-endpoint>",
166
- "supportedScopes": [ { "name": "scope0", "description": "<scope0-description>" } ],
167
- "supportedResponseTypes": [ "NONE", "CODE", "TOKEN", "ID_TOKEN" ],
168
- "supportedGrantTypes": [ "AUTHORIZATION_CODE", "REFRESH_TOKEN" ],
169
- "supportedAcrs": [ "<supported-acr0>", "<supported-acr1>" ],
170
- "supportedTokenAuthMethods": [ "NONE", "CLIENT_SECRET_BASIC" ],
171
- "supportedDisplays": [ "PAGE", "POPUP", "TOUCH", "WAP" ],
172
- "supportedClaimTypes": [ "NORMAL" ],
173
- "supportedClaims": [ "<supported-claim0>", "<supported-claim1>" ],
174
- "serviceDocumentation": "<service-documentation>",
175
- "supportedClaimLocales": [ "en-US" ],
176
- "supportedUiLocales": [ "en-US" ],
177
- "policyUri": "<policy-uri>",
178
- "tosUri": "<tos-uri>",
179
- "authenticationCallbackEndpoint": "<authentication-callback-endpoint>",
180
- "authenticationCallbackApiKey": "<authentication-callback-api-key>",
181
- "authenticationCallbackApiSecret": "<authentication-callback-api-secret>",
182
- "supportedSnses": [ "FACEBOOK" ],
183
- "snsCredentials": [ { "sns": "FACEBOOK", "apiKey": "<sns-credentials0-api-key>", "apiSecret": "<sns-credentials0-api-secret>" } ],
184
- "createdAt": 10000,
185
- "modifiedAt": 10000,
186
- "developerAuthenticationCallbackEndpoint": "<developer-authentication-callback-endpoint>",
187
- "developerAuthenticationCallbackApiKey": "<developer-authentication-callback-api-key>",
188
- "developerAuthenticationCallbackApiSecret": "<developer-authentication-callback-api-secret>",
189
- "supportedDeveloperSnses": [ "FACEBOOK" ],
190
- "developerSnsCredentials": [ { "sns": "FACEBOOK", "apiKey": "<developer-sns-credentials0-api-key>", "apiSecret": "<developer-sns-credentials0-api-secret>" } ],
191
- "clientsPerDeveloper": 10,
192
- "directAuthorizationEndpointEnabled": true,
193
- "directTokenEndpointEnabled": true,
194
- "directRevocationEndpointEnabled": true,
195
- "directUserInfoEndpointEnabled": true,
196
- "directJwksEndpointEnabled": true,
197
- "directIntrospectionEndpointEnabled": true,
198
- "singleAccessTokenPerSubject": false,
199
- "pkceRequired": true,
200
- "pkceS256Required": true,
201
- "refreshTokenKept": true,
202
- "refreshTokenDurationKept": true,
203
- "errorDescriptionOmitted": false,
204
- "errorUriOmitted": false,
205
- "clientIdAliasEnabled": true,
206
- "supportedServiceProfiles": [ "FAPI", "OPEN_BANKING" ],
207
- "tlsClientCertificateBoundAccessTokens": true,
208
- "introspectionEndpoint": "<introspection-endpoint>",
209
- "supportedIntrospectionAuthMethods": [ "NONE", "CLIENT_SECRET_BASIC" ],
210
- "mutualTlsValidatePkiCertChain": true,
211
- "trustedRootCertificates": [ "<trusted-root-certificate0>", "<trusted-root-certificate1>" ],
212
- "dynamicRegistrationSupported": true,
213
- "endSessionEndpoint": "<end-session-endpoint>",
214
- "description": "<description>",
215
- "accessTokenType": "Bearer",
216
- "accessTokenSignAlg": "HS256",
217
- "accessTokenDuration": 300,
218
- "refreshTokenDuration": 300,
219
- "idTokenDuration": 300,
220
- "authorizationResponseDuration": 300,
221
- "pushedAuthReqDuration": 300,
222
- "metadata": [ { "key": "<metadata0-key>", "value": "<metadata0-value>" } ],
223
- "accessTokenSignatureKeyId": "<access-token-signature-key-id>",
224
- "authorizationSignatureKeyId": "<authorization-signature-key-id>",
225
- "idTokenSignatureKeyId": "<id-token-signature-key-id>",
226
- "userInfoSignatureKeyId": "<user-info-signature-key-id>",
227
- "supportedBackchannelTokenDeliveryModes": [ "POLL", "PING", "PUSH" ],
228
- "backchannelAuthenticationEndpoint": "<backchannel-authentication-endpoint>",
229
- "backchannelUserCodeParameterSupported": true,
230
- "backchannelAuthReqIdDuration": 300,
231
- "backchannelPollingInterval": 10,
232
- "backchannelBindingMessageRequiredInFapi": true,
233
- "allowableClockSkew": 100,
234
- "deviceAuthorizationEndpoint": "<device-authorization-endpoint>",
235
- "deviceVerificationUri": "<device-verification-uri>",
236
- "deviceVerificationUriComplete": "<device-verification-uri-complete>",
237
- "deviceFlowCodeDuration": 300,
238
- "deviceFlowPollingInterval": 10,
239
- "userCodeCharset": "BASE20",
240
- "userCodeLength": 100,
241
- "pushedAuthReqEndpoint": "<pushed-auth-req-endpoint>",
242
- "mtlsEndpointAliases": [ { "name": "<mtls-endpoint-alias0-name>", "uri": "<mtls-endpoint-alias0-uri>" } ],
243
- "supportedAuthorizationDetailsTypes": [ "<supported-authorization-details-type0>", "<supported-authorization-details-type1>" ],
244
- "supportedTrustFrameworks": [ "<supported-trust-framework0>", "<supported-trust-framework1>" ],
245
- "supportedEvidence": [ "<supported-evidence0>", "<supported-evidence1>" ],
246
- "supportedIdentityDocuments": [ "<supported-identity-document0>", "<supported-identity-document1>" ],
247
- "supportedVerificationMethods": [ "<supported-verification-method0>", "<supported-verification-method1>" ],
248
- "supportedVerifiedClaims": [ "<supported-verified-claim0>", "<supported-verified-claim1>" ],
249
- "missingClientIdAllowed": false,
250
- "parRequired": false,
251
- "requestObjectRequired": true,
252
- "traditionalRequestObjectProcessingApplied": false,
253
- "claimShortcutRestrictive": false,
254
- "scopeRequired": true,
255
- "nbfOptional": true,
256
- "issSuppressed": false,
257
- "attributes": [{ "key": "<attribute0-key>", "value": "<attribute0-value>" }],
258
- "supportedCustomClientMetadata": [ "<supported-custom-client-metadata0>", "<supported-custom-client-metadata1>" ]
165
+ "number": 1000,
166
+ "serviceOwnerNumber": 12345,
167
+ "serviceName": "<service-name>",
168
+ "apiKey": "<api-key>",
169
+ "apiSecret": "<api-secret>",
170
+ "issuer": "<issuer>",
171
+ "authorizationEndpoint": "<authorization-endpoint>",
172
+ "tokenEndpoint": "<token-endpoint>",
173
+ "revocationEndpoint": "<revocation-endpoint>",
174
+ "supportedRevocationAuthMethods": [ "NONE", "CLIENT_SECRET_BASIC" ],
175
+ "userInfoEndpoint": "<user-info-endpoint>",
176
+ "jwksUri": "<jwks-uri>",
177
+ "jwks": "<jwks>",
178
+ "hsks": [ { "kty": "EC", "use": "sig", "alg": "ES256", "kid": "jane", "hsmName": "google", "handle": "<handle>", "publicKey": "<public-key>" } ],
179
+ "hsmEnabled": false,
180
+ "registrationEndpoint": "<registration-endpoint>",
181
+ "registrationManagementEndpoint": "<registration-management-endpoint>",
182
+ "supportedScopes": [ { "name": "scope0", "description": "<scope0-description>" } ],
183
+ "supportedResponseTypes": [ "NONE", "CODE", "TOKEN", "ID_TOKEN" ],
184
+ "supportedGrantTypes": [ "AUTHORIZATION_CODE", "REFRESH_TOKEN" ],
185
+ "supportedAcrs": [ "<supported-acr0>", "<supported-acr1>" ],
186
+ "supportedTokenAuthMethods": [ "NONE", "CLIENT_SECRET_BASIC" ],
187
+ "supportedDisplays": [ "PAGE", "POPUP", "TOUCH", "WAP" ],
188
+ "supportedClaimTypes": [ "NORMAL" ],
189
+ "supportedClaims": [ "<supported-claim0>", "<supported-claim1>" ],
190
+ "serviceDocumentation": "<service-documentation>",
191
+ "supportedClaimLocales": [ "en-US" ],
192
+ "supportedUiLocales": [ "en-US" ],
193
+ "policyUri": "<policy-uri>",
194
+ "tosUri": "<tos-uri>",
195
+ "authenticationCallbackEndpoint": "<authentication-callback-endpoint>",
196
+ "authenticationCallbackApiKey": "<authentication-callback-api-key>",
197
+ "authenticationCallbackApiSecret": "<authentication-callback-api-secret>",
198
+ "supportedSnses": [ "FACEBOOK" ],
199
+ "snsCredentials": [ { "sns": "FACEBOOK", "apiKey": "<sns-credentials0-api-key>", "apiSecret": "<sns-credentials0-api-secret>" } ],
200
+ "createdAt": 10000,
201
+ "modifiedAt": 10000,
202
+ "developerAuthenticationCallbackEndpoint": "<developer-authentication-callback-endpoint>",
203
+ "developerAuthenticationCallbackApiKey": "<developer-authentication-callback-api-key>",
204
+ "developerAuthenticationCallbackApiSecret": "<developer-authentication-callback-api-secret>",
205
+ "supportedDeveloperSnses": [ "FACEBOOK" ],
206
+ "developerSnsCredentials": [ { "sns": "FACEBOOK", "apiKey": "<developer-sns-credentials0-api-key>", "apiSecret": "<developer-sns-credentials0-api-secret>" } ],
207
+ "clientsPerDeveloper": 10,
208
+ "directAuthorizationEndpointEnabled": true,
209
+ "directTokenEndpointEnabled": true,
210
+ "directRevocationEndpointEnabled": true,
211
+ "directUserInfoEndpointEnabled": true,
212
+ "directJwksEndpointEnabled": true,
213
+ "directIntrospectionEndpointEnabled": true,
214
+ "singleAccessTokenPerSubject": false,
215
+ "pkceRequired": true,
216
+ "pkceS256Required": true,
217
+ "refreshTokenKept": true,
218
+ "refreshTokenDurationKept": true,
219
+ "errorDescriptionOmitted": false,
220
+ "errorUriOmitted": false,
221
+ "clientIdAliasEnabled": true,
222
+ "supportedServiceProfiles": [ "FAPI", "OPEN_BANKING" ],
223
+ "tlsClientCertificateBoundAccessTokens": true,
224
+ "introspectionEndpoint": "<introspection-endpoint>",
225
+ "supportedIntrospectionAuthMethods": [ "NONE", "CLIENT_SECRET_BASIC" ],
226
+ "mutualTlsValidatePkiCertChain": true,
227
+ "trustedRootCertificates": [ "<trusted-root-certificate0>", "<trusted-root-certificate1>" ],
228
+ "dynamicRegistrationSupported": true,
229
+ "endSessionEndpoint": "<end-session-endpoint>",
230
+ "description": "<description>",
231
+ "accessTokenType": "Bearer",
232
+ "accessTokenSignAlg": "HS256",
233
+ "accessTokenDuration": 300,
234
+ "refreshTokenDuration": 300,
235
+ "idTokenDuration": 300,
236
+ "authorizationResponseDuration": 300,
237
+ "pushedAuthReqDuration": 300,
238
+ "metadata": [ { "key": "<metadata0-key>", "value": "<metadata0-value>" } ],
239
+ "accessTokenSignatureKeyId": "<access-token-signature-key-id>",
240
+ "authorizationSignatureKeyId": "<authorization-signature-key-id>",
241
+ "idTokenSignatureKeyId": "<id-token-signature-key-id>",
242
+ "userInfoSignatureKeyId": "<user-info-signature-key-id>",
243
+ "supportedBackchannelTokenDeliveryModes": [ "POLL", "PING", "PUSH" ],
244
+ "backchannelAuthenticationEndpoint": "<backchannel-authentication-endpoint>",
245
+ "backchannelUserCodeParameterSupported": true,
246
+ "backchannelAuthReqIdDuration": 300,
247
+ "backchannelPollingInterval": 10,
248
+ "backchannelBindingMessageRequiredInFapi": true,
249
+ "allowableClockSkew": 100,
250
+ "deviceAuthorizationEndpoint": "<device-authorization-endpoint>",
251
+ "deviceVerificationUri": "<device-verification-uri>",
252
+ "deviceVerificationUriComplete": "<device-verification-uri-complete>",
253
+ "deviceFlowCodeDuration": 300,
254
+ "deviceFlowPollingInterval": 10,
255
+ "userCodeCharset": "BASE20",
256
+ "userCodeLength": 100,
257
+ "pushedAuthReqEndpoint": "<pushed-auth-req-endpoint>",
258
+ "mtlsEndpointAliases": [ { "name": "<mtls-endpoint-alias0-name>", "uri": "<mtls-endpoint-alias0-uri>" } ],
259
+ "supportedAuthorizationDetailsTypes": [ "<supported-authorization-details-type0>", "<supported-authorization-details-type1>" ],
260
+ "supportedTrustFrameworks": [ "<supported-trust-framework0>", "<supported-trust-framework1>" ],
261
+ "supportedEvidence": [ "<supported-evidence0>", "<supported-evidence1>" ],
262
+ "supportedIdentityDocuments": [ "<supported-identity-document0>", "<supported-identity-document1>" ],
263
+ "supportedVerificationMethods": [ "<supported-verification-method0>", "<supported-verification-method1>" ],
264
+ "supportedVerifiedClaims": [ "<supported-verified-claim0>", "<supported-verified-claim1>" ],
265
+ "missingClientIdAllowed": false,
266
+ "parRequired": false,
267
+ "requestObjectRequired": true,
268
+ "traditionalRequestObjectProcessingApplied": false,
269
+ "claimShortcutRestrictive": false,
270
+ "scopeRequired": true,
271
+ "nbfOptional": true,
272
+ "issSuppressed": false,
273
+ "attributes": [{ "key": "<attribute0-key>", "value": "<attribute0-value>" }],
274
+ "supportedCustomClientMetadata": [ "<supported-custom-client-metadata0>", "<supported-custom-client-metadata1>" ],
275
+ "tokenExpirationLinked": false,
276
+ "frontChannelRequestObjectEncryptionRequired": false,
277
+ "requestObjectEncryptionAlgMatchRequired": false,
278
+ "requestObjectEncryptionEncMatchRequired": false,
279
+ "refreshTokenDurationReset": false
259
280
  }
260
281
  JSON
261
282
  end
@@ -263,114 +284,121 @@ class ServiceTest < Minitest::Test
263
284
 
264
285
  def generate_hash
265
286
  {
266
- number: 1000,
267
- serviceOwnerNumber: 12345,
268
- serviceName: '<service-name>',
269
- apiKey: '<api-key>',
270
- apiSecret: '<api-secret>',
271
- issuer: '<issuer>',
272
- authorizationEndpoint: '<authorization-endpoint>',
273
- tokenEndpoint: '<token-endpoint>',
274
- revocationEndpoint: '<revocation-endpoint>',
275
- supportedRevocationAuthMethods: [ 'NONE', 'CLIENT_SECRET_BASIC' ],
276
- userInfoEndpoint: '<user-info-endpoint>',
277
- jwksUri: '<jwks-uri>',
278
- jwks: '<jwks>',
279
- registrationEndpoint: '<registration-endpoint>',
280
- registrationManagementEndpoint: '<registration-management-endpoint>',
281
- supportedScopes: [ { name: 'scope0', description: '<scope0-description>', defaultEntry: false, descriptions: nil, attributes: nil } ],
282
- supportedResponseTypes: [ 'NONE', 'CODE', 'TOKEN', 'ID_TOKEN' ],
283
- supportedGrantTypes: [ 'AUTHORIZATION_CODE', 'REFRESH_TOKEN' ],
284
- supportedAcrs: [ '<supported-acr0>', '<supported-acr1>' ],
285
- supportedTokenAuthMethods: [ 'NONE', 'CLIENT_SECRET_BASIC' ],
286
- supportedDisplays: [ 'PAGE', 'POPUP', 'TOUCH', 'WAP' ],
287
- supportedClaimTypes: [ 'NORMAL' ],
288
- supportedClaims: [ '<supported-claim0>', '<supported-claim1>' ],
289
- serviceDocumentation: '<service-documentation>',
290
- supportedClaimLocales: [ 'en-US' ],
291
- supportedUiLocales: [ 'en-US' ],
292
- policyUri: '<policy-uri>',
293
- tosUri: '<tos-uri>',
294
- authenticationCallbackEndpoint: '<authentication-callback-endpoint>',
295
- authenticationCallbackApiKey: '<authentication-callback-api-key>',
296
- authenticationCallbackApiSecret: '<authentication-callback-api-secret>',
297
- supportedSnses: [ 'FACEBOOK' ],
298
- snsCredentials: [ { sns: 'FACEBOOK', apiKey: '<sns-credentials0-api-key>', apiSecret: '<sns-credentials0-api-secret>' } ],
299
- createdAt: 10000,
300
- modifiedAt: 10000,
301
- developerAuthenticationCallbackEndpoint: '<developer-authentication-callback-endpoint>',
302
- developerAuthenticationCallbackApiKey: '<developer-authentication-callback-api-key>',
303
- developerAuthenticationCallbackApiSecret: '<developer-authentication-callback-api-secret>',
304
- supportedDeveloperSnses: [ 'FACEBOOK' ],
305
- developerSnsCredentials: [ { sns: 'FACEBOOK', apiKey: '<developer-sns-credentials0-api-key>', apiSecret: '<developer-sns-credentials0-api-secret>' } ],
306
- clientsPerDeveloper: 10,
307
- directAuthorizationEndpointEnabled: true,
308
- directTokenEndpointEnabled: true,
309
- directRevocationEndpointEnabled: true,
310
- directUserInfoEndpointEnabled: true,
311
- directJwksEndpointEnabled: true,
312
- directIntrospectionEndpointEnabled: true,
313
- singleAccessTokenPerSubject: false,
314
- pkceRequired: true,
315
- pkceS256Required: true,
316
- refreshTokenKept: true,
317
- refreshTokenDurationKept: true,
318
- errorDescriptionOmitted: false,
319
- errorUriOmitted: false,
320
- clientIdAliasEnabled: true,
321
- supportedServiceProfiles: [ 'FAPI', 'OPEN_BANKING' ],
322
- tlsClientCertificateBoundAccessTokens: true,
323
- introspectionEndpoint: '<introspection-endpoint>',
324
- supportedIntrospectionAuthMethods: [ 'NONE', 'CLIENT_SECRET_BASIC' ],
325
- mutualTlsValidatePkiCertChain: true,
326
- trustedRootCertificates: [ '<trusted-root-certificate0>', '<trusted-root-certificate1>' ],
327
- dynamicRegistrationSupported: true,
328
- endSessionEndpoint: '<end-session-endpoint>',
329
- description: '<description>',
330
- accessTokenType: 'Bearer',
331
- accessTokenSignAlg: 'HS256',
332
- accessTokenDuration: 300,
333
- refreshTokenDuration: 300,
334
- idTokenDuration: 300,
335
- authorizationResponseDuration: 300,
336
- pushedAuthReqDuration: 300,
337
- metadata: [ { key: '<metadata0-key>', value: '<metadata0-value>' } ],
338
- accessTokenSignatureKeyId: '<access-token-signature-key-id>',
339
- authorizationSignatureKeyId: '<authorization-signature-key-id>',
340
- idTokenSignatureKeyId: '<id-token-signature-key-id>',
341
- userInfoSignatureKeyId: '<user-info-signature-key-id>',
342
- supportedBackchannelTokenDeliveryModes: [ 'POLL', 'PING', 'PUSH' ],
343
- backchannelAuthenticationEndpoint: '<backchannel-authentication-endpoint>',
344
- backchannelUserCodeParameterSupported: true,
345
- backchannelAuthReqIdDuration: 300,
346
- backchannelPollingInterval: 10,
347
- backchannelBindingMessageRequiredInFapi: true,
348
- allowableClockSkew: 100,
349
- deviceAuthorizationEndpoint: '<device-authorization-endpoint>',
350
- deviceVerificationUri: '<device-verification-uri>',
351
- deviceVerificationUriComplete: '<device-verification-uri-complete>',
352
- deviceFlowCodeDuration: 300,
353
- deviceFlowPollingInterval: 10,
354
- userCodeCharset: 'BASE20',
355
- userCodeLength: 100,
356
- pushedAuthReqEndpoint: '<pushed-auth-req-endpoint>',
357
- mtlsEndpointAliases: [ { name: '<mtls-endpoint-alias0-name>', uri: '<mtls-endpoint-alias0-uri>' } ],
358
- supportedAuthorizationDetailsTypes: [ '<supported-authorization-details-type0>', '<supported-authorization-details-type1>' ],
359
- supportedTrustFrameworks: [ '<supported-trust-framework0>', '<supported-trust-framework1>' ],
360
- supportedEvidence: [ '<supported-evidence0>', '<supported-evidence1>' ],
361
- supportedIdentityDocuments: [ '<supported-identity-document0>', '<supported-identity-document1>' ],
362
- supportedVerificationMethods: [ '<supported-verification-method0>', '<supported-verification-method1>' ],
363
- supportedVerifiedClaims: [ '<supported-verified-claim0>', '<supported-verified-claim1>' ],
364
- missingClientIdAllowed: false,
365
- parRequired: false,
366
- requestObjectRequired: true,
367
- traditionalRequestObjectProcessingApplied: false,
368
- claimShortcutRestrictive: false,
369
- scopeRequired: true,
370
- nbfOptional: true,
371
- issSuppressed: false,
372
- attributes: [{ key: '<attribute0-key>', value: '<attribute0-value>' }],
373
- supportedCustomClientMetadata: [ '<supported-custom-client-metadata0>', '<supported-custom-client-metadata1>' ]
287
+ number: 1000,
288
+ serviceOwnerNumber: 12345,
289
+ serviceName: '<service-name>',
290
+ apiKey: '<api-key>',
291
+ apiSecret: '<api-secret>',
292
+ issuer: '<issuer>',
293
+ authorizationEndpoint: '<authorization-endpoint>',
294
+ tokenEndpoint: '<token-endpoint>',
295
+ revocationEndpoint: '<revocation-endpoint>',
296
+ supportedRevocationAuthMethods: [ 'NONE', 'CLIENT_SECRET_BASIC' ],
297
+ userInfoEndpoint: '<user-info-endpoint>',
298
+ jwksUri: '<jwks-uri>',
299
+ jwks: '<jwks>',
300
+ registrationEndpoint: '<registration-endpoint>',
301
+ registrationManagementEndpoint: '<registration-management-endpoint>',
302
+ supportedScopes: [ { name: 'scope0', description: '<scope0-description>', defaultEntry: false, descriptions: nil, attributes: nil } ],
303
+ supportedResponseTypes: [ 'NONE', 'CODE', 'TOKEN', 'ID_TOKEN' ],
304
+ supportedGrantTypes: [ 'AUTHORIZATION_CODE', 'REFRESH_TOKEN' ],
305
+ supportedAcrs: [ '<supported-acr0>', '<supported-acr1>' ],
306
+ supportedTokenAuthMethods: [ 'NONE', 'CLIENT_SECRET_BASIC' ],
307
+ supportedDisplays: [ 'PAGE', 'POPUP', 'TOUCH', 'WAP' ],
308
+ supportedClaimTypes: [ 'NORMAL' ],
309
+ supportedClaims: [ '<supported-claim0>', '<supported-claim1>' ],
310
+ serviceDocumentation: '<service-documentation>',
311
+ supportedClaimLocales: [ 'en-US' ],
312
+ supportedUiLocales: [ 'en-US' ],
313
+ policyUri: '<policy-uri>',
314
+ tosUri: '<tos-uri>',
315
+ authenticationCallbackEndpoint: '<authentication-callback-endpoint>',
316
+ authenticationCallbackApiKey: '<authentication-callback-api-key>',
317
+ authenticationCallbackApiSecret: '<authentication-callback-api-secret>',
318
+ supportedSnses: [ 'FACEBOOK' ],
319
+ snsCredentials: [ { sns: 'FACEBOOK', apiKey: '<sns-credentials0-api-key>', apiSecret: '<sns-credentials0-api-secret>' } ],
320
+ createdAt: 10000,
321
+ modifiedAt: 10000,
322
+ developerAuthenticationCallbackEndpoint: '<developer-authentication-callback-endpoint>',
323
+ developerAuthenticationCallbackApiKey: '<developer-authentication-callback-api-key>',
324
+ developerAuthenticationCallbackApiSecret: '<developer-authentication-callback-api-secret>',
325
+ supportedDeveloperSnses: [ 'FACEBOOK' ],
326
+ developerSnsCredentials: [ { sns: 'FACEBOOK', apiKey: '<developer-sns-credentials0-api-key>', apiSecret: '<developer-sns-credentials0-api-secret>' } ],
327
+ clientsPerDeveloper: 10,
328
+ directAuthorizationEndpointEnabled: true,
329
+ directTokenEndpointEnabled: true,
330
+ directRevocationEndpointEnabled: true,
331
+ directUserInfoEndpointEnabled: true,
332
+ directJwksEndpointEnabled: true,
333
+ directIntrospectionEndpointEnabled: true,
334
+ singleAccessTokenPerSubject: false,
335
+ pkceRequired: true,
336
+ pkceS256Required: true,
337
+ refreshTokenKept: true,
338
+ refreshTokenDurationKept: true,
339
+ errorDescriptionOmitted: false,
340
+ errorUriOmitted: false,
341
+ clientIdAliasEnabled: true,
342
+ supportedServiceProfiles: [ 'FAPI', 'OPEN_BANKING' ],
343
+ tlsClientCertificateBoundAccessTokens: true,
344
+ introspectionEndpoint: '<introspection-endpoint>',
345
+ supportedIntrospectionAuthMethods: [ 'NONE', 'CLIENT_SECRET_BASIC' ],
346
+ mutualTlsValidatePkiCertChain: true,
347
+ trustedRootCertificates: [ '<trusted-root-certificate0>', '<trusted-root-certificate1>' ],
348
+ dynamicRegistrationSupported: true,
349
+ endSessionEndpoint: '<end-session-endpoint>',
350
+ description: '<description>',
351
+ accessTokenType: 'Bearer',
352
+ accessTokenSignAlg: 'HS256',
353
+ accessTokenDuration: 300,
354
+ refreshTokenDuration: 300,
355
+ idTokenDuration: 300,
356
+ authorizationResponseDuration: 300,
357
+ pushedAuthReqDuration: 300,
358
+ metadata: [ { key: '<metadata0-key>', value: '<metadata0-value>' } ],
359
+ accessTokenSignatureKeyId: '<access-token-signature-key-id>',
360
+ authorizationSignatureKeyId: '<authorization-signature-key-id>',
361
+ idTokenSignatureKeyId: '<id-token-signature-key-id>',
362
+ userInfoSignatureKeyId: '<user-info-signature-key-id>',
363
+ supportedBackchannelTokenDeliveryModes: [ 'POLL', 'PING', 'PUSH' ],
364
+ backchannelAuthenticationEndpoint: '<backchannel-authentication-endpoint>',
365
+ backchannelUserCodeParameterSupported: true,
366
+ backchannelAuthReqIdDuration: 300,
367
+ backchannelPollingInterval: 10,
368
+ backchannelBindingMessageRequiredInFapi: true,
369
+ allowableClockSkew: 100,
370
+ deviceAuthorizationEndpoint: '<device-authorization-endpoint>',
371
+ deviceVerificationUri: '<device-verification-uri>',
372
+ deviceVerificationUriComplete: '<device-verification-uri-complete>',
373
+ deviceFlowCodeDuration: 300,
374
+ deviceFlowPollingInterval: 10,
375
+ userCodeCharset: 'BASE20',
376
+ userCodeLength: 100,
377
+ pushedAuthReqEndpoint: '<pushed-auth-req-endpoint>',
378
+ mtlsEndpointAliases: [ { name: '<mtls-endpoint-alias0-name>', uri: '<mtls-endpoint-alias0-uri>' } ],
379
+ supportedAuthorizationDetailsTypes: [ '<supported-authorization-details-type0>', '<supported-authorization-details-type1>' ],
380
+ supportedTrustFrameworks: [ '<supported-trust-framework0>', '<supported-trust-framework1>' ],
381
+ supportedEvidence: [ '<supported-evidence0>', '<supported-evidence1>' ],
382
+ supportedIdentityDocuments: [ '<supported-identity-document0>', '<supported-identity-document1>' ],
383
+ supportedVerificationMethods: [ '<supported-verification-method0>', '<supported-verification-method1>' ],
384
+ supportedVerifiedClaims: [ '<supported-verified-claim0>', '<supported-verified-claim1>' ],
385
+ missingClientIdAllowed: false,
386
+ parRequired: false,
387
+ requestObjectRequired: true,
388
+ traditionalRequestObjectProcessingApplied: false,
389
+ claimShortcutRestrictive: false,
390
+ scopeRequired: true,
391
+ nbfOptional: true,
392
+ issSuppressed: false,
393
+ attributes: [{ key: '<attribute0-key>', value: '<attribute0-value>' }],
394
+ supportedCustomClientMetadata: [ '<supported-custom-client-metadata0>', '<supported-custom-client-metadata1>' ],
395
+ tokenExpirationLinked: false,
396
+ frontChannelRequestObjectEncryptionRequired: false,
397
+ requestObjectEncryptionAlgMatchRequired: false,
398
+ requestObjectEncryptionEncMatchRequired: false,
399
+ hsks: [ { kty: 'EC', use: 'sig', alg: 'ES256', kid: 'jane', hsmName: 'google', handle: '<handle>', publicKey: '<public-key>' } ],
400
+ hsmEnabled: false,
401
+ refreshTokenDurationReset: false
374
402
  }
375
403
  end
376
404
 
@@ -484,126 +512,146 @@ class ServiceTest < Minitest::Test
484
512
  obj.iss_suppressed = ISS_SUPPRESSED
485
513
  obj.attributes = ATTRIBUTES
486
514
  obj.supported_custom_client_metadata = SUPPORTED_CUSTOM_CLIENT_METADATA
515
+ obj.token_expiration_linked = TOKEN_EXPIRATION_LINKED
516
+ obj.frontChannelRequestObjectEncryptionRequired = FRONT_CHANNEL_REQUEST_OBJECT_ENCRYPTION_REQUIRED
517
+ obj.requestObjectEncryptionAlgMatchRequired = REQUEST_OBJECT_ENCRYPTION_ALG_MATCH_REQUIRED
518
+ obj.requestObjectEncryptionEncMatchRequired = REQUEST_OBJECT_ENCRYPTION_ENC_MATCH_REQUIRED
519
+ obj.hsks = HSKS
520
+ obj.hsm_enabled = HSM_ENABLED
521
+ obj.refresh_token_duration_reset = REFRESH_TOKEN_DURATION_RESET
487
522
  end
488
523
 
489
524
 
490
525
  def match(obj)
491
- assert_equal NUMBER, obj.number
492
- assert_equal SERVICE_OWNER_NUMBER, obj.serviceOwnerNumber
493
- assert_equal SERVICE_NAME, obj.serviceName
494
- assert_equal API_KEY, obj.apiKey
495
- assert_equal API_SECRET, obj.apiSecret
496
- assert_equal ISSUER, obj.issuer
497
- assert_equal AUTHORIZATION_ENDPOINT, obj.authorizationEndpoint
498
- assert_equal TOKEN_ENDPOINT, obj.tokenEndpoint
499
- assert_equal REVOCATION_ENDPOINT, obj.revocationEndpoint
500
- assert_equal SUPPORTED_REVOCATION_AUTH_METHODS, obj.supportedRevocationAuthMethods
501
- assert_equal USER_INFO_ENDPOINT, obj.userInfoEndpoint
502
- assert_equal JWKS_URI, obj.jwksUri
503
- assert_equal JWKS, obj.jwks
504
- assert_equal REGISTRATION_ENDPOINT, obj.registrationEndpoint
505
- assert_equal REGISTRATION_MANAGEMENT_ENDPOINT, obj.registrationManagementEndpoint
506
- assert_equal SUPPORTED_SCOPE_NAME, obj.supportedScopes[0].name
507
- assert_equal SUPPORTED_SCOPE_DESCRIPTION, obj.supportedScopes[0].description
508
- assert_equal SUPPORTED_RESPONSE_TYPES, obj.supportedResponseTypes
509
- assert_equal SUPPORTED_GRANT_TYPES, obj.supportedGrantTypes
510
- assert_equal SUPPORTED_ACRS, obj.supportedAcrs
511
- assert_equal SUPPORTED_TOKEN_AUTH_METHODS, obj.supportedTokenAuthMethods
512
- assert_equal SUPPORTED_DISPLAYS, obj.supportedDisplays
513
- assert_equal SUPPORTED_CLAIM_TYPES, obj.supportedClaimTypes
514
- assert_equal SUPPORTED_CLAIMS, obj.supportedClaims
515
- assert_equal SERVICE_DOCUMENTATION, obj.serviceDocumentation
516
- assert_equal SUPPORTED_CLAIM_LOCALES, obj.supportedClaimLocales
517
- assert_equal SUPPORTED_UI_LOCALES, obj.supportedUiLocales
518
- assert_equal POLICY_URI, obj.policyUri
519
- assert_equal TOS_URI, obj.tosUri
520
- assert_equal AUTHENTICATION_CALLBACK_ENDPOINT, obj.authenticationCallbackEndpoint
521
- assert_equal AUTHENTICATION_CALLBACK_API_KEY, obj.authenticationCallbackApiKey
522
- assert_equal AUTHENTICATION_CALLBACK_API_SECRET, obj.authenticationCallbackApiSecret
523
- assert_equal SUPPORTED_SNSES, obj.supportedSnses
524
- assert_equal SNS_CREDENTIALS_SNS, obj.snsCredentials[0].sns
525
- assert_equal SNS_CREDENTIALS_API_KEY, obj.snsCredentials[0].apiKey
526
- assert_equal SNS_CREDENTIALS_API_SECRET, obj.snsCredentials[0].apiSecret
527
- assert_equal CREATED_AT, obj.createdAt
528
- assert_equal MODIFIED_AT, obj.modifiedAt
529
- assert_equal DEVELOPER_AUTHENTICATION_CALLBACK_ENDPOINT, obj.developerAuthenticationCallbackEndpoint
530
- assert_equal DEVELOPER_AUTHENTICATION_CALLBACK_API_KEY, obj.developerAuthenticationCallbackApiKey
531
- assert_equal DEVELOPER_AUTHENTICATION_CALLBACK_API_SECRET, obj.developerAuthenticationCallbackApiSecret
532
- assert_equal SUPPORTED_DEVELOPER_SNSES, obj.supportedDeveloperSnses
533
- assert_equal DEVELOPER_SNS_CREDENTIALS_SNS, obj.developerSnsCredentials[0].sns
534
- assert_equal DEVELOPER_SNS_CREDENTIALS_API_KEY, obj.developerSnsCredentials[0].apiKey
535
- assert_equal DEVELOPER_SNS_CREDENTIALS_API_SECRET, obj.developerSnsCredentials[0].apiSecret
536
- assert_equal CLIENTS_PER_DEVELOPER, obj.clientsPerDeveloper
537
- assert_equal DIRECT_AUTHORIZATION_ENDPOINT_ENABLED, obj.directAuthorizationEndpointEnabled
538
- assert_equal DIRECT_TOKEN_ENDPOINT_ENABLED, obj.directTokenEndpointEnabled
539
- assert_equal DIRECT_REVOCATION_ENDPOINT_ENABLED, obj.directRevocationEndpointEnabled
540
- assert_equal DIRECT_USER_INFO_ENDPOINT_ENABLED, obj.directUserInfoEndpointEnabled
541
- assert_equal DIRECT_JWKS_ENDPOINT_ENABLED, obj.directJwksEndpointEnabled
542
- assert_equal DIRECT_INTROSPECTION_ENDPOINT_ENABLED, obj.directIntrospectionEndpointEnabled
543
- assert_equal SINGLE_ACCESS_TOKEN_PER_SUBJECT, obj.singleAccessTokenPerSubject
544
- assert_equal PKCE_REQUIRED, obj.pkceRequired
545
- assert_equal PKCE_S256_REQUIRED, obj.pkceS256Required
546
- assert_equal REFRESH_TOKEN_KEPT, obj.refreshTokenKept
547
- assert_equal REFRESH_TOKEN_DURATION_KEPT, obj.refreshTokenDurationKept
548
- assert_equal ERROR_DESCRIPTION_OMITTED, obj.errorDescriptionOmitted
549
- assert_equal ERROR_URI_OMITTED, obj.errorUriOmitted
550
- assert_equal CLIENT_ID_ALIAS_ENABLED, obj.clientIdAliasEnabled
551
- assert_equal SUPPORTED_SERVICE_PROFILES, obj.supportedServiceProfiles
552
- assert_equal TLS_CLIENT_CERTIFICATE_BOUND_ACCESS_TOKENS, obj.tlsClientCertificateBoundAccessTokens
553
- assert_equal INTROSPECTION_ENDPOINT, obj.introspectionEndpoint
554
- assert_equal SUPPORTED_INTROSPECTION_AUTH_METHODS, obj.supportedIntrospectionAuthMethods
555
- assert_equal MUTUAL_TLS_VALIDATE_PKI_CERT_CHAIN, obj.mutualTlsValidatePkiCertChain
556
- assert_equal TRUSTED_ROOT_CERTIFICATES, obj.trustedRootCertificates
557
- assert_equal DYNAMIC_REGISTRATION_SUPPORTED, obj.dynamicRegistrationSupported
558
- assert_equal END_SESSION_ENDPOINT, obj.endSessionEndpoint
559
- assert_equal DESCRIPTION, obj.description
560
- assert_equal ACCESS_TOKEN_TYPE, obj.accessTokenType
561
- assert_equal ACCESS_TOKEN_SIGN_ALG, obj.accessTokenSignAlg
562
- assert_equal ACCESS_TOKEN_DURATION, obj.accessTokenDuration
563
- assert_equal REFRESH_TOKEN_DURATION, obj.refreshTokenDuration
564
- assert_equal ID_TOKEN_DURATION, obj.idTokenDuration
565
- assert_equal AUTHORIZATION_RESPONSE_DURATION, obj.authorizationResponseDuration
566
- assert_equal PUSHED_AUTH_REQ_DURATION, obj.pushedAuthReqDuration
567
- assert_equal METADATA_KEY, obj.metadata[0].key
568
- assert_equal METADATA_VALUE, obj.metadata[0].value
569
- assert_equal ACCESS_TOKEN_SIGNATURE_KEY_ID, obj.accessTokenSignatureKeyId
570
- assert_equal AUTHORIZATION_SIGNATURE_KEY_ID, obj.authorizationSignatureKeyId
571
- assert_equal ID_TOKEN_SIGNATURE_KEY_ID, obj.idTokenSignatureKeyId
572
- assert_equal USER_INFO_SIGNATURE_KEY_ID, obj.userInfoSignatureKeyId
573
- assert_equal SUPPORTED_BACKCHANNEL_TOKEN_DELIVERY_MODES, obj.supportedBackchannelTokenDeliveryModes
574
- assert_equal BACKCHANNEL_AUTHENTICATION_ENDPOINT, obj.backchannelAuthenticationEndpoint
575
- assert_equal BACKCHANNEL_USER_CODE_PARAMETER_SUPPORTED, obj.backchannelUserCodeParameterSupported
576
- assert_equal BACKCHANNEL_AUTH_REQ_ID_DURATION, obj.backchannelAuthReqIdDuration
577
- assert_equal BACKCHANNEL_POLLING_INTERVAL, obj.backchannelPollingInterval
578
- assert_equal BACKCHANNEL_BINDING_MESSAGE_REQUIRED_IN_FAPI, obj.backchannelBindingMessageRequiredInFapi
579
- assert_equal ALLOWABLE_CLOCK_SKEW, obj.allowableClockSkew
580
- assert_equal DEVICE_AUTHORIZATION_ENDPOINT, obj.deviceAuthorizationEndpoint
581
- assert_equal DEVICE_VERIFICATION_URI, obj.deviceVerificationUri
582
- assert_equal DEVICE_VERIFICATION_URI_COMPLETE, obj.deviceVerificationUriComplete
583
- assert_equal DEVICE_FLOW_CODE_DURATION, obj.deviceFlowCodeDuration
584
- assert_equal DEVICE_FLOW_POLLING_INTERVAL, obj.deviceFlowPollingInterval
585
- assert_equal USER_CODE_CHARSET, obj.userCodeCharset
586
- assert_equal USER_CODE_LENGTH, obj.userCodeLength
587
- assert_equal PUSHED_AUTH_REQ_ENDPOINT, obj.pushedAuthReqEndpoint
588
- assert_equal MTLS_ENDPOINT_ALIAS_NAME, obj.mtlsEndpointAliases[0].name
589
- assert_equal MTLS_ENDPOINT_ALIAS_URI, obj.mtlsEndpointAliases[0].uri
590
- assert_equal SUPPORTED_AUTHORIZATION_DETAILS_TYPES, obj.supportedAuthorizationDetailsTypes
591
- assert_equal SUPPORTED_TRUST_FRAMEWORKS, obj.supportedTrustFrameworks
592
- assert_equal SUPPORTED_EVIDENCE, obj.supportedEvidence
593
- assert_equal SUPPORTED_IDENTITY_DOCUMENTS, obj.supportedIdentityDocuments
594
- assert_equal SUPPORTED_VERIFICATION_METHODS, obj.supportedVerificationMethods
595
- assert_equal SUPPORTED_VERIFIED_CLAIMS, obj.supportedVerifiedClaims
596
- assert_equal MISSING_CLIENT_ID_ALLOWED, obj.missingClientIdAllowed
597
- assert_equal PAR_REQUIRED, obj.parRequired
598
- assert_equal REQUEST_OBJECT_REQUIRED, obj.requestObjectRequired
599
- assert_equal TRADITIONAL_REQUEST_OBJECT_PROCESSING_APPLIED, obj.traditionalRequestObjectProcessingApplied
600
- assert_equal CLAIM_SHORTCUT_RESTRICTIVE, obj.claimShortcutRestrictive
601
- assert_equal SCOPE_REQUIRED, obj.scopeRequired
602
- assert_equal NBF_OPTIONAL, obj.nbfOptional
603
- assert_equal ISS_SUPPRESSED, obj.issSuppressed
604
- assert_equal ATTRIBUTE_KEY, obj.attributes[0].key
605
- assert_equal ATTRIBUTE_VALUE, obj.attributes[0].value
606
- assert_equal SUPPORTED_CUSTOM_CLIENT_METADATA, obj.supportedCustomClientMetadata
526
+ assert_equal NUMBER, obj.number
527
+ assert_equal SERVICE_OWNER_NUMBER, obj.serviceOwnerNumber
528
+ assert_equal SERVICE_NAME, obj.serviceName
529
+ assert_equal API_KEY, obj.apiKey
530
+ assert_equal API_SECRET, obj.apiSecret
531
+ assert_equal ISSUER, obj.issuer
532
+ assert_equal AUTHORIZATION_ENDPOINT, obj.authorizationEndpoint
533
+ assert_equal TOKEN_ENDPOINT, obj.tokenEndpoint
534
+ assert_equal REVOCATION_ENDPOINT, obj.revocationEndpoint
535
+ assert_equal SUPPORTED_REVOCATION_AUTH_METHODS, obj.supportedRevocationAuthMethods
536
+ assert_equal USER_INFO_ENDPOINT, obj.userInfoEndpoint
537
+ assert_equal JWKS_URI, obj.jwksUri
538
+ assert_equal JWKS, obj.jwks
539
+ assert_equal REGISTRATION_ENDPOINT, obj.registrationEndpoint
540
+ assert_equal REGISTRATION_MANAGEMENT_ENDPOINT, obj.registrationManagementEndpoint
541
+ assert_equal SUPPORTED_SCOPE_NAME, obj.supportedScopes[0].name
542
+ assert_equal SUPPORTED_SCOPE_DESCRIPTION, obj.supportedScopes[0].description
543
+ assert_equal SUPPORTED_RESPONSE_TYPES, obj.supportedResponseTypes
544
+ assert_equal SUPPORTED_GRANT_TYPES, obj.supportedGrantTypes
545
+ assert_equal SUPPORTED_ACRS, obj.supportedAcrs
546
+ assert_equal SUPPORTED_TOKEN_AUTH_METHODS, obj.supportedTokenAuthMethods
547
+ assert_equal SUPPORTED_DISPLAYS, obj.supportedDisplays
548
+ assert_equal SUPPORTED_CLAIM_TYPES, obj.supportedClaimTypes
549
+ assert_equal SUPPORTED_CLAIMS, obj.supportedClaims
550
+ assert_equal SERVICE_DOCUMENTATION, obj.serviceDocumentation
551
+ assert_equal SUPPORTED_CLAIM_LOCALES, obj.supportedClaimLocales
552
+ assert_equal SUPPORTED_UI_LOCALES, obj.supportedUiLocales
553
+ assert_equal POLICY_URI, obj.policyUri
554
+ assert_equal TOS_URI, obj.tosUri
555
+ assert_equal AUTHENTICATION_CALLBACK_ENDPOINT, obj.authenticationCallbackEndpoint
556
+ assert_equal AUTHENTICATION_CALLBACK_API_KEY, obj.authenticationCallbackApiKey
557
+ assert_equal AUTHENTICATION_CALLBACK_API_SECRET, obj.authenticationCallbackApiSecret
558
+ assert_equal SUPPORTED_SNSES, obj.supportedSnses
559
+ assert_equal SNS_CREDENTIALS_SNS, obj.snsCredentials[0].sns
560
+ assert_equal SNS_CREDENTIALS_API_KEY, obj.snsCredentials[0].apiKey
561
+ assert_equal SNS_CREDENTIALS_API_SECRET, obj.snsCredentials[0].apiSecret
562
+ assert_equal CREATED_AT, obj.createdAt
563
+ assert_equal MODIFIED_AT, obj.modifiedAt
564
+ assert_equal DEVELOPER_AUTHENTICATION_CALLBACK_ENDPOINT, obj.developerAuthenticationCallbackEndpoint
565
+ assert_equal DEVELOPER_AUTHENTICATION_CALLBACK_API_KEY, obj.developerAuthenticationCallbackApiKey
566
+ assert_equal DEVELOPER_AUTHENTICATION_CALLBACK_API_SECRET, obj.developerAuthenticationCallbackApiSecret
567
+ assert_equal SUPPORTED_DEVELOPER_SNSES, obj.supportedDeveloperSnses
568
+ assert_equal DEVELOPER_SNS_CREDENTIALS_SNS, obj.developerSnsCredentials[0].sns
569
+ assert_equal DEVELOPER_SNS_CREDENTIALS_API_KEY, obj.developerSnsCredentials[0].apiKey
570
+ assert_equal DEVELOPER_SNS_CREDENTIALS_API_SECRET, obj.developerSnsCredentials[0].apiSecret
571
+ assert_equal CLIENTS_PER_DEVELOPER, obj.clientsPerDeveloper
572
+ assert_equal DIRECT_AUTHORIZATION_ENDPOINT_ENABLED, obj.directAuthorizationEndpointEnabled
573
+ assert_equal DIRECT_TOKEN_ENDPOINT_ENABLED, obj.directTokenEndpointEnabled
574
+ assert_equal DIRECT_REVOCATION_ENDPOINT_ENABLED, obj.directRevocationEndpointEnabled
575
+ assert_equal DIRECT_USER_INFO_ENDPOINT_ENABLED, obj.directUserInfoEndpointEnabled
576
+ assert_equal DIRECT_JWKS_ENDPOINT_ENABLED, obj.directJwksEndpointEnabled
577
+ assert_equal DIRECT_INTROSPECTION_ENDPOINT_ENABLED, obj.directIntrospectionEndpointEnabled
578
+ assert_equal SINGLE_ACCESS_TOKEN_PER_SUBJECT, obj.singleAccessTokenPerSubject
579
+ assert_equal PKCE_REQUIRED, obj.pkceRequired
580
+ assert_equal PKCE_S256_REQUIRED, obj.pkceS256Required
581
+ assert_equal REFRESH_TOKEN_KEPT, obj.refreshTokenKept
582
+ assert_equal REFRESH_TOKEN_DURATION_KEPT, obj.refreshTokenDurationKept
583
+ assert_equal ERROR_DESCRIPTION_OMITTED, obj.errorDescriptionOmitted
584
+ assert_equal ERROR_URI_OMITTED, obj.errorUriOmitted
585
+ assert_equal CLIENT_ID_ALIAS_ENABLED, obj.clientIdAliasEnabled
586
+ assert_equal SUPPORTED_SERVICE_PROFILES, obj.supportedServiceProfiles
587
+ assert_equal TLS_CLIENT_CERTIFICATE_BOUND_ACCESS_TOKENS, obj.tlsClientCertificateBoundAccessTokens
588
+ assert_equal INTROSPECTION_ENDPOINT, obj.introspectionEndpoint
589
+ assert_equal SUPPORTED_INTROSPECTION_AUTH_METHODS, obj.supportedIntrospectionAuthMethods
590
+ assert_equal MUTUAL_TLS_VALIDATE_PKI_CERT_CHAIN, obj.mutualTlsValidatePkiCertChain
591
+ assert_equal TRUSTED_ROOT_CERTIFICATES, obj.trustedRootCertificates
592
+ assert_equal DYNAMIC_REGISTRATION_SUPPORTED, obj.dynamicRegistrationSupported
593
+ assert_equal END_SESSION_ENDPOINT, obj.endSessionEndpoint
594
+ assert_equal DESCRIPTION, obj.description
595
+ assert_equal ACCESS_TOKEN_TYPE, obj.accessTokenType
596
+ assert_equal ACCESS_TOKEN_SIGN_ALG, obj.accessTokenSignAlg
597
+ assert_equal ACCESS_TOKEN_DURATION, obj.accessTokenDuration
598
+ assert_equal REFRESH_TOKEN_DURATION, obj.refreshTokenDuration
599
+ assert_equal ID_TOKEN_DURATION, obj.idTokenDuration
600
+ assert_equal AUTHORIZATION_RESPONSE_DURATION, obj.authorizationResponseDuration
601
+ assert_equal PUSHED_AUTH_REQ_DURATION, obj.pushedAuthReqDuration
602
+ assert_equal METADATA_KEY, obj.metadata[0].key
603
+ assert_equal METADATA_VALUE, obj.metadata[0].value
604
+ assert_equal ACCESS_TOKEN_SIGNATURE_KEY_ID, obj.accessTokenSignatureKeyId
605
+ assert_equal AUTHORIZATION_SIGNATURE_KEY_ID, obj.authorizationSignatureKeyId
606
+ assert_equal ID_TOKEN_SIGNATURE_KEY_ID, obj.idTokenSignatureKeyId
607
+ assert_equal USER_INFO_SIGNATURE_KEY_ID, obj.userInfoSignatureKeyId
608
+ assert_equal SUPPORTED_BACKCHANNEL_TOKEN_DELIVERY_MODES, obj.supportedBackchannelTokenDeliveryModes
609
+ assert_equal BACKCHANNEL_AUTHENTICATION_ENDPOINT, obj.backchannelAuthenticationEndpoint
610
+ assert_equal BACKCHANNEL_USER_CODE_PARAMETER_SUPPORTED, obj.backchannelUserCodeParameterSupported
611
+ assert_equal BACKCHANNEL_AUTH_REQ_ID_DURATION, obj.backchannelAuthReqIdDuration
612
+ assert_equal BACKCHANNEL_POLLING_INTERVAL, obj.backchannelPollingInterval
613
+ assert_equal BACKCHANNEL_BINDING_MESSAGE_REQUIRED_IN_FAPI, obj.backchannelBindingMessageRequiredInFapi
614
+ assert_equal ALLOWABLE_CLOCK_SKEW, obj.allowableClockSkew
615
+ assert_equal DEVICE_AUTHORIZATION_ENDPOINT, obj.deviceAuthorizationEndpoint
616
+ assert_equal DEVICE_VERIFICATION_URI, obj.deviceVerificationUri
617
+ assert_equal DEVICE_VERIFICATION_URI_COMPLETE, obj.deviceVerificationUriComplete
618
+ assert_equal DEVICE_FLOW_CODE_DURATION, obj.deviceFlowCodeDuration
619
+ assert_equal DEVICE_FLOW_POLLING_INTERVAL, obj.deviceFlowPollingInterval
620
+ assert_equal USER_CODE_CHARSET, obj.userCodeCharset
621
+ assert_equal USER_CODE_LENGTH, obj.userCodeLength
622
+ assert_equal PUSHED_AUTH_REQ_ENDPOINT, obj.pushedAuthReqEndpoint
623
+ assert_equal MTLS_ENDPOINT_ALIAS_NAME, obj.mtlsEndpointAliases[0].name
624
+ assert_equal MTLS_ENDPOINT_ALIAS_URI, obj.mtlsEndpointAliases[0].uri
625
+ assert_equal SUPPORTED_AUTHORIZATION_DETAILS_TYPES, obj.supportedAuthorizationDetailsTypes
626
+ assert_equal SUPPORTED_TRUST_FRAMEWORKS, obj.supportedTrustFrameworks
627
+ assert_equal SUPPORTED_EVIDENCE, obj.supportedEvidence
628
+ assert_equal SUPPORTED_IDENTITY_DOCUMENTS, obj.supportedIdentityDocuments
629
+ assert_equal SUPPORTED_VERIFICATION_METHODS, obj.supportedVerificationMethods
630
+ assert_equal SUPPORTED_VERIFIED_CLAIMS, obj.supportedVerifiedClaims
631
+ assert_equal MISSING_CLIENT_ID_ALLOWED, obj.missingClientIdAllowed
632
+ assert_equal PAR_REQUIRED, obj.parRequired
633
+ assert_equal REQUEST_OBJECT_REQUIRED, obj.requestObjectRequired
634
+ assert_equal TRADITIONAL_REQUEST_OBJECT_PROCESSING_APPLIED, obj.traditionalRequestObjectProcessingApplied
635
+ assert_equal CLAIM_SHORTCUT_RESTRICTIVE, obj.claimShortcutRestrictive
636
+ assert_equal SCOPE_REQUIRED, obj.scopeRequired
637
+ assert_equal NBF_OPTIONAL, obj.nbfOptional
638
+ assert_equal ISS_SUPPRESSED, obj.issSuppressed
639
+ assert_equal ATTRIBUTE_KEY, obj.attributes[0].key
640
+ assert_equal ATTRIBUTE_VALUE, obj.attributes[0].value
641
+ assert_equal SUPPORTED_CUSTOM_CLIENT_METADATA, obj.supportedCustomClientMetadata
642
+ assert_equal TOKEN_EXPIRATION_LINKED, obj.tokenExpirationLinked
643
+ assert_equal FRONT_CHANNEL_REQUEST_OBJECT_ENCRYPTION_REQUIRED, obj.frontChannelRequestObjectEncryptionRequired
644
+ assert_equal REQUEST_OBJECT_ENCRYPTION_ALG_MATCH_REQUIRED, obj.requestObjectEncryptionAlgMatchRequired
645
+ assert_equal REQUEST_OBJECT_ENCRYPTION_ENC_MATCH_REQUIRED, obj.requestObjectEncryptionEncMatchRequired
646
+ assert_equal HSKS_KTY, obj.hsks[0].kty
647
+ assert_equal HSKS_USE, obj.hsks[0].use
648
+ assert_equal HSKS_ALG, obj.hsks[0].alg
649
+ assert_equal HSKS_KID, obj.hsks[0].kid
650
+ assert_equal HSKS_HSMNAME, obj.hsks[0].hsmName
651
+ assert_equal HSKS_HANDLE, obj.hsks[0].handle
652
+ assert_equal HSKS_PUBLICKEY, obj.hsks[0].publicKey
653
+ assert_equal HSM_ENABLED, obj.hsmEnabled
654
+ assert_equal REFRESH_TOKEN_DURATION_RESET, obj.refreshTokenDurationReset
607
655
  end
608
656
 
609
657