0.34.0 • Published 3 months ago

@sphereon/ssi-sdk.siopv2-oid4vp-op-auth v0.34.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
3 months ago

Warning: This package still is in very early development. Breaking changes without notice will happen at this point!


A Veramo authentication plugin using the Self Issued OpenID Provider v2 (SIOP) authentication library for having clients / people conforming to the Self Issued OpenID Provider v2 (SIOPv2) and OpenID Connect for Verifiable Presentations (OIDC4VP) as specified in the OpenID Connect working group.

Self Issued OpenID Provider v2 (SIOP)

For more information about Self Issued OpenID Provider v2 (SIOP), see the documentation in the readme.

Requirements

For this plugin a DID resolver is also required. A DID resolver can be added to the agent as plugin as seen in the example below.

Available functions

  • getSessionForSiop
  • registerSessionForSiop
  • removeSessionForSiop
  • registerCustomApprovalForSiop
  • removeCustomApprovalForSiop
  • authenticateWithSiop
  • getSiopAuthorizationRequestFromRP
  • getSiopAuthorizationRequestDetails
  • verifySiopAuthorizationRequestURI
  • sendSiopAuthorizationResponse

The following functions can also be used on the session object without the need of a session id first.

  • authenticateWithSiop
  • getSiopAuthorizationRequestFromRP
  • getSiopAuthorizationRequestDetails
  • verifySiopAuthorizationRequestURI
  • sendSiopAuthorizationResponse

Usage

Adding the plugin to an agent:

import { IDidAuthSiopOpAuthenticator } from '@sphereon/ssi-sdk-did-auth-siop-authenticator'
import { Resolver } from 'did-resolver'
import { getDidKeyResolver } from '@veramo/did-provider-key'
import { DIDResolverPlugin } from '@veramo/did-resolver'
import { getUniResolver } from '@sphereon/did-uni-client'

const agent = createAgent<IDidAuthSiopOpAuthenticator & IResolver>({
  plugins: [
    new DidAuthSiopOpAuthenticator(),
    new DIDResolverPlugin({
      resolver: new Resolver({
        ...getDidKeyResolver(),
        ...getUniResolver('lto', { resolveUrl: 'https://uniresolver.test.sphereon.io/1.0/identifiers' }),
        ...getUniResolver('factom', { resolveUrl: 'https://uniresolver.test.sphereon.io/1.0/identifiers' }),
      }),
    }),
  ],
})

Get an OP session:

const sessionId = 'example_session_id'
const opSession = await agent.getSessionForSiop({
  sessionId,
})

Register an OP session:

const sessionId = 'example_session_id'
const identifier = {
  did: 'did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a',
  provider: 'example_provider',
  controllerKeyId: `did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a#controller`,
  keys: [
    {
      kid: `did:ethr:0xb9c5714089478a327f09197987f16f9e5d936e8a#controller`,
      kms: 'example_kms',
      type: 'Ed25519' as const,
      publicKeyHex: '1e21e21e...',
      privateKeyHex: 'elfcvtswdbn...',
    },
  ],
  services: [],
}

const opSession = await agent.registerSessionForSiop({
  sessionId,
  identifier,
})

Remove an OP session:

const sessionId = 'example_session_id'
const opSession = await agent.removeSessionForSiop({
  sessionId,
})

Authenticate with DID auth SIOP:

It is possible to register custom approval functions as an extra confirmation before sending the authentication response. These functions can then be used as an optional parameter. It is also possible to directly provide a custom approval function.

These custom approval functions can also be provided at agent creation.

await agent.registerCustomApprovalForSiop({
  key: 'example_key',
  customApproval: (verifiedAuthorizationRequest: VerifiedAuthorizationRequest) => Promise.resolve(),
})
const sessionId = 'example_session_id'
const stateId = 'example_state_id'
const redirectUrl = 'https://example.com'
const customApprovalKey = 'example_key'
const authenticationResponse = await agent.authenticateWithSiop({
  sessionId,
  stateId,
  redirectUrl,
  customApproval: customApprovalKey,
})
const authenticationResponse = await agent.authenticateWithSiop({
  sessionId,
  stateId,
  redirectUrl,
  customApproval: (verifiedAuthorizationRequest: VerifiedAuthorizationRequest) => {
    return Promise.resolve()
  },
})

