Skip to content

Commit

Permalink
chore: hydra test integration
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicolas Burtey committed Jun 2, 2023
1 parent 1401792 commit 1a3b540
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 1 deletion.
22 changes: 22 additions & 0 deletions dev/ory/hydra.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
serve:
cookies:
same_site_mode: Lax

urls:
self:
issuer: http://127.0.0.1:4444
consent: http://127.0.0.1:3000/consent
login: http://127.0.0.1:3000/login
logout: http://127.0.0.1:3000/logout

secrets:
system:
- youReallyNeedToChangeThis

oidc:
subject_identifiers:
supported_types:
- pairwise
- public
pairwise:
salt: youReallyNeedToChangeThis
8 changes: 7 additions & 1 deletion dev/ory/oathkeeper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ authenticators:
jwks_urls:
- https://firebaseappcheck.googleapis.com/v1beta/jwks
- file:///home/ory/jwks.json # ONLY FOR DEV, DO NOT USE IN PRODUCTION

bearer_token:
enabled: true
config:
Expand All @@ -27,6 +28,11 @@ authenticators:
subject_from: identity.id
extra_from: identity.traits

oauth2_introspection:
enabled: true
config:
introspection_url: http://hydra:4445/admin/oauth2/introspect

anonymous:
enabled: true
config:
Expand Down Expand Up @@ -54,7 +60,7 @@ mutators:
config:
jwks_url: file:///home/ory/jwks.json
issuer_url: "galoy.io"
claims: '{"sub": "{{ print .Subject }}" }'
claims: '{"sub": "{{ print .Subject }}", card: "{{ print .Ext.card }}" }'

noop:
enabled: true
Expand Down
3 changes: 3 additions & 0 deletions dev/ory/oathkeeper_rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@
preserve_query: true
subject_from: identity.id
extra_from: identity.traits
- handler: oauth2_introspection
config:
introspection_url: http://hydra:4445/admin/oauth2/introspect
- handler: bearer_token
config:
check_session_url: http://kratos:4433/sessions/whoami
Expand Down
4 changes: 4 additions & 0 deletions docker-compose.override.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,7 @@ services:
fulcrum:
ports:
- "50001:50001"
hydra:
ports:
- "4444:4444" # Public port
- "4445:4445" # Admin port
40 changes: 40 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ services:
- otel-agent
- oathkeeper
- mailslurper
- hydra
# - consent
restart: on-failure:10
integration-deps:
image: busybox
Expand Down Expand Up @@ -371,3 +373,41 @@ services:
- SSL_CERTFILE=/tls.cert
- SSL_KEYFILE=/tls.key
command: ["Fulcrum", "/fulcrum.conf"]
hydra:
image: oryd/hydra:v2.1.2
command: serve -c /home/ory/hydra.yml all --dev
volumes:
- type: bind
source: dev/ory
target: /home/ory
environment:
- DSN=postgres://hydra:secret@postgresdhydra:5432/hydra?sslmode=disable&max_conns=20&max_idle_conns=4
restart: unless-stopped
depends_on:
- hydra-migrate
- postgresdhydra
hydra-migrate:
image: oryd/hydra:v2.1.2
environment:
- DSN=postgres://hydra:secret@postgresdhydra:5432/hydra?sslmode=disable&max_conns=20&max_idle_conns=4
command: migrate -c /home/ory/hydra.yml sql -e --yes
volumes:
- type: bind
source: dev/ory
target: /home/ory
restart: on-failure
depends_on:
- postgresdhydra
# consent:
# environment:
# - HYDRA_ADMIN_URL=http://hydra:4445
# image: oryd/hydra-login-consent-node:v2.1.2
# ports:
# - "3000:3000"
# restart: unless-stopped
postgresdhydra:
image: postgres:14.1
environment:
- POSTGRES_USER=hydra
- POSTGRES_PASSWORD=secret
- POSTGRES_DB=hydra
32 changes: 32 additions & 0 deletions scripts/hydra.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# brew install ory-hydra

code_client=$(hydra create client \
--endpoint http://127.0.0.1:4445 \
--grant-type authorization_code,refresh_token \
--response-type code,id_token \
--format json \
--scope openid --scope offline \
--redirect-uri http://127.0.0.1:5555/callback
)

code_client_id=$(echo $code_client | jq -r '.client_id')
code_client_secret=$(echo $code_client | jq -r '.client_secret')

# this simulate the front end client.
# would be mobile app for adding a boltcard
hydra perform authorization-code \
--client-id $code_client_id \
--client-secret $code_client_secret \
--endpoint http://127.0.0.1:4444/ \
--port 5555 \
--scope openid --scope offline


hydra introspect token \
--format json-pretty \
--endpoint http://127.0.0.1:4445/ \
TOKEN
# OR
curl -X POST http://localhost:4445/admin/oauth2/introspect -d token=ory_at_TOKEN

curl -I -X POST http://localhost:4456/decisions/graphql -H 'Authorization: Bearer ory_at_TOKEN'

0 comments on commit 1a3b540

Please sign in to comment.