Skip to content

Commit 426bf3c

Browse files
authored
Merge pull request #1264 from ITfoxtec/test
Test
2 parents 98fd555 + 171b947 commit 426bf3c

File tree

78 files changed

+2601792
-426
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+2601792
-426
lines changed

FoxIDs.sln

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{CB5D86A0-D
7575
docs\email.md = docs\email.md
7676
docs\extended-ui.md = docs\extended-ui.md
7777
docs\external-login.md = docs\external-login.md
78+
docs\external-password-api.md = docs\external-password-api.md
7879
docs\faq.md = docs\faq.md
7980
docs\foxids-dev.md = docs\foxids-dev.md
8081
docs\foxids-inside.md = docs\foxids-inside.md
@@ -100,6 +101,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{CB5D86A0-D
100101
docs\samples.md = docs\samples.md
101102
docs\standard-support.md = docs\standard-support.md
102103
docs\token-exchange.md = docs\token-exchange.md
104+
docs\users-external.md = docs\users-external.md
105+
docs\users-internal.md = docs\users-internal.md
103106
docs\users-upload.md = docs\users-upload.md
104107
docs\users.md = docs\users.md
105108
docs\_sidebar.md = docs\_sidebar.md
@@ -136,6 +139,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "images", "images", "{CB8812
136139
docs\images\configure-external-claims-config.png = docs\images\configure-external-claims-config.png
137140
docs\images\configure-external-login-config.png = docs\images\configure-external-login-config.png
138141
docs\images\configure-external-login-ui.png = docs\images\configure-external-login-ui.png
142+
docs\images\configure-external-password-api.png = docs\images\configure-external-password-api.png
143+
docs\images\configure-failing-login-lockout.png = docs\images\configure-failing-login-lockout.png
139144
docs\images\configure-foxids_control_api.png = docs\images\configure-foxids_control_api.png
140145
docs\images\configure-implicit-code-flow.png = docs\images\configure-implicit-code-flow.png
141146
docs\images\configure-jwt-saml-mappings.png = docs\images\configure-jwt-saml-mappings.png
@@ -155,6 +160,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "images", "images", "{CB8812
155160
docs\images\configure-oauth-resource.png = docs\images\configure-oauth-resource.png
156161
docs\images\configure-oidc-auth-method.png = docs\images\configure-oidc-auth-method.png
157162
docs\images\configure-oidc-lifetime.png = docs\images\configure-oidc-lifetime.png
163+
docs\images\configure-password-policy.png = docs\images\configure-password-policy.png
158164
docs\images\configure-plan-tenant.png = docs\images\configure-plan-tenant.png
159165
docs\images\configure-plan.png = docs\images\configure-plan.png
160166
docs\images\configure-resource-scopes-client.png = docs\images\configure-resource-scopes-client.png

docs/claim-transform-task.md

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -104,23 +104,17 @@ If the base URL for the API is `https://somewhere.org/myclaimsstore` the URL for
104104
*The outgoing IP address can be changed and more can be added over time.*
105105

106106
#### Request
107-
The API call is secured with [HTTP Basic authentication scheme](https://datatracker.ietf.org/doc/html/rfc6749#section-2.3.1) where FoxIDs sends the ID `external_claims` as the username and the configured secret as the password.
107+
Secured with [HTTP Basic auth](https://datatracker.ietf.org/doc/html/rfc6749#section-2.3.1): username `external_claims`, password = configured secret.
108108

109109
The API is called with HTTP POST and a JSON body.
110110

111111
This is a request JSON body with two input claims:
112112
```JSON
113113
{
114-
"claims": [
115-
{
116-
"type": "sub",
117-
"value": "1b1ac05e-5937-4939-a49c-0e84a89662df"
118-
},
119-
{
120-
"type": "email",
121-
"value": "[email protected]"
122-
}
123-
]
114+
"claims": [
115+
{ "type": "sub", "value": "1b1ac05e-5937-4939-a49c-0e84a89662df" },
116+
{ "type": "email", "value": "[email protected]" }
117+
]
124118
}
125119
```
126120

@@ -131,41 +125,26 @@ For example, the user's sub (user ID / username), customer ID and roles:
131125
```JSON
132126
{
133127
"claims": [
134-
{
135-
"type": "sub",
136-
"value": "somewhere/[email protected]"
137-
},
138-
{
139-
"type": "customer_id",
140-
"value": "1234abcd"
141-
},
142-
{
143-
"type": "role",
144-
"value": "admin_access"
145-
},
146-
{
147-
"type": "role",
148-
"value": "read_access"
149-
},
150-
{
151-
"type": "role",
152-
"value": "write_access"
153-
}
128+
{ "type": "sub", "value": "somewhere/[email protected]" },
129+
{ "type": "customer_id", "value": "1234abcd" },
130+
{ "type": "role", "value": "admin_access" },
131+
{ "type": "role", "value": "read_access" },
132+
{ "type": "role", "value": "write_access" }
154133
]
155134
}
156135
```
157136

158137
#### Response - Error
159-
The API must return HTTP code 401 (Unauthorized) and an `error` (required) if the Basic authentication is rejected. Optionally add an error description in `ErrorMessage`.
138+
The API must return HTTP code 401 (Unauthorized) and an `error` (required) if the Basic auth is rejected. Optionally add an error description in `ErrorMessage`.
160139
```JSON
161140
{
162141
"error": "invalid_api_id_secret",
163142
"ErrorMessage": "Invalid API ID or secret"
164143
}
165144
```
166145

167-
If other errors occur, the API should return HTTP code 500 or another appropriate error code.
168-
It is recommended to add a technical error message in `ErrorMessage`. The error message can then later be found in the FoxIDs logs.
146+
If other errors occur, the API should return HTTP code 500 or another appropriate error code.
147+
It is recommended to add a technical error message `ErrorMessage` for diagnostics (it is only logged; never shown to the end user).
169148

170149
> Error messages returned from the API in `ErrorMessage` is NOT displayed for the user only logged.
171150

docs/description.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
**FoxIDs is a Identity Service (IDS) with support for [OAuth 2.0](oauth-2.0.md), [OpenID Connect 1.0](oidc.md) and [SAML 2.0](saml-2.0.md).**
1+
**FoxIDs is an Identity Service (IDS) with support for [OAuth 2.0](oauth-2.0.md), [OpenID Connect 1.0](oidc.md) and [SAML 2.0](saml-2.0.md).**
22

33
> Hosted in Europe / Ownership and data in Europe.
44
5-
FoxIDs is both an [authentication](login.md) platform and a security broker where FoxIDs support [converting](bridge.md) between OpenID Connect 1.0 and SAML 2.0.
5+
FoxIDs is both an [authentication](login.md) platform and a security broker where FoxIDs supports [converting](bridge.md) between OpenID Connect 1.0 and SAML 2.0.
66

7-
FoxIDs is designed as service with multi-tenant support. Your tenant holds your environments (prod, QA, test, dev or corporate, external-idp, app-a, app-b) and possible [interconnect](howto-environmentlink-foxids.md) the environments.
7+
FoxIDs is designed as a service with multi-tenant support. Your tenant holds your environments (prod, QA, test, dev or corporate, external-idp, app-a, app-b) and can optionally [interconnect](howto-environmentlink-foxids.md) the environments.
88
Each environment is an Identity Provider with a [user repository](users.md) and a unique [certificate](certificates.md).
9-
An environment can be connected to external Identity Provider with [OpenID Connect 1.0](auth-method-oidc.md) or [SAML 2.0](auth-method-saml-2.0.md) authentication methods.
9+
An environment can be connected to an external Identity Provider with [OpenID Connect 1.0](auth-method-oidc.md) or [SAML 2.0](auth-method-saml-2.0.md) authentication methods.
1010
The environment is configured as the IdP for applications and APIs with [OAuth 2.0](app-reg-oauth-2.0.md), [OpenID Connect 1.0](app-reg-oidc.md) or [SAML 2.0](app-reg-saml-2.0.md) application registrations.
1111
The user's [log in](login.md) experience is configured and optionally [customised](customisation.md).
1212

1313
> Take a look at the FoxIDs test configuration in FoxIDs Control: [https://control.foxids.com/test-corp](https://control.foxids.com/test-corp)
1414
> Get read access with the user `[email protected]` and password `TestAccess!`
1515
16-
FoxIDs consist of two services:
16+
FoxIDs consists of two services:
1717

1818
- [FoxIDs](connections.md) - identity service, which handles user log in, OAuth 2.0, OpenID Connect 1.0 and SAML 2.0.
1919
- [FoxIDs Control](control.md), which is used to configure FoxIDs in a user interface or by calling an API.
2020

21-
Hosting:
21+
Hosting options:
2222

2323
- FoxIDs SaaS is available at [FoxIDs Cloud](https://www.foxids.com/action/signup) as an Identity Service (IDS).
2424
- You can [deploy](deployment.md) FoxIDs anywhere using Docker or Kubernetes (K8s).
@@ -28,17 +28,17 @@ Hosting:
2828
## Source code available
2929

3030
The FoxIDs source code is available at the [GitHub repository](https://github.com/ITfoxtec/FoxIDs).
31-
The [license](https://github.com/ITfoxtec/FoxIDs/blob/main/LICENSE) grant all the right to install and use FoxIDs for non-production. The license grant small companies including, personal projects and non-profit educational institutions the right to install and use FoxIDs in production.
31+
The [license](https://github.com/ITfoxtec/FoxIDs/blob/main/LICENSE) grants you the right to install and use FoxIDs for non-production. The license grants small companies, personal projects, and non-profit educational institutions the right to install and use FoxIDs in production.
3232

3333
## Selection by URL
34-
The [structure](foxids-inside.md#structure) of FoxIDs separates the different tenants, environments and [connections](connections.md) which is selected with URL elements.
34+
The [structure](foxids-inside.md#structure) of FoxIDs separates the different tenants, environments and [connections](connections.md), which are selected via URL elements.
3535

3636
If FoxIDs is hosted on e.g., `https://foxidsxxxx.com/` the tenants are separated in the first path element of the URL `https://foxidsxxxx.com/tenant-x/`.
3737
The environments are separated under each tenant in the second path element of the URL `https://foxidsxxxx.com/tenant-x/environment-y/`.
3838

39-
An application registration is call by adding the application registration name as the third path element in the URL `https://foxidsxxxx.com/tenant-x/environment-y/application-z/`.
40-
An authentication method is call by adding the authentication method name insight round brackets as the third path element in the URL `https://foxidsxxxx.com/tenant-x/environment-y/(auth-method-s)/`.
41-
If FoxIDs handles a authentication method sequence resulting in a session cookie the same URL notation is used to lock the cookie to the URL.
39+
An application registration is called by adding the application registration name as the third path element in the URL `https://foxidsxxxx.com/tenant-x/environment-y/application-z/`.
40+
An authentication method is called by adding the authentication method name inside round brackets as the third path element in the URL `https://foxidsxxxx.com/tenant-x/environment-y/(auth-method-s)/`.
41+
If FoxIDs handles an authentication method sequence resulting in a session cookie the same URL notation is used to lock the cookie to the URL.
4242

4343
When a client (application) starts an OpenID Connect or SAML 2.0 login sequence it needs to specify by which authentication method the user should authenticate.
4444
The authentication method is selected by adding the authentication method name in round brackets in the URLs third path element after the application registration name `https://foxidsxxxx.com/tenant-x/environment-y/application-z(auth-method-s)/`.
@@ -50,7 +50,7 @@ Selecting multiple authentication methods:
5050
in the URL after the application registration name `https://foxidsxxxx.com/tenant-x/environment-y/application-z(auth-method-s1,auth-method-s2,auth-method-s3,auth-method-s4)/`
5151
- Select an authentication methods profile by adding the authentication method `+` profile instead of just the authentication method in the URL `https://foxidsxxxx.com/tenant-x/environment-y/application-z(auth-method-s+profile-u)/`
5252

53-
> The allowed authentication methods is configured in each [application registration](connections.md#application-registration).
53+
> The allowed authentication methods are configured in each [application registration](connections.md#application-registration).
5454
55-
A client using client credentials as authorization grant would not specify the authentication method.
55+
A client using the client credentials authorization grant would not specify the authentication method.
5656
It is likewise optional to specify the authentication method when calling an OpenID Connect discovery document or a SAML 2.0 metadata endpoint.

0 commit comments

Comments
 (0)