Get authorization request from the relying party:

For more detailed information see: Self Issued OpenID Provider v2 (SIOP)

const sessionId = 'example_session_id'
const stateId = 'example_state_id'
const redirectUrl = 'https://example.com'
const authorizationRequest = await agent.getSiopAuthorizationRequestFromRP({
  sessionId,
  stateId,
  redirectUrl,
})

Get authorization request details:

For more detailed information see: Self Issued OpenID Provider v2 (SIOP)

const sessionId = 'example_session_id'
const authorizationRequestDetailsResponse = await agent.getSiopAuthorizationRequestDetails({
  sessionId,
  verifiedAuthorizationRequest: createAuthorizationResponse,
})

Verify authorization request URI:

For more detailed information see: Self Issued OpenID Provider v2 (SIOP)

const sessionId = 'example_session_id'
const verifiedAuthorizationResponse = await agent.verifySiopAuthorizationRequestURI({
  sessionId,
  requestURI: createAuthorizationResponse,
})

Send authorization response:

For more detailed information see: Self Issued OpenID Provider v2 (SIOP)

const sessionId = 'example_session_id'
const authorizationResponse = await agent.sendSiopAuthorizationResponse({
  sessionId,
  verifiedAuthorizationRequest: verifiedAuthorizationResponse,
})

Installation

yarn add @sphereon/ssi-sdk-did-auth-siop-authenticator

Build

yarn build
0.30.2-next.394

9 months ago

0.30.2-next.395

9 months ago

0.30.2-fix.364

9 months ago

0.30.2-fix.363

9 months ago

0.30.2-fix.368

9 months ago

0.30.2-fix.367

9 months ago

0.30.2-next.373

9 months ago

0.31.1-fix.4

9 months ago

0.31.1-fix.5

9 months ago

0.33.0

6 months ago

0.30.2-next.148

10 months ago

0.30.2-next.145

10 months ago

0.31.1-next.4

9 months ago

0.30.2-next.390

9 months ago

0.31.0

9 months ago

0.30.2-next.191

10 months ago

0.30.2-fix.199

10 months ago

0.30.2-fix.198

10 months ago

0.30.2-next.328

9 months ago

0.30.2-next.329

9 months ago

0.32.1-next.291

6 months ago

0.32.1-next.287

6 months ago

0.30.2-fix.395

9 months ago

0.30.2-fix.393

9 months ago

0.30.2-next.365

9 months ago

0.30.2-next.367

9 months ago

0.30.2-next.362

9 months ago

0.30.2-next.363

9 months ago

0.30.2-fix.139

10 months ago

0.30.2-fix.140

10 months ago

0.31.1-fix.20

9 months ago

0.30.2-next.276

10 months ago

0.30.2-next.279

10 months ago

0.30.2-next.273

10 months ago

0.30.2-next.275

10 months ago

0.30.2-next.281

10 months ago

0.32.0

9 months ago

0.30.2-next.285

9 months ago

0.30.2-next.259

10 months ago

0.32.1-next.113

7 months ago

0.30.2-next.269

10 months ago

0.30.2-next.267

10 months ago

0.31.1-next.44

9 months ago

0.31.1-next.42

9 months ago

0.31.1-next.41

9 months ago

0.31.1-next.39

9 months ago

0.31.1-next.33

9 months ago

0.31.1-next.32

9 months ago

0.32.1-fix.160

7 months ago

0.31.1-next.30

9 months ago

0.32.1-next.161

7 months ago

0.33.1-next.3

4 months ago

0.33.1-next.2

4 months ago

0.31.1-next.62

9 months ago

0.32.1-next.54

7 months ago

0.32.1-next.157

7 months ago

0.31.1-next.60

9 months ago

0.32.1-next.150

7 months ago

