smart_app_launch_test_kit 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/smart_app_launch/app_redirect_test.rb +5 -2
- data/lib/smart_app_launch/discovery_group.rb +2 -2
- data/lib/smart_app_launch/ehr_launch_group.rb +2 -2
- data/lib/smart_app_launch/openid_connect_group.rb +4 -4
- data/lib/smart_app_launch/openid_required_configuration_fields_test.rb +1 -1
- data/lib/smart_app_launch/openid_token_header_test.rb +2 -2
- data/lib/smart_app_launch/standalone_launch_group.rb +3 -3
- data/lib/smart_app_launch/token_refresh_group.rb +2 -2
- data/lib/smart_app_launch/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c5933298e16b4e62b1381d8697fe077af1dcd3e953e930f3853fc1d0850d90c
|
4
|
+
data.tar.gz: af74480ebd3eca40306158c0ef47a04f33325fb1a703b645a97344eb799c4cb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 822ea01dd26d84dbd79bb4d24cb45af8fc17e6aeea1522cf668962f5cf245b6fe07c24df658367892ad08f0ae3070e44579560e6a8f3c3b2272e6e971d804f1b
|
7
|
+
data.tar.gz: ddd6263d76f090845a441edc8c103fd1516fc5bb5c7ffcf8de84aee2bac3e706ca3038e60b2e64b13c9a0b989067efe32d3818a32600ac720a46e55885c32ebe
|
@@ -64,7 +64,6 @@ module SMARTAppLaunch
|
|
64
64
|
end
|
65
65
|
|
66
66
|
run do
|
67
|
-
info(config.options[:redirect_uri])
|
68
67
|
assert_valid_http_uri(
|
69
68
|
smart_authorization_url,
|
70
69
|
"OAuth2 Authorization Endpoint '#{smart_authorization_url}' is not a valid URI"
|
@@ -81,7 +80,11 @@ module SMARTAppLaunch
|
|
81
80
|
'aud' => aud
|
82
81
|
}
|
83
82
|
|
84
|
-
|
83
|
+
if config.options[:launch]
|
84
|
+
oauth2_params['launch'] = config.options[:launch]
|
85
|
+
elsif self.class.inputs.include?(:launch)
|
86
|
+
oauth2_params['launch'] = launch
|
87
|
+
end
|
85
88
|
|
86
89
|
if use_pkce == 'true'
|
87
90
|
code_verifier = SecureRandom.uuid
|
@@ -8,7 +8,7 @@ module SMARTAppLaunch
|
|
8
8
|
|
9
9
|
The #{title} Sequence test looks for authorization endpoints and SMART
|
10
10
|
capabilities as described by the [SMART App Launch
|
11
|
-
Framework](
|
11
|
+
Framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/conformance/index.html).
|
12
12
|
The SMART launch framework uses OAuth 2.0 to *authorize* apps, like
|
13
13
|
Inferno, to access certain information on a FHIR server. The
|
14
14
|
authorization service accessed at the endpoint allows users to give
|
@@ -31,7 +31,7 @@ module SMARTAppLaunch
|
|
31
31
|
|
32
32
|
For more information see:
|
33
33
|
|
34
|
-
* [SMART App Launch Framework](
|
34
|
+
* [SMART App Launch Framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/conformance/index.html)
|
35
35
|
* [The OAuth 2.0 Authorization Framework](https://tools.ietf.org/html/rfc6749)
|
36
36
|
* [OpenID Connect Core](https://openid.net/specs/openid-connect-core-1_0.html)
|
37
37
|
)
|
@@ -16,7 +16,7 @@ module SMARTAppLaunch
|
|
16
16
|
# Background
|
17
17
|
|
18
18
|
The [EHR
|
19
|
-
Launch](
|
19
|
+
Launch](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#ehr-launch-sequence)
|
20
20
|
is one of two ways in which an app can be launched, the other being
|
21
21
|
Standalone launch. In an EHR launch, the app is launched from an
|
22
22
|
existing EHR session or portal by a redirect to the registered launch
|
@@ -35,7 +35,7 @@ module SMARTAppLaunch
|
|
35
35
|
|
36
36
|
For more information on the #{title} see:
|
37
37
|
|
38
|
-
* [SMART EHR Launch Sequence](
|
38
|
+
* [SMART EHR Launch Sequence](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#ehr-launch-sequence)
|
39
39
|
)
|
40
40
|
|
41
41
|
config(
|
@@ -18,7 +18,7 @@ module SMARTAppLaunch
|
|
18
18
|
|
19
19
|
OpenID Connect (OIDC) provides the ability to verify the identity of the
|
20
20
|
authorizing user. Within the [SMART App Launch
|
21
|
-
Framework](
|
21
|
+
Framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html), Applications can
|
22
22
|
request an `id_token` be provided with by including the `openid fhirUser`
|
23
23
|
scopes when requesting authorization.
|
24
24
|
|
@@ -36,9 +36,9 @@ module SMARTAppLaunch
|
|
36
36
|
|
37
37
|
For more information see:
|
38
38
|
|
39
|
-
* [SMART App Launch Framework](
|
40
|
-
* [Scopes for requesting identity data](
|
41
|
-
* [Apps Requesting Authorization](
|
39
|
+
* [SMART App Launch Framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html)
|
40
|
+
* [Scopes for requesting identity data](https://www.hl7.org/fhir/smart-app-launch/1.0.0/scopes-and-launch-context/index.html#scopes-for-requesting-identity-data)
|
41
|
+
* [Apps Requesting Authorization](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#step-1-app-asks-for-authorization)
|
42
42
|
* [OpenID Connect Core](https://openid.net/specs/openid-connect-core-1_0.html)
|
43
43
|
)
|
44
44
|
|
@@ -9,7 +9,7 @@ module SMARTAppLaunch
|
|
9
9
|
`id_token_signing_alg_values_supported`.
|
10
10
|
|
11
11
|
Additionally, the [SMART App Launch
|
12
|
-
Framework](
|
12
|
+
Framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/scopes-and-launch-context/index.html#scopes-for-requesting-identity-data)
|
13
13
|
requires that the RSA SHA-256 signing algorithm be supported.
|
14
14
|
)
|
15
15
|
|
@@ -3,9 +3,9 @@ module SMARTAppLaunch
|
|
3
3
|
id :smart_openid_token_header
|
4
4
|
title 'ID token header contains required information'
|
5
5
|
description %(
|
6
|
-
Verify that the id token header indicates that the
|
6
|
+
Verify that the id token header indicates that the token is signed using
|
7
7
|
RSA SHA-256 [as required by the SMART app launch
|
8
|
-
framework](
|
8
|
+
framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/scopes-and-launch-context/index.html#scopes-for-requesting-identity-data)
|
9
9
|
and that the key used to sign the token can be identified in the JWKS.
|
10
10
|
)
|
11
11
|
|
@@ -14,8 +14,8 @@ module SMARTAppLaunch
|
|
14
14
|
# Background
|
15
15
|
|
16
16
|
The [Standalone
|
17
|
-
Launch](
|
18
|
-
|
17
|
+
Launch Sequence](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#standalone-launch-sequence)
|
18
|
+
allows an app, like Inferno, to be launched independent of an
|
19
19
|
existing EHR session. It is one of the two launch methods described in
|
20
20
|
the SMART App Launch Framework alongside EHR Launch. The app will
|
21
21
|
request authorization for the provided scope from the authorization
|
@@ -31,7 +31,7 @@ module SMARTAppLaunch
|
|
31
31
|
|
32
32
|
For more information on the #{title}:
|
33
33
|
|
34
|
-
* [Standalone Launch Sequence](
|
34
|
+
* [Standalone Launch Sequence](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#standalone-launch-sequence)
|
35
35
|
)
|
36
36
|
|
37
37
|
config(
|
@@ -18,7 +18,7 @@ module SMARTAppLaunch
|
|
18
18
|
|
19
19
|
Token refreshes are accomplished through a `POST` request to the token
|
20
20
|
exchange endpoint as described in the [SMART App Launch
|
21
|
-
Framework](
|
21
|
+
Framework](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#step-5-later-app-uses-a-refresh-token-to-obtain-a-new-access-token).
|
22
22
|
|
23
23
|
# Test Methodology
|
24
24
|
|
@@ -31,7 +31,7 @@ module SMARTAppLaunch
|
|
31
31
|
* [The OAuth 2.0 Authorization
|
32
32
|
Framework](https://tools.ietf.org/html/rfc6749)
|
33
33
|
* [Using a refresh token to obtain a new access
|
34
|
-
token](
|
34
|
+
token](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#step-5-later-app-uses-a-refresh-token-to-obtain-a-new-access-token)
|
35
35
|
)
|
36
36
|
|
37
37
|
test from: :smart_token_refresh
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_app_launch_test_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen MacVicar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inferno_core
|