You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'URL of the endpoint that contains JWKs (Json Web Key) for
164
+
JWT (Json Web Token) verification'
165
+
type: string
166
+
maxLength: 127
167
+
introspect_url:
168
+
description: ' URL of the introspection server'
169
+
type: string
170
+
maxLength: 127
171
+
client_credentials:
172
+
description: |+
173
+
'secrets object that contains Client Id and secret as known
174
+
to Introspection server'
175
+
type: string
176
+
maxLength: 253
152
177
token_in_hdr:
153
178
description: |+
154
179
'custom header name where token is present,
@@ -177,27 +202,46 @@ spec:
177
202
items:
178
203
type: string
179
204
maxLength: 127
180
-
jwks_uri:
205
+
metadata_url:
206
+
description: 'URL used to get OAUTH/OIDC provider metadata'
207
+
type: string
208
+
maxLength: 255
209
+
user_field:
181
210
description: |+
182
-
'URL of the endpoint that contains JWKs (Json Web Key) for
183
-
JWT (Json Web Token) verification'
211
+
'Attribute in the token from which username should be extracted.
212
+
by default, ADC looks at email attribute for user id'
184
213
type: string
185
214
maxLength: 127
186
-
introspect_url:
187
-
description: ' URL of the introspection server'
215
+
default_group:
216
+
description: |+
217
+
'group assigned to the request if authentication succeeds,
218
+
this is in addition to any extracted groups from token'
188
219
type: string
189
-
maxLength: 127
190
-
client_credentials:
220
+
maxLength: 63
221
+
grant_type:
222
+
description: 'used to specify the type of flow to the token end point, defaults to CODE'
223
+
type: array
224
+
items:
225
+
type: string
226
+
enum: ['CODE','PASSWORD']
227
+
pkce:
228
+
description: 'specify whether to enable Proof Key Code Exchange, defaults to ENABLED'
229
+
type: string
230
+
enum: ['ENABLED', 'DISABLED']
231
+
token_ep_auth_method:
191
232
description: |+
192
-
'secrets object that contains Client Id and secret as known
193
-
to Introspection server'
233
+
'authentication method to be used with token end point,
234
+
defaults to client_secret_post'
194
235
type: string
195
-
maxLength: 253
236
+
enum: ['client_secret_post', 'client_secret_jwt']
237
+
196
238
anyOf:
197
239
- properties:
198
240
required : [jwks_uri]
199
241
- properties:
200
242
required : [introspect_url, client_credentials]
243
+
- properties:
244
+
required : [metadata_url]
201
245
202
246
ldap:
203
247
description: 'LDAP authentication provider'
@@ -465,7 +509,6 @@ spec:
465
509
466
510
required:
467
511
- servicenames
468
-
469
512
```
470
513
471
514
## Auth CRD attributes
@@ -500,8 +543,9 @@ The following are the attributes for forms based authentication.
500
543
| --------- | ----------- |
501
544
| `authentication_host` | Specifies a fully qualified domain name (FQDN) to which the user must be redirected for authentication. This FQDN should be unique and should resolve to the front-end IP address of Citrix ADC with Ingress or service type LoadBalancer.|
502
545
| `authentication_host_cert` | Specifies the name of the SSL certificate to be used with the `authentication_host`. This certificate is mandatory while performing authentication using the form.|
503
-
|`vip`| Specifies the front-end IP address of the ingress for which the authentication using forms is applicable. This attribute refers to the `frontend-ip` provided with the Ingress.|
546
+
|`ingress_name`| Specifies the Ingress name for which the authentication using forms is applicable.|
504
547
| `lb_service_name`| Specifies the name of the service of type LoadBalancer for which the authentication using forms is applicable.|
548
+
| `vip` |Specifies the front-end IP address of the Ingress for which the authentication using forms is applicable. This attribute refers to the `frontend-ip` address provided with the Ingress. If there is more than one Ingress resource which uses the same frontend-ip, it is recommended to use vip.|
505
549
506
550
**Note:** While using forms, authentication can be enabled for all types of traffic. Currently, granular authentication is not supported.
507
551
@@ -531,6 +575,18 @@ The following are the attributes for OAuth authentication:
531
575
|`signature_algorithms`| Specifies the list of signature algorithms which are allowed. By default HS256, RS256, and RS512 algorithms are allowed.|
532
576
| `introspect_url`| The URL of the introspection endpoint of the authentication server (IdP). If the access token presented is an opaque token, introspection is used for the token verification.|
533
577
| `client_credentials`| The name of the Kubernetes secrets object that contains the client id and client secret required to authenticate with the authentication server.|
578
+
| `claims_to_save`| The list of claims to be saved. Claims are used to create authorization policies.|
579
+
580
+
OpenID Connect (OIDC) is a simple identity layer on top of the OAuth 2.0 protocol. OIDC allows clients to verify the identity of the end-user based on the authentication performed by an authorization server, as well as to obtain basic profile information about the end-user. In addition to the OAuth attributes, you can use the following attributes to configure OIDC.
581
+
582
+
| Attribute | Description |
583
+
| --------- | ----------- |
584
+
| `metadata_url` | Specifies the URL that is used to get OAUTH or OIDC provider metadata.|
585
+
| `user_field` | Specifies the attribute in the token from which the user name should be extracted. By default, Citrix ADC examines the email attribute for user ID.|
586
+
| `default_group` | Specifies the group assigned to the request if authentication succeeds. This group is in addition to any extracted groups from the token. |
587
+
| `grant_type` | Specifies the type of flow to the token end point. The default value is `CODE`.|
588
+
| `pkce` | Specifies whether to enable Proof Key for Code Exchange (PKCE). The default value is `ENABLED`.|
589
+
| `token_ep_auth_method` | Specifies the authentication method to be used with the token end point. The default value is `client_secret_post`.|
534
590
535
591
#### SAML authentication
536
592
@@ -573,7 +629,7 @@ The following are the attributes for LDAP authentication.
573
629
| `security_type` | Specifies the type of security used for communications between the Citrix ADC and the LDAP server. The default is TLS.|
574
630
| `validate_server_cert` | Validates LDAP server certificates. The default value is `NO`.|
575
631
|`hostname`|Specifies the host name for the LDAP server. If `validate_server_cert` is `ON`, this value must be the host name on the certificate from the LDAP. A host name mismatch causes a connection failure.|
576
-
|`sub_attribute_name`| Specifies the LDAP group sub-attribute name. This attribute is used for group extraction from the LDAP server.|
632
+
|`sub_attribute_name`| Specifies the LDAP group subattribute name. This attribute is used for group extraction from the LDAP server.|
577
633
|`group_attribute_name`| Specifies the LDAP group attribute name. This attribute is used for group extraction on the LDAP server.|
578
634
|`search_filter`| Specifies the string to be combined with the default LDAP user search string to form the search value. For example, if the search filter "vpnallowed=true" is combined with the LDAP login name "samaccount" and the user-supplied user name is "bob", the result is the LDAP search string ""(&(vpnallowed=true)(samaccount=bob)"". Enclose the search string in two sets of double quotation marks.|
579
635
|`auth_timeout`| Specifies the number of seconds the Citrix ADC waits for a response from the server. The default value is 3.|
@@ -622,7 +678,7 @@ Perform the following to deploy the Auth CRD:
622
678
623
679
## How to write the authentication policies
624
680
625
-
After you have deployed the CRD provided by Citrix in the Kubernetes cluster, you can define the authentication policy configuration in a `.yaml` file. In the `.yaml` file, use `authpolicy` in the `kind` field and in the `spec` section add the Auth CRD attributes based on your requirement for the policy configuration.
681
+
After you have deployed the CRD provided by Citrix in the Kubernetes cluster, you can define the authentication policy configuration in a `.yaml` file. In the `.yaml` file, use `authpolicy` in the `kind` field and in the `spec` section add the **Auth CRD** attributes based on your requirement for the policy configuration.
626
682
627
683
After you deploy the `.yaml` file, the Citrix ingress controller applies the authentication policy configuration on the Ingress Citrix ADC device.
628
684
@@ -725,15 +781,15 @@ The sample authentication policy performs the following:
725
781
726
782
- The Citrix ADC does not perform the authentication for the **products** and **GET** endpoints.
727
783
728
-
- The Citrix ADC performs the oAuth JWT verification as specified in the provider `jwt-auth-provider` for the requests to the **reviews** endpoint.
784
+
- The Citrix ADC performs the OAuth JWT verification as specified in the provider `jwt-auth-provider` for the requests to the **reviews** endpoint.
729
785
730
-
- The Citrix ADC performs the oAuth introspection as specified in the provider `introspect-provider` for the requests to the **customers** endpoint.
786
+
- The Citrix ADC performs the OAuth introspection as specified in the provider `introspect-provider` for the requests to the **customers** endpoint.
731
787
732
788
- The Citrix ADC requires the `scope` claim with `read` and `write` permissions to access the **customers** endpoint and **POST**.
733
789
734
790
- The Citrix ADC does not need any authorization permissions to access the **products** endpoint with GET operation.
735
791
736
-
For oAuth, if the token is present in a custom header, it can be specified using the `token_in_hdr` attribute as follows:
792
+
For OAuth, if the token is present in a custom header, it can be specified using the `token_in_hdr` attribute as follows:
737
793
738
794
739
795
oauth:
@@ -752,7 +808,7 @@ Similarly, if the token is present in a query parameter, it can be specified usi
752
808
753
809
### Creating a secrets object with client credentials for introspection
754
810
755
-
A Kubernetes secrets object is needed for configuring the oAuth introspection.
811
+
A Kubernetes secrets object is needed for configuring the OAuth introspection.
756
812
You can create a secret object in a similar way as shown in the following example:
757
813
758
814
@@ -818,6 +874,53 @@ spec:
818
874
819
875
```
820
876
877
+
### OpenID Connect authentication using forms
878
+
879
+
The following is an example for creating OpenID Connect authentication to configure Citrix ADC in a Relaying Party (RP) role to authenticate users for an external identity provider. The `authentication_mechanism` must be set to `using_forms` to trigger the OpenID Connect procedures.
0 commit comments