0.32.1-next.141

7 months ago

0.32.1-next.145

7 months ago

0.33.1-next.73

3 months ago

0.32.1-fix.143

7 months ago

0.32.1-fix.142

7 months ago

0.33.1-next.68

4 months ago

0.30.2-next.200

10 months ago

0.31.1-next.29

9 months ago

0.31.1-next.26

9 months ago

0.31.1-next.28

9 months ago

0.31.1-next.21

9 months ago

0.31.1-next.24

9 months ago

0.31.1-next.23

9 months ago

0.31.1-next.19

9 months ago

0.31.1-next.14

9 months ago

0.31.1-next.17

9 months ago

0.31.1-next.13

9 months ago

0.34.0

3 months ago

0.30.2-fix.278

10 months ago

0.30.2-fix.270

10 months ago

0.30.2-fix.280

10 months ago

0.30.2-next.215

10 months ago

0.30.2-next.221

10 months ago

0.30.2-next.223

10 months ago

0.30.2-fix.266

10 months ago

0.30.2-fix.265

10 months ago

0.30.2-fix.263

10 months ago

0.30.2-fix.262

10 months ago

0.32.1-fix.15

9 months ago

0.32.1-next.13

9 months ago

0.32.1-next.17

9 months ago

0.32.1-next.18

8 months ago

0.32.1-next.12

9 months ago

0.32.1-next.20

8 months ago

0.30.2-fix.138

10 months ago

0.30.2-next.133

10 months ago

0.30.2-next.135

10 months ago

0.30.2-fix.136

10 months ago

0.30.2-next.129

10 months ago

0.30.2-next.125

10 months ago

0.30.2-next.103

10 months ago

0.30.2-fix.50

10 months ago

0.30.2-fix.48

10 months ago

0.30.2-fix.49

10 months ago

0.30.2-next.58

10 months ago

0.30.2-next.66

10 months ago

0.30.2-next.47

10 months ago

0.30.2-unstable.27

10 months ago

0.30.2-unstable.8

10 months ago

0.30.2-unstable.24

10 months ago

0.30.2-unstable.25

10 months ago

0.30.2-unstable.26

10 months ago

0.30.2-unstable.21

10 months ago

0.30.2-unstable.22

11 months ago

0.30.2-unstable.23

11 months ago

0.30.2-unstable.3

11 months ago

0.30.2-unstable.7

11 months ago

0.30.2-unstable.6

11 months ago

0.30.2-unstable.5

11 months ago

0.30.2-unstable.4

11 months ago

0.30.2-unstable.9

11 months ago

0.30.2-next.4

11 months ago

0.30.2-next.5

11 months ago

0.30.2-next.6

11 months ago

0.29.1-next.185

11 months ago

0.30.1

11 months ago

0.29.1-next.175

11 months ago

0.29.1-next.174

11 months ago

0.29.1-next.177

11 months ago

0.29.1-next.176

11 months ago

0.29.1-unstable.185

11 months ago

0.29.1-unstable.184

11 months ago

0.29.1-unstable.183

11 months ago

0.29.1-unstable.182

11 months ago

0.30.1-unstable.5

11 months ago

0.30.2-unstable.13

11 months ago

0.30.2-unstable.14

11 months ago

0.30.2-unstable.11

11 months ago

0.30.2-unstable.12

11 months ago

0.30.2-unstable.10

11 months ago

0.30.2-unstable.19

11 months ago

0.30.2-unstable.17

11 months ago

0.30.2-unstable.18

11 months ago

0.30.2-unstable.15

11 months ago

0.30.2-unstable.20

11 months ago

0.29.1-unstable.158

11 months ago

0.27.1-next.20

1 year ago

0.27.1-next.24

1 year ago

0.27.1-next.25

1 year ago

0.29.1-next.80

1 year ago

0.27.1-next.28

1 year ago

0.29.1-unstable.216

12 months ago

0.27.1-next.29

1 year ago

0.29.1-unstable.215

12 months ago

0.27.1-next.26

1 year ago

0.29.1-unstable.218

