-
Notifications
You must be signed in to change notification settings - Fork 35
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure api managers can disable API key check on Backends #622
Comments
Works with api_key parameter though |
@kyyberi To what server are you making the request? Specifically, are you making the request to Api Umbrella server? If that is the case, this is an upstream bug. |
I'm using API managed by APIKA, but obviously the actual API calls go through Umbrella. In those cases, api_key is always required. References API is Lentodiilit REST API |
@brylie Should we check the Edit API backend form that the data gets passed correctly? |
@bajiat jep. Specifically, we need to make sure the configuration object sent to API Umbrella conforms to the REST API request requirements: {
"api": {
"id": "string",
"name": "string",
"sort_order": 0,
"backend_protocol": "http",
"frontend_host": "string",
"backend_host": "string",
"servers": [
{
"id": "string",
"host": "string",
"port": 0
}
],
"url_matches": [
{
"id": "string",
"frontend_prefix": "string",
"backend_prefix": "string"
}
],
"balance_algorithm": "least_conn",
"settings": {
"id": "string",
"append_query_string": "string",
"headers": [
{
"id": "string",
"key": "string",
"value": "string"
}
],
"headers_string": "string",
"default_response_headers": [
{
"id": "string",
"key": "string",
"value": "string"
}
],
"default_response_headers_string": "string",
"override_response_headers": [
{
"id": "string",
"key": "string",
"value": "string"
}
],
"override_response_headers_string": "string",
"http_basic_auth": "string",
"require_https": "required_return_error",
"require_https_transition_start_at": "2016-01-12T09:23:24.660Z",
"disable_api_key": true,
"api_key_verification_level": "none",
"api_key_verification_transition_start_at": "2016-01-12T09:23:24.660Z",
"required_roles": [
"string"
],
"required_roles_override": true,
"allowed_ips": [
"string"
],
"allowed_referers": [
"string"
],
"rate_limit_mode": "unlimited",
"rate_limits": [
{
"id": "string",
"duration": 0,
"accuracy": 0,
"limit_by": "ip",
"distributed": true,
"response_headers": true
}
],
"anonymous_rate_limit_behavior": "ip_fallback",
"authenticated_rate_limit_behavior": "all",
"pass_api_key_header": true,
"pass_api_key_query_param": true,
"error_templates": {},
"error_data": {},
"error_data_yaml_strings": {}
},
"sub_settings": [
{
"id": "string",
"http_method": "any",
"regex": "string",
"settings": {
"id": "string",
"append_query_string": "string",
"headers": [
{
"id": "string",
"key": "string",
"value": "string"
}
],
"headers_string": "string",
"default_response_headers": [
{
"id": "string",
"key": "string",
"value": "string"
}
],
"default_response_headers_string": "string",
"override_response_headers": [
{
"id": "string",
"key": "string",
"value": "string"
}
],
"override_response_headers_string": "string",
"http_basic_auth": "string",
"require_https": "required_return_error",
"require_https_transition_start_at": "2016-01-12T09:23:24.663Z",
"disable_api_key": true,
"api_key_verification_level": "none",
"api_key_verification_transition_start_at": "2016-01-12T09:23:24.663Z",
"required_roles": [
"string"
],
"required_roles_override": true,
"allowed_ips": [
"string"
],
"allowed_referers": [
"string"
],
"rate_limit_mode": "unlimited",
"rate_limits": [
{
"id": "string",
"duration": 0,
"accuracy": 0,
"limit_by": "ip",
"distributed": true,
"response_headers": true
}
],
"anonymous_rate_limit_behavior": "ip_fallback",
"authenticated_rate_limit_behavior": "all",
"pass_api_key_header": true,
"pass_api_key_query_param": true,
"error_templates": {},
"error_data": {},
"error_data_yaml_strings": {}
}
}
],
"rewrites": [
{
"id": "string",
"matcher_type": "route",
"http_method": "any",
"frontend_matcher": "string",
"backend_replacement": "string"
}
],
"created_at": "2016-01-12T09:23:24.665Z",
"creator": {
"username": "string"
},
"updated_at": "2016-01-12T09:23:24.666Z",
"updater": {
"username": "string"
}
}
} |
I think there are two possible candidate fields in the above configuration: ...
"disable_api_key": true,
"api_key_verification_level": "none", |
"disable_api_key": true is more self explanatory |
Right, this is API Umbrella functionality though. So, we need to figure out which field(s) API Umbrella uses to control the API Key requirement. |
As @kyyberi indicates, lets test the |
When submitting our Edit API Backend form, the 'disable api key' field data is not being updated on API Umbrella. We need to make sure our integration code is passing the updates to all API Backend configuration fields. |
Copied from #833:
|
@NNN what are your ideas about how the interface should look? please let me know. |
@NNN : I've added the wireframes. One is the checkbox you suggested and another is toggling option. Please review them and give your feedback. P.S. I;ve added only the field for this task only, As there might be other fields in the proxy tab, but the UI is not yet ready, you can place this field where convenient. |
I like with simple checkbox, let's go with it. |
@NNN What is the status? |
Original report (by @kyyberi)
Even if I selected that API key is optional (and also selected unlimited requests), when testing the API response was:
API_KEY_MISSING
Definition of done (by @bajiat, by @brylie modified due to Multiproxy work)
Wireframe
The text was updated successfully, but these errors were encountered: