Commit Graph

107 Commits

Author SHA1 Message Date
hackerman 6829a58622
sdk: Move to go-swagger code generator (#1347)
Signed-off-by: aeneasr <aeneas@ory.sh>
2019-04-09 13:24:13 +02:00
hackerman 95a51deb31
Improve configuration and service management (#1314)
This patch significantly refactors internal configuration and service management with the goal of making configuration changes possible without service restarts. This patch prepares the possibility to configure ORY Hydra from a remote source (etcd, consul) and watch for changes. This patch also introduces the possibility to configure ORY Hydra from a configuration file on top of environment variables.

The following issues have been fixed as well:

- Key rotation of the system secret is now much simpler (closes #1316)
- Database connectivity parameters such as max_conns no longer cause issues with older postgres versions (closes #1327)
- Non-existing routes now return a JSON error instead of `text/plain` when `application/json` was requested (clsoes #1244)
- We now push tags latest, X, X.Y, X.Y.Z to docker hub (closes #1289)
- The quickstart guide no longer builds the source code but instead pulls latest tag (closes #1309)
- We moved to goreleaser and godownloader for release management (closes #1107)
- The quickstart Docker Compose files are now reusable (closes #1196)

The following issues are also resolved:

- Closes #1121 

Signed-off-by: aeneasr <aeneas@ory.sh>
2019-04-02 11:52:21 +02:00
hackerman 24a40a096a
client: Add created/updated at fields (#1207)
Closes #1120

Signed-off-by: aeneasr <aeneas@ory.sh>
2018-12-07 14:55:01 +01:00
RikiyaFujii c3cc80cd57 all: Streamline method signatures (#1190)
Signed-off-by: RikiyaFujii <ridai22hanriku@gmail.com>
2018-11-29 09:18:46 +01:00
hackerman 89f5960c9a
sdk: Update swagger endpoint definition (#1166)
Closes #1070

Signed-off-by: aeneasr <aeneas@ory.sh>
2018-11-09 14:10:04 +01:00
hackerman 65b7406abe
Move dependencies to ory/x (#1095)
Signed-off-by: aeneasr <aeneas@ory.sh>
2018-10-23 06:59:31 -07:00
hackerman 2b491c9e27
Switch to go modules and add vendor (#1077)
Closes #1074

Signed-off-by: arekkas <aeneas@ory.am>
2018-10-09 22:45:56 +02:00
Amir Aslaminejad b76d5d83c6 client: pass context through to sql store
Signed-off-by: Amir Aslaminejad <aslaminejad@gmail.com>
2018-09-18 09:48:55 +02:00
arekkas e99d8205fe client: Introduce SubjectType to OAuth2 Clients
This patch introduces field `subject_type` to OAuth 2.0 Clients. See #950

Signed-off-by: arekkas <aeneas@ory.am>
2018-08-10 10:23:19 +02:00
arekkas a8b9b022d9 client: Deprecate field `id`, now only `client_id` is to be used
Signed-off-by: arekkas <aeneas@ory.am>
2018-07-23 17:10:30 +02:00
arekkas 8f7180696d client: Deprecate `public` flag
The `public` flag has been deprecated in favor of setting `token_endpoint_auth_method=none`.

Closes #938

Signed-off-by: arekkas <aeneas@ory.am>
2018-07-22 13:17:18 +02:00
arekkas 35bf58111b client: Improve handling of legacy `id` field
Closes #924

Signed-off-by: arekkas <aeneas@ory.am>
2018-07-15 13:16:54 +02:00
arekkas a689cb07ca client: Improves and DRYies validation in the handler
Closes #909
2018-06-24 17:24:12 +02:00
aeneasr f344d1070b client: Keep id as alias to client_id 2018-06-24 17:24:12 +02:00
arekkas bfc9d09f6d client: Adds sector identifier URL 2018-06-24 17:24:12 +02:00
arekkas 215bef3add client: Adds ability to define default client scopes
Environment variable `OIDC_DYNAMIC_CLIENT_REGISTRATION_DEFAULT_SCOPE` was added in order to better implement the OpenID Connect Dynamic Client Registration protocol. The mentioned protocol does not support the concept of whitelisting OAuth 2.0 Scope on a per-client basis. Therefore, the functionality to define the default OAuth 2.0 Scope has been defined.

Keep in mind that exposing the OpenID Connect Dynamic Client Registration functionality to the public effectively disables the OAuth 2.0 Scope whitelisting functionality, as each caller of that API can define which OAuth 2.0 Scope a client may request.

If you decide to expose that functionality, you should NEVER assume that the granted OAuth 2.0 Scope has any meaning when handling requests at your consent endpoint, or when validating requests with tokens issued by the client_credentials flow.
2018-06-24 17:24:12 +02:00
zepatrik 56aa5d267f client: Introduces client_secret_expires_at to client metadata (#870)
This patch introduces the `client_secret_expires_at` field without any functionality but to comply with the IETF spec.

Closes #778
2018-05-25 12:21:54 +02:00
arekkas a4d2e73cdd all: Removes access control relics 2018-05-23 18:22:47 +02:00
arekkas 3d0bf0bda5 Removes policy, warden and groups from this project
We have learned a lot over the last year in terms of how ORY Hydra is being used. Initially, we wanted to avoid the problems facing popular databases like MongoDB or others, which did not include authentication for their management APIs.

For this reason, the Warden API was born and primarily used internally and exposed via HTTP. We learned that access control policies are well received, but also add additional complexity to understanding the software. While we firmly believe that these policies implement best practices for access control in complex systems, we do understand that they add a barrier to getting started with ORY Hydra.

For this reason we are planning on moving the Warden API from this project to ORY Oathkeeper or potentially it's own server. We would add a migration path for existing policy definitions to the new service. The default docker image would combine the services in such a way, that ORY Hydra is protected. We would additionally have an (insecure) docker image without authentication which can be used for testing.

This also opens up the possibility of having more access control mechanisms than access control policies. For example, we can add ACL and RBAC and other mechanisms too.

First I think it makes good sense to move this functionality into a separate service and remove the warden calls internally completely. The reason being that not everyone wants to rely on Hydra's access control. Sometimes it's enough to use a gateway in front and require e.g. an API key for management or whatever. New adopters are always baffled by complexity involved with policies and scopes. Removing that from the core could really help. The user survey has also shown that this stuff is quite complex to grasp.

The idea is to have a separate service which is basically ladon as a HTTP API. I think it makes sense to add some functionality to resolve access tokens so it would basically be very similar to the current warden API - probably even equal. There would definitely be some backup mode where hydra's database tables and migrations are used as to make migration as easy as possible.

Then, we would ship docker images and example set ups where different configurations are shown. One of the configurations would be the current one, so basically what we have now in hydra but with the three services combined in one image.

Closes #807
2018-04-29 18:25:42 +02:00
Aeneas 366ed57d9c
all: Updates license headers (#793) 2018-03-08 10:27:18 +01:00
arekkas 5a2e4dfcfd docs: Improves API docs 2018-02-18 23:14:44 +01:00
Aeneas 02b37086fa
client: Introduces pagination to client management (#774)
Previously, all clients were returned by `GET /clients`. To mitigate
DoS attacks against large databases, pagination has been introduced.

Closes #739
2018-02-09 12:21:11 +01:00
zepatrik 439267b0e4 client: Strips client secret from output when client is public (#765)
Previously a newly created public client had a secret send with the initial response and this secret was displayed in the CLI.

Now it is clear that there is no secret needed for public clients. It is not displayed in the CLI anymore.

Closes #737
2018-02-06 14:22:12 +01:00
zepatrik f818f857c2 client: Stops creating client when secret is too short (#764)
Previously, clients were created despite an error which said that the secret was too short. This patch changes that and improves error output in the CLI as well for this command.

Closes #725
2018-02-06 13:17:02 +01:00
Aeneas 7c5786eb36
client: Returns 404 only when policy allows getting a client (#751) 2018-01-20 20:44:21 +01:00
Aeneas aee603b42b
Makes policy resource names prefixes configurable (#672) 2017-12-04 12:15:09 +01:00
Aeneas dcbd6d8fcb
Add license header to all source files (#644)
Closes #643
2017-11-06 13:01:53 +01:00
arekkas 6fe4bb2996 all: improve swagger documentation of all modules 2017-10-05 18:12:34 +02:00
arekkas 8fcc8cb251 all: reduce tags to one and clean up sdk 2017-10-05 18:12:34 +02:00
arekkas 5a27d4bf12 all: update swagger definitions and combine in hydra interface 2017-10-05 18:12:34 +02:00
arekkas b6c01d5c37 all: add hydra to swagger tags 2017-10-05 18:12:34 +02:00
arekkas d43a594643 all: update swagger definitions 2017-10-05 18:12:34 +02:00
arekkas b4faac659e client: return array instead of object on list endpoint 2017-10-05 18:12:34 +02:00
arekkas 96df49822b client: appropriately handle client secret responses 2017-10-05 18:12:34 +02:00
aeneasr 635d0a1cce all: write swagger docs 2017-10-05 18:12:34 +02:00
Aeneas 0868e80a48 oauth2: form-urldecode authorization basic header (#537)
Closes #536
2017-06-22 19:58:18 +02:00
Aeneas a04e6f2f1b metrics: add metrics and telemetry package (#500) 2017-06-07 19:43:45 +02:00
Aeneas ddca997bc6 docs: add health check to swagger and resolve swagger issues (#488)
Closes #355
2017-06-05 11:01:56 +02:00
Aeneas 2f617c55ff vendor: update to latest versions 2017-06-04 18:17:14 +02:00
Aeneas Rekkas (arekkas) 91dc02628c all: goimports 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) c6135403d5 docs: improve client swagger specs and add jwk specs 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) a9d50cf9e0 docs: add swagger spec for listing clients 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) ede87686e9 docs: add swagger docs for the client endpoint 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) 9be2ff3164 all: goimports 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) e912acc3a1 all: move to new org 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) ca898d655b all: remove context from herodot calls 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) e02b01730f all: move move ory-am/ladon to ory/ladon 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) 708c1a2d31 all: move move most writers in handlers to ory/herodot 2017-05-07 10:52:08 +02:00
Aeneas Rekkas (arekkas) 07441f9363 all: correct error wrapping 2016-12-30 10:23:17 +01:00
Aeneas 8256356b9b 0.6.0 (#293)
* oauth2: scopes should be separated by %20 and not +, to ensure javascript compatibility - closes #277
* oauth2/introspect: make endpoint rfc7662 compatible - closes #289
* warden: make it clear that ladon.Request.Subject is not required or break bc and remove it - closes #270
* travis: execute gox build only when new commit is a new tag - closes #285
* docs: improve introduction (#267)
* core: (health) monitoring endpoint - closes #216
* oauth2/introspect: make endpoint rfc7662 compatible - closes #289
* connections: remove connections API - closes #265
* oauth2: token revocation endpoint - closes #233
* vendor: update to fosite 0.5.0
* core: add sql support #292
* connections: remove connections API - closes #265
* all: coverage report is missing covered lines of nested packages - closes #296
* cmd: prettify the `hydra token user` output - closes #281
* travis: make it possible for travis-ci to build forked repos - closes #295
2016-10-25 12:01:26 +02:00
Aeneas Rekkas (arekkas) 06077e99c5 client: owner should be fetched from original client when updating 2016-09-23 08:13:33 +02:00
Aeneas a92200278a 0.5.0 (#243)
* cmd: hydra token user should show id token in browser - closes #224
* cli: hydra clients import doesn't print client's secret - closes #221
* travis: ld flags are wrong - closes #242
* all: resolve naming inconsistencies in jwk set names used in hydra - closes #239
* sdk: resolve naming inconsistencies - closes #226
* docs: resolve gitbook issue with image assets
* jwk: anonymous request can't read public keys - closes #253
* client: add ability to update client - closes #250
* core: document hard-wired JWK sets - closes #247
* docs: fix images in readme - closes #261
2016-09-22 23:23:31 +02:00
Aeneas a297f7e57b 🔥 0.2.0 (#165)
* warden: rename `assertion` to `token` - closes #158
* config: do not log database credentials - closes #147
* oauth2: upgrade fosite - close #160
* config: do not store database config in hydra config - closes #164
* oauth2: id_token at_hash / c_hash is null - closes #129
* jwk: improve error message of wrong system secrect - closes #104
* readme: improve images, add benchmarks - closes #161
* cmd: improve connect dialogue - closes #170
* cmd: fix --dry option - closes #157
* firewall: document warden interface sdk
* readme: link openid connect and oauth2 introduction
* cmd: introduce FORCE_ROOT_CLIENT_CREDENTIALS env var - closes #140
* readme: document error redirect to identity provider - closes #96
* internal: fosite store must be consistent to avoid errors - closes #176
* client: add GetConcreteClient to http manager
* cmd: host process now logs basic information on all http requests - closes #178
* all: add memory profiling - closes #179
* warden: resolve nil pointer issue - closes #181
* cmd: clean up env to struct mapping, add more controls
* cmd: bcrypt cost should be configurable - closes #184
* cmd: token lifespans should be configurable - closes #183
* cmd: resolve issues with envirnoment config - closes #182
* cmd: implement tls termination capability - closes #177
* cmd: resolve issues with redirect logic and TLS
* oauth2: implement default oauth2 consent endpoint - closes #185
* warden - closes #188 
* oauth2: id token claims should be set by using id_token - closes #188
* oauth2: oauth2 implicit flow should allow custom protocols - closes #180
* oauth2: core scope should not be mandatory - closes #189
* warden: warden sdk should not make distinction between token and request - closes #190
* warden: rename authorized / allowed endpoints to something more meaningful - closes #162
* ci: improve travis config
2016-08-09 14:05:18 +02:00
Aeneas c77d2dc7b8 Resolve issues with warden and client api (#120)
* warden: fix firewall settings close #118

* client: do not base64 encode client secrets on http api close #119

* vendor: glide up
2016-06-26 14:03:42 +02:00
Aeneas 8ab555deef client: return client secret on POST and remove it from GET (#117)
closes #113
2016-06-23 16:04:53 +02:00
Aeneas 8dc1e1f92c client: resolved that secrets can not be set when using http or cli (#102) 2016-06-14 12:55:16 +02:00
Aeneas 00fd93cab2 🔥 0.1-beta 🔥 2016-05-29 11:50:57 +02:00