12 months ago

0.29.1-unstable.220

12 months ago

0.29.1-unstable.224

12 months ago

0.29.1-unstable.223

12 months ago

0.29.1-unstable.221

12 months ago

0.29.1-next.82

1 year ago

0.28.1-next.51

1 year ago

0.28.1-next.50

1 year ago

0.28.1-next.53

1 year ago

0.28.1-next.52

1 year ago

0.27.1-next.31

1 year ago

0.27.1-next.33

1 year ago

0.27.1-next.39

1 year ago

0.27.1-next.38

1 year ago

0.29.1-unstable.213

12 months ago

0.28.1-next.48

1 year ago

0.28.1-next.49

1 year ago

0.28.1-next.44

1 year ago

0.29.1-next.5

1 year ago

0.28.1-next.40

1 year ago

0.26.1-next.6

1 year ago

0.29.1-next.4

1 year ago

0.26.1-next.4

1 year ago

0.29.1-next.2

1 year ago

0.28.1-next.41

1 year ago

0.26.1-next.140

1 year ago

0.29.1-next.61

1 year ago

0.28.1-next.60

1 year ago

0.26.1-next.129

1 year ago

0.26.1-next.127

1 year ago

0.26.1-next.131

1 year ago

0.26.1-next.132

1 year ago

0.26.1-next.115

1 year ago

0.26.1-next.113

1 year ago

0.29.1-unstable.142

12 months ago

0.26.1-next.108

1 year ago

0.26.1-next.106

1 year ago

0.29.1-unstable.132

12 months ago

0.29.1-unstable.237

12 months ago

0.29.1-unstable.236

12 months ago

0.29.1-unstable.119

12 months ago

0.29.1-unstable.121

12 months ago

0.29.1-unstable.120

12 months ago

0.29.1-unstable.241

12 months ago

0.29.1-unstable.107

12 months ago

0.29.1-unstable.228

12 months ago

0.29.1-unstable.227

12 months ago

0.29.1-unstable.225

12 months ago

0.29.1-unstable.109

12 months ago

0.29.1-unstable.110

12 months ago

0.29.1-unstable.231

12 months ago

0.29.1-unstable.235

12 months ago

0.29.1-unstable.113

12 months ago

0.29.1-unstable.234

12 months ago

0.29.1-unstable.112

12 months ago

0.29.1-unstable.233

12 months ago

0.29.1-unstable.111

12 months ago

0.25.0

1 year ago

0.27.1-next.8

1 year ago

0.27.1-next.9

1 year ago

0.27.1-next.6

1 year ago

0.27.1-next.7

1 year ago

0.27.1-next.4

1 year ago

0.27.1-next.2

1 year ago

0.29.1-unstable.154

11 months ago

0.26.0

1 year ago

0.28.1-next.11

1 year ago

0.28.1-next.10

1 year ago

0.28.1-next.13

1 year ago

0.25.1-next.118

1 year ago

0.30.0-unstable.0

12 months ago

0.28.1-next.39

1 year ago

0.24.0

1 year ago

0.29.0

1 year ago

0.24.1-next.98

1 year ago

0.27.0

1 year ago

0.24.1-next.42

1 year ago

0.28.0

1 year ago

0.29.1-next.122

12 months ago

0.25.1-next.29

1 year ago

0.25.1-next.28

1 year ago

0.28.1-next.9

1 year ago

0.28.1-next.5

1 year ago

0.28.1-next.6

1 year ago

0.28.1-next.8

1 year ago

0.30.1-unstable.0

12 months ago

0.30.1-unstable.2

12 months ago

0.30.1-unstable.1

12 months ago

0.30.1-unstable.4

11 months ago

0.30.1-unstable.3

11 months ago

0.23.5-next.24

1 year ago

0.29.1-next.104

12 months ago

0.29.1-next.103

1 year ago

0.29.1-next.47

1 year ago

0.29.1-next.46

1 year ago

0.29.1-next.106

12 months ago

0.29.1-next.105

12 months ago

0.24.1-next.100

1 year ago

0.27.1-next.10

1 year ago

0.27.1-next.12

1 year ago

0.24.1-next.113

1 year ago

0.24.1-next.112

1 year ago

0.24.1-next.118

1 year ago

0.24.1-next.116

1 year ago

0.23.5-next.22

1 year ago

0.23.5-next.12

1 year ago

0.23.5-next.11

1 year ago

0.23.5-next.10

1 year ago

0.23.1-next.7

1 year ago

0.23.3-next.3

1 year ago

0.23.4

1 year ago

0.23.2

1 year ago

0.23.2-next.4

1 year ago

0.23.1-next.2

1 year ago

0.23.1

1 year ago

0.23.0

1 year ago

0.21.2-next.25

1 year ago

0.21.2-next.23

1 year ago

0.21.2-next.8

1 year ago

0.21.2-next.7

1 year ago

0.21.2-next.6

1 year ago

0.21.2-next.17

1 year ago

0.21.1

1 year ago

0.22.0

1 year ago

0.21.1-next.8

1 year ago

0.21.1-next.4

1 year ago

0.19.1-next.125

1 year ago

0.19.1-next.126

1 year ago

0.21.0

1 year ago

0.19.1-next.119

1 year ago

0.19.1-next.135

1 year ago

0.21.1-next.2

1 year ago

0.19.1-next.117

1 year ago

0.19.1-next.113

1 year ago

0.19.1-next.114

1 year ago

0.19.1-next.115

1 year ago

0.19.1-next.116

1 year ago

0.19.1-next.111

1 year ago

0.19.1-next.112

1 year ago

0.19.1-next.105

1 year ago

0.19.1-next.110

1 year ago

0.19.1-next.106

1 year ago

0.19.1-next.108

1 year ago

0.19.1-next.109

1 year ago

0.19.1-next.98

1 year ago

0.19.1-next.99

1 year ago

0.19.1-next.102

1 year ago

0.19.1-next.100

1 year ago

0.19.1-next.101

1 year ago

0.19.1-next.96

1 year ago

0.19.1-next.75

1 year ago

0.19.1-next.2

1 year ago

0.19.1-next.24

1 year ago

0.19.0

2 years ago

0.18.2-next.96

2 years ago

0.18.2-next.95

2 years ago

0.18.2-next.94

2 years ago

0.18.2-next.92

2 years ago

0.18.2-next.58

2 years ago

0.18.2-next.62

2 years ago

0.18.2-next.77

2 years ago

0.18.2-next.57

2 years ago

0.18.2-next.47

2 years ago

0.18.2-next.15

2 years ago

0.18.2-next.17

2 years ago

0.18.2-next.14

2 years ago

0.18.2-next.12

2 years ago

0.18.2-next.9

2 years ago

0.18.2-next.3

2 years ago

0.18.1

2 years ago

0.18.1-next.8

2 years ago

0.18.1-next.3

2 years ago

0.18.1-next.2

2 years ago

0.18.1-next.4

2 years ago

0.17.6-next.61

2 years ago

0.18.0

2 years ago

0.17.6-next.58

2 years ago

0.17.6-next.57

2 years ago

0.17.6-next.56

2 years ago

0.17.6-next.52

2 years ago

0.17.2

2 years ago

0.17.3

2 years ago

0.17.4

2 years ago

0.17.5

2 years ago

0.16.1-next.3

2 years ago

0.17.0

2 years ago

0.17.1

2 years ago

0.17.2-next.2

2 years ago

0.17.2-next.4

2 years ago

0.15.2-next.96

2 years ago

0.15.2-next.95

2 years ago

0.15.2-next.97

2 years ago

0.13.1-next.3

2 years ago

0.13.1-next.4

2 years ago

0.13.1-next.5

2 years ago

0.13.1-next.6

2 years ago

0.13.1-next.7

2 years ago

0.13.1-next.8

2 years ago

0.13.1-next.32

2 years ago

0.17.1-next.2

2 years ago

0.13.1-next.33

2 years ago

0.15.0

2 years ago

0.15.1

2 years ago

0.13.1-next.17

2 years ago

0.13.1-next.14

2 years ago

0.13.1-next.15

2 years ago

0.13.1-next.10

2 years ago

0.13.1-next.18

2 years ago

0.16.0

2 years ago

0.13.1-next.27

2 years ago

0.13.1-next.28

2 years ago

0.13.1-next.25

2 years ago

0.13.1-next.26

2 years ago

0.13.1-next.23

2 years ago

0.13.1-next.24

2 years ago

0.15.1-next.2

2 years ago

0.17.3-next.2

2 years ago

0.15.2-next.39

2 years ago

0.15.2-next.32

2 years ago

0.15.2-next.33

2 years ago

0.15.2-next.113

2 years ago

0.15.2-next.110

2 years ago

0.15.2-next.111

2 years ago

0.17.6-next.7

2 years ago

0.17.6-next.6

2 years ago

0.17.6-next.9

2 years ago

0.17.6-next.3

2 years ago

0.17.6-next.2

2 years ago

0.17.6-next.5

2 years ago

0.17.6-next.4

2 years ago

0.14.2-next.28

2 years ago

0.14.2-next.27

2 years ago

0.14.2-next.29

2 years ago

0.14.2-next.23

2 years ago

0.15.2-next.103

2 years ago

0.14.2-next.26

2 years ago

0.15.2-next.104

2 years ago

0.14.2-next.25

2 years ago

0.14.0

2 years ago

0.15.2-next.109

2 years ago

0.14.1

2 years ago

0.15.2-next.124

2 years ago

0.15.2-next.121

2 years ago

0.15.2-next.29

2 years ago

0.14.2-next.18

2 years ago

0.15.2-next.116

2 years ago

0.15.2-next.117

2 years ago

0.15.2-next.114

2 years ago

0.14.2-next.14

2 years ago

0.15.2-next.118

2 years ago

0.14.2-next.40

2 years ago

0.15.2-next.4

2 years ago

0.15.2-next.5

2 years ago

0.15.2-next.6

2 years ago

0.14.2-next.49

2 years ago

0.14.2-next.45

2 years ago

0.14.2-next.48

2 years ago

0.14.2-next.47

2 years ago

0.15.2-next.77

2 years ago

0.14.2-next.43

2 years ago

0.15.2-next.101

2 years ago

0.14.2-next.39

2 years ago

0.14.2-next.38

2 years ago

0.14.1-next.2

2 years ago

0.14.2-next.35

2 years ago

0.14.2-next.34

2 years ago

0.14.2-next.37

2 years ago

0.14.2-next.36

2 years ago

0.14.2-next.31

2 years ago

0.14.2-next.30

2 years ago

0.14.2-next.33

2 years ago

0.14.2-next.32

2 years ago

0.14.2-next.51

2 years ago

0.14.2-next.50

2 years ago

0.17.6-next.16

2 years ago

0.15.2-next.3

2 years ago

0.14.2-next.58

2 years ago

0.13.0

2 years ago

0.12.1-next.21

2 years ago

0.12.1-next.20

2 years ago

0.12.1-next.19

2 years ago

0.12.0

2 years ago

0.11.1-next.154

2 years ago

0.11.1-next.153

2 years ago

0.11.1-next.152

2 years ago

0.11.1-next.162

2 years ago

0.11.1-next.151

2 years ago

0.11.1-next.150

2 years ago

0.11.1-next.149

2 years ago

0.11.1-next.148

2 years ago

0.11.1-next.147

2 years ago

0.11.1-next.146

2 years ago

0.11.1-next.145

2 years ago

0.11.1-next.144

2 years ago

0.11.1-next.142

2 years ago

0.11.1-next.141

2 years ago

0.11.1-next.140

2 years ago

0.11.1-next.131

2 years ago

0.11.1-next.112

2 years ago

0.11.1-next.106

2 years ago

0.11.1-next.72

2 years ago

0.11.1-next.70

2 years ago

0.11.1-next.65

2 years ago