From 0bad1aa12d98af90b84142c3fc8da488aaa00fd7 Mon Sep 17 00:00:00 2001 From: JorgeEcheva26 <jorge.echevarriauribarri.practicas@telefonica.es> Date: Mon, 16 Sep 2024 13:19:00 +0200 Subject: [PATCH] sdk_v0.1 --- Functionalities/Config_files/config.json | 40 + .../Config_files/discover_filter.json | 15 + Functionalities/Config_files/publish.json | 5 + Functionalities/Config_files/register.json | 10 + .../provider_api_description_sample.json | 155 ++ Functionalities/deregister_and_login.py | 86 + Functionalities/emulator_utils.py | 16 + Functionalities/invoker_capif_connector.py | 27 + .../invoker_capif_connector_offboarding.py | 26 + Functionalities/invoker_service_discovery.py | 20 + Functionalities/invoker_service_get_token.py | 21 + Functionalities/provider_capif_connector.py | 20 + .../provider_capif_connector_offboarding.py | 20 + .../provider_get_all_published_api.py | 18 + Functionalities/provider_get_published_api.py | 18 + Functionalities/provider_publish_api.py | 19 + Functionalities/provider_unpublish_api.py | 18 + Functionalities/provider_update_api.py | 19 + Functionalities/register_and_login.py | 110 ++ README.md | 237 +++ Safe-6g/sdk.py | 1717 +++++++++++++++++ images/Flujo completo-OPENCAPIF ACTUAL.jpg | Bin 0 -> 84947 bytes ...Flujo completo-SDK ACTUAL CON REGISTER.jpg | Bin 0 -> 105385 bytes 23 files changed, 2617 insertions(+) create mode 100644 Functionalities/Config_files/config.json create mode 100644 Functionalities/Config_files/discover_filter.json create mode 100644 Functionalities/Config_files/publish.json create mode 100644 Functionalities/Config_files/register.json create mode 100755 Functionalities/capif_exposer_sample_files/provider_api_description_sample.json create mode 100644 Functionalities/deregister_and_login.py create mode 100755 Functionalities/emulator_utils.py create mode 100755 Functionalities/invoker_capif_connector.py create mode 100755 Functionalities/invoker_capif_connector_offboarding.py create mode 100755 Functionalities/invoker_service_discovery.py create mode 100755 Functionalities/invoker_service_get_token.py create mode 100755 Functionalities/provider_capif_connector.py create mode 100755 Functionalities/provider_capif_connector_offboarding.py create mode 100644 Functionalities/provider_get_all_published_api.py create mode 100644 Functionalities/provider_get_published_api.py create mode 100644 Functionalities/provider_publish_api.py create mode 100644 Functionalities/provider_unpublish_api.py create mode 100644 Functionalities/provider_update_api.py create mode 100644 Functionalities/register_and_login.py create mode 100644 README.md create mode 100644 Safe-6g/sdk.py create mode 100644 images/Flujo completo-OPENCAPIF ACTUAL.jpg create mode 100644 images/Flujo completo-SDK ACTUAL CON REGISTER.jpg diff --git a/Functionalities/Config_files/config.json b/Functionalities/Config_files/config.json new file mode 100644 index 0000000..76938b8 --- /dev/null +++ b/Functionalities/Config_files/config.json @@ -0,0 +1,40 @@ +{ + +"invoker_folder": "", + +"provider_folder": "", + +"capif_host": "", + +"register_host": "", + +"capif_https_port": "", + +"capif_register_port": "", + +"capif_callback_url": "", + +"csr_common_name": "", + +"csr_organizational_unit": "", + +"csr_organization": "", + +"crs_locality": "", + +"csr_state_or_province_name": "", + +"csr_country_name": "", + +"csr_email_address": "", + +"capif_username": "", + +"capif_password": "", + +"APFs":"", + +"AEFs":"", + +"debug_mode": "" +} diff --git a/Functionalities/Config_files/discover_filter.json b/Functionalities/Config_files/discover_filter.json new file mode 100644 index 0000000..48854aa --- /dev/null +++ b/Functionalities/Config_files/discover_filter.json @@ -0,0 +1,15 @@ +{ + "api-name": "", + "api-version": "", + "comm-type": "", + "protocol": "", + "aef-id": "", + "data-format": "", + "api-cat": "", + "preferred-aef-loc": "", + "req-api-prov-name": "", + "supported-features": "", + "api-supported-features": "", + "ue-ip-addr": "", + "service-kpis": "" +} diff --git a/Functionalities/Config_files/publish.json b/Functionalities/Config_files/publish.json new file mode 100644 index 0000000..f7cd404 --- /dev/null +++ b/Functionalities/Config_files/publish.json @@ -0,0 +1,5 @@ +{ + "serviceApiId":"", + "publisherAPFid":"", + "publisherAEFsids":["","",""] +} \ No newline at end of file diff --git a/Functionalities/Config_files/register.json b/Functionalities/Config_files/register.json new file mode 100644 index 0000000..25367f0 --- /dev/null +++ b/Functionalities/Config_files/register.json @@ -0,0 +1,10 @@ +{ + "register_host": "", + "capif_register_port": "", + "capif_register_username": "", + "capif_register_password": "", + "capif_username":"", + "capif_password":"", + "config_path":"", + "uuid":"" +} \ No newline at end of file diff --git a/Functionalities/capif_exposer_sample_files/provider_api_description_sample.json b/Functionalities/capif_exposer_sample_files/provider_api_description_sample.json new file mode 100755 index 0000000..1704320 --- /dev/null +++ b/Functionalities/capif_exposer_sample_files/provider_api_description_sample.json @@ -0,0 +1,155 @@ +{ + "apiName": "Api-de-prueba-2", + "aefProfiles": [ + { + "aefId": "", + "versions": [ + { + "apiVersion": "v1", + "expiry": "2100-11-30T10:32:02.004Z", + "resources": [ + { + "resourceName": "MONITORING_SUBSCRIPTIONS", + "commType": " SUBSCRIBE_NOTIFY", + "uri": "/{scsAsId}/subscriptions", + "custOpName": "http_post", + "operations": [ + "GET", + "POST" + ], + "description": "Endpoint to manage monitoring subscriptions" + }, + { + "resourceName": "MONITORING_SUBSCRIPTION_SINGLE", + "commType": " SUBSCRIBE_NOTIFY", + "uri": "/{scsAsId}/subscriptions/{subscriptionId}", + "custOpName": "http_get", + "operations": [ + "GET", + "PUT", + "DELETE" + ], + "description": "Endpoint to manage single subscription" + } + ], + "custOperations": [ + { + "commType": "REQUEST_RESPONSE", + "custOpName": "string", + "operations": [ + "POST" + ], + "description": "string" + } + ] + } + ], + "protocol": "HTTP_1_1", + "dataFormat": "JSON", + "securityMethods": [ + "Oauth", + "PSK" + ], + "interfaceDescriptions": [ + { + "ipv4Addr": "127.0.0.1", + "port": 8888, + "securityMethods": [ + "Oauth" + ] + } + ] + }, + { + "aefId": "", + "versions": [ + { + "apiVersion": "v1", + "expiry": "2100-11-30T10:32:02.004Z", + "resources": [ + { + "resourceName": "TSN_LIST_PROFILES", + "commType": " SUBSCRIBE_NOTIFY", + "uri": "/profile", + "custOpName": "http_get", + "operations": [ + "GET" + ], + "description": "Endpoint for retrieving the list of available TSN profiles" + }, + { + "resourceName": "TSN_DETAIL_PROFILE", + "commType": " SUBSCRIBE_NOTIFY", + "uri": "/profile?name={profileName}", + "custOpName": "http_get", + "operations": [ + "GET" + ], + "description": "Endpoint for retrieving information about a single TSN profile" + }, + { + "resourceName": "TSN_APPLY_CONFIGURATION", + "commType": " SUBSCRIBE_NOTIFY", + "uri": "/apply", + "custOpName": "http_post", + "operations": [ + "POST" + ], + "description": "Endpoint for configuring TSN connection parameters" + }, + { + "resourceName": "TSN_CLEAR_CONFIGURATION", + "commType": " SUBSCRIBE_NOTIFY", + "uri": "/clear", + "custOpName": "http_post", + "operations": [ + "POST" + ], + "description": "Endpoint for removing a previous TSN connection configuration" + } + ], + "custOperations": [ + { + "commType": "REQUEST_RESPONSE", + "custOpName": "string", + "operations": [ + "POST" + ], + "description": "string" + } + ] + } + ], + "protocol": "HTTP_1_1", + "dataFormat": "JSON", + "securityMethods": [ + "Oauth" + ], + "interfaceDescriptions": [ + { + "ipv4Addr": "127.0.0.1", + "port": 8899, + "securityMethods": [ + "Oauth" + ] + } + ] + } + ], + "description": "API of dummy netapp to test", + "supportedFeatures": "fffff", + "shareableInfo": { + "isShareable": true, + "capifProvDoms": [ + "string" + ] + }, + "serviceAPICategory": "string", + "apiSuppFeats": "fffff", + "pubApiPath": { + "ccfIds": [ + "string" + ] + }, + "ccfId": "string" +} \ No newline at end of file diff --git a/Functionalities/deregister_and_login.py b/Functionalities/deregister_and_login.py new file mode 100644 index 0000000..317c9bb --- /dev/null +++ b/Functionalities/deregister_and_login.py @@ -0,0 +1,86 @@ +import json +import logging +import requests +import urllib3 +import emulator_utils +from requests.auth import HTTPBasicAuth +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + + +logging.basicConfig( + level=logging.INFO, # Nivel mÃnimo de severidad a registrar + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # Formato del mensaje de log + handlers=[ + logging.FileHandler("register_logs.log"), # Registra en un archivo + logging.StreamHandler() # También muestra en la consola + ] +) + + +def main(): + + variables=__load_config_file(config_file=emulator_utils.get_register_file()) + log_result = __log_to_capif(variables) + admintoken = log_result["access_token"] + de_register_from_capif(admintoken,variables) + + logger.info("User eliminated succesfully") + + +def __log_to_capif(variables): + logger.info("Logging in to CAPIF") + capif_register_url="https://" + variables["register_host"].strip()+ ":" + variables["capif_register_port"] + "/" + try: + url = capif_register_url + "login" + + response = requests.request( + "POST", + url, + headers={"Content-Type": "application/json"}, + auth=HTTPBasicAuth(variables["capif_register_username"], variables["capif_register_password"]), + verify=False, + ) + response.raise_for_status() + response_payload = json.loads(response.text) + logger.info("Logged in to CAPIF successfully") + return response_payload + except Exception as e: + logger.error(f"Error during login to CAPIF: {e}") + raise + +def de_register_from_capif(admin_token,variables): + logger.info("Deleting CAPIF user") + capif_register_url="https://" + variables["register_host"].strip()+ ":" + variables["capif_register_port"] + "/" + + + url = capif_register_url + "deleteUser/" + variables["uuid"] + + headers = { + "Authorization": "Bearer {}".format(admin_token), + "Content-Type": "application/json", + } + response = requests.request( + "DELETE", + url, + headers=headers, + data=None, + verify=False + ) + response.raise_for_status() + logger.info("User deleted") + +def __load_config_file(config_file: str): + """Carga el archivo de configuración.""" + try: + with open(config_file, 'r') as file: + return json.load(file) + except FileNotFoundError: + logger.warning(f"Configuration file {config_file} not found. Using defaults or environment variables.") + return {} + + + +if __name__ == "__main__": + logger = logging.getLogger("CAPIF Register") + logger.info("Initializing CAPIF Register") + main() \ No newline at end of file diff --git a/Functionalities/emulator_utils.py b/Functionalities/emulator_utils.py new file mode 100755 index 0000000..1440875 --- /dev/null +++ b/Functionalities/emulator_utils.py @@ -0,0 +1,16 @@ + + +def get_config_file()-> str : + return "/Users/IDB0128/Documents/OpenCapif/SDK-S6G/Functionalities/Config_files/config.json" + +def get_register_file()-> str : + return "/Users/IDB0128/Documents/OpenCapif/SDK-S6G/Functionalities/Config_files/register.json" + +def provider_exposer_get_sample_api_description_path() -> str: + return "/Users/IDB0128/Documents/OpenCapif/SDK-S6G/Functionalities/capif_exposer_sample_files/provider_api_description_sample.json" + +def get_provider_config_file()->str: + return "/Users/IDB0128/Documents/OpenCapif/SDK-S6G/Functionalities/Config_files/Provider_config.json" + +def get_sdk_folder()-> str: + return "/Users/IDB0128/Documents/OpenCapif/SDK-S6G/" \ No newline at end of file diff --git a/Functionalities/invoker_capif_connector.py b/Functionalities/invoker_capif_connector.py new file mode 100755 index 0000000..cfd1bcc --- /dev/null +++ b/Functionalities/invoker_capif_connector.py @@ -0,0 +1,27 @@ + +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFInvokerConnector + + + +def showcase_capif_connector(): + """ + This method showcases how one can use the CAPIFConnector class. + + """ + + capif_connector = CAPIFInvokerConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.register_and_onboard_Invoker() + print("COMPLETED") + +if __name__ == "__main__": + #Let's register invoker to CAPIF. This should happen exactly once + showcase_capif_connector() + + + diff --git a/Functionalities/invoker_capif_connector_offboarding.py b/Functionalities/invoker_capif_connector_offboarding.py new file mode 100755 index 0000000..b30dc77 --- /dev/null +++ b/Functionalities/invoker_capif_connector_offboarding.py @@ -0,0 +1,26 @@ +import sys +import os + +# Agrega la ruta del archivo al sys.path +sys.path.append('/Users/IDB0128/Documents/OpenCapif/SDK-S6G') + + +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFInvokerConnector + +import emulator_utils + +def showcase_offboard_and_deregister_invoker(): + capif_connector = CAPIFInvokerConnector(config_file=emulator_utils.get_config_file()) + capif_connector.offboard_and_deregister_Invoker() + print("COMPLETED") + + +if __name__ == "__main__": + showcase_offboard_and_deregister_invoker() + + diff --git a/Functionalities/invoker_service_discovery.py b/Functionalities/invoker_service_discovery.py new file mode 100755 index 0000000..0b0d06c --- /dev/null +++ b/Functionalities/invoker_service_discovery.py @@ -0,0 +1,20 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import ServiceDiscoverer + + + +def showcase_access_token_retrieval_from_capif(): + service_discoverer = ServiceDiscoverer(config_file=emulator_utils.get_config_file()) + service_discoverer.discover() + + +if __name__ == "__main__": + #The following code assumes that you have already registered the net app to capif. + #showcase_service_discovery() + #showcase_retrieve_endpoint_url_from_tsn() + showcase_access_token_retrieval_from_capif() + print("COMPLETED") diff --git a/Functionalities/invoker_service_get_token.py b/Functionalities/invoker_service_get_token.py new file mode 100755 index 0000000..4fe52a9 --- /dev/null +++ b/Functionalities/invoker_service_get_token.py @@ -0,0 +1,21 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import ServiceDiscoverer + + + + +def showcase_access_token_retrieval_from_capif(): + service_discoverer = ServiceDiscoverer(config_file=emulator_utils.get_config_file()) + service_discoverer.get_tokens() + + +if __name__ == "__main__": + #The following code assumes that you have already registered the net app to capif. + #showcase_service_discovery() + #showcase_retrieve_endpoint_url_from_tsn() + showcase_access_token_retrieval_from_capif() + print("COMPLETED") diff --git a/Functionalities/provider_capif_connector.py b/Functionalities/provider_capif_connector.py new file mode 100755 index 0000000..8fc6bfa --- /dev/null +++ b/Functionalities/provider_capif_connector.py @@ -0,0 +1,20 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def showcase_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.register_and_onboard_provider() + + + print("COMPLETED") + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + showcase_capif_nef_connector() diff --git a/Functionalities/provider_capif_connector_offboarding.py b/Functionalities/provider_capif_connector_offboarding.py new file mode 100755 index 0000000..8df7359 --- /dev/null +++ b/Functionalities/provider_capif_connector_offboarding.py @@ -0,0 +1,20 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def offboard_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.offboard_and_deregister_nef() + print("COMPLETED") + + + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + offboard_capif_nef_connector() diff --git a/Functionalities/provider_get_all_published_api.py b/Functionalities/provider_get_all_published_api.py new file mode 100644 index 0000000..468d87a --- /dev/null +++ b/Functionalities/provider_get_all_published_api.py @@ -0,0 +1,18 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def showcase_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.get_all_services() + print("COMPLETED") + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + showcase_capif_nef_connector() diff --git a/Functionalities/provider_get_published_api.py b/Functionalities/provider_get_published_api.py new file mode 100644 index 0000000..13eb933 --- /dev/null +++ b/Functionalities/provider_get_published_api.py @@ -0,0 +1,18 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def showcase_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.get_service() + print("COMPLETED") + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + showcase_capif_nef_connector() diff --git a/Functionalities/provider_publish_api.py b/Functionalities/provider_publish_api.py new file mode 100644 index 0000000..0a3ced1 --- /dev/null +++ b/Functionalities/provider_publish_api.py @@ -0,0 +1,19 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def showcase_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.publish_services( + service_api_description_json_full_path=emulator_utils.provider_exposer_get_sample_api_description_path()) + print("COMPLETED") + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + showcase_capif_nef_connector() diff --git a/Functionalities/provider_unpublish_api.py b/Functionalities/provider_unpublish_api.py new file mode 100644 index 0000000..1cc8157 --- /dev/null +++ b/Functionalities/provider_unpublish_api.py @@ -0,0 +1,18 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def showcase_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.unpublish_service() + print("COMPLETED") + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + showcase_capif_nef_connector() diff --git a/Functionalities/provider_update_api.py b/Functionalities/provider_update_api.py new file mode 100644 index 0000000..e9cfb27 --- /dev/null +++ b/Functionalities/provider_update_api.py @@ -0,0 +1,19 @@ +import emulator_utils +import sys +sys.path.insert(0, emulator_utils.get_sdk_folder) + +# Ahora importa las clases desde tu archivo sdk.py +from sdk import CAPIFProviderConnector +def showcase_capif_nef_connector(): + """ + + """ + capif_connector = CAPIFProviderConnector(config_file=emulator_utils.get_config_file()) + + capif_connector.update_service( + service_api_description_json_full_path=emulator_utils.provider_exposer_get_sample_api_description_path()) + print("COMPLETED") + +if __name__ == "__main__": + #Let's register a NEF to CAPIF. This should happen exactly once + showcase_capif_nef_connector() diff --git a/Functionalities/register_and_login.py b/Functionalities/register_and_login.py new file mode 100644 index 0000000..30e66fc --- /dev/null +++ b/Functionalities/register_and_login.py @@ -0,0 +1,110 @@ +import json +import logging +import requests +import urllib3 +import emulator_utils +from requests.auth import HTTPBasicAuth +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + + +logging.basicConfig( + level=logging.INFO, # Nivel mÃnimo de severidad a registrar + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # Formato del mensaje de log + handlers=[ + logging.FileHandler("register_logs.log"), # Registra en un archivo + logging.StreamHandler() # También muestra en la consola + ] +) + + +def main(): + + variables=__load_config_file(config_file=emulator_utils.get_register_file()) + log_result = __log_to_capif(variables) + admintoken = log_result["access_token"] + postcreation = __create_user(admintoken,variables) + uuid = postcreation["uuid"] + __write_to_file(uuid,variables) + logger.info(uuid) + +def __log_to_capif(variables): + logger.info("Logging in to CAPIF") + capif_register_url="https://" + variables["register_host"].strip()+ ":" + variables["capif_register_port"] + "/" + try: + url = capif_register_url + "login" + + response = requests.request( + "POST", + url, + headers={"Content-Type": "application/json"}, + auth=HTTPBasicAuth(variables["capif_register_username"], variables["capif_register_password"]), + verify=False, + ) + response.raise_for_status() + response_payload = json.loads(response.text) + logger.info("Logged in to CAPIF successfully") + return response_payload + except Exception as e: + logger.error(f"Error during login to CAPIF: {e}") + raise + + +def __create_user(admin_token,variables): + logger.info("Creating user in CAPIF") + capif_register_url="https://" + variables["register_host"].strip()+ ":" + variables["capif_register_port"] + "/" + try: + url = capif_register_url + "createUser" + payload = { + "username": variables["capif_username"], + "password": variables["capif_password"], + "description": "description", + "email": "csr_email_address@tid.es", + "enterprise": "csr_organization", + "country": "crs_locality", + "purpose": "SDK for SAFE 6G", + } + headers = { + "Authorization": "Bearer {}".format(admin_token), + "Content-Type": "application/json", + } + + response = requests.request( + "POST", url, headers=headers, data=json.dumps(payload), verify=False + ) + response.raise_for_status() + response_payload = json.loads(response.text) + logger.info("User created successfully") + return response_payload + except Exception as e: + logger.error(f"Error during user creation in CAPIF: {e}") + raise + +def __load_config_file(config_file: str): + """Carga el archivo de configuración.""" + try: + with open(config_file, 'r') as file: + return json.load(file) + except FileNotFoundError: + logger.warning(f"Configuration file {config_file} not found. Using defaults or environment variables.") + return {} + +def __write_to_file(uuid, variables): + logger.info("Saving uuid in config.json") + + # Abrimos el archivo y leemos su contenido + with open(variables["config_path"] + "config.json", "r") as infile: + data = json.load(infile) + + # Modificamos el contenido del archivo para incluir el nuevo UUID + data["uuid"] = uuid + + # Escribimos el contenido actualizado de nuevo en el archivo + with open(variables["config_path"] + "config.json", "w") as outfile: + json.dump(data, outfile, indent=4) + + logger.info("Data saved") + +if __name__ == "__main__": + logger = logging.getLogger("CAPIF Register") + logger.info("Initializing CAPIF Register") + main() \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..04c2533 --- /dev/null +++ b/README.md @@ -0,0 +1,237 @@ + + +# SDK-S6G + +This tool is focused on connect to CAPIF in a simpler way. + + + +# Functionalities + +- **Invoker Capif connector**: Simplifies the process of onboarding for Invoker users + +- **Provider Capif connector**: Simplifies the process of onboarding for Provider users,also has the capability to register several APF's and AEF's if its necesary. + +- **Invoker Service Discovery**: Facilitates making a Discovery request to CAPIF, also stores the API services recieved and has an option to filter them. + +- **Invoker Service Get token**: After the Discovery, this functionality simplifies the way of getting created their propperly security context for each of the services and adquiring the access token to use the final API's + +- **Provider Publish Api**: Simplifies the process of publishing an API. Also has the capability to chose which APF and AEF's will be used to publish the API + +- **Provider Unpublish Api**: Simplifies the process of deleting an API. + +- **Provider Update Api**: Simplifies the process of updating an API. Also has the capability to chose which APF and AEF's will be used to update the API + +- **Provider Get Api**: Simplifies the process of recieving the information of One service published previously + +- **Provider Get all Apis**: Simplifies the process of recieving the information of all available services published previously. + +- **Invoker Capif connector offboarding**: Simplifies the process of offboarding for Invoker users + +- **Provider Capif connector offboarding**: Simplifies the process of offboarding for Provider users + + + + +## Other Functionalities + +Apart from the SDK it is available diferent functionalities for development reasons + +- **Register and login**: Facilitates the loggin process for admin users and creates a CAPIF user +- **Deregister and login**: Facilitates the loggin process for admin users and eliminates a CAPIF user + + + + + +# Installation + +To use SDK-S6G we must follow this path for his Installation. + +1 - Create an enviroment with pyenv + + #Comands to install the enviroment + pyenv install 3.12 + pyenv virtualenv 3.12 Sdkenviroment + + #OPTIONAL + #Sometimes Mac shells has a little trouble while finding the shell path, try this command + export PATH="$HOME/.pyenv/bin:$PATH" + eval "$(pyenv init --path)" + eval "$(pyenv init -)" + eval "$(pyenv virtualenv-init -)" +2 - Clone the repository + + git clone -b v1 --single-branch https://github.com/JorgeEcheva26/SDK-S6G.git + + + #Then move to the SDK-S6G folder + + cd /your/path/to/SDK-S6G + +3 - Install the requirements.txt file + + cd Safe-6g.egg-info + + python -m pip install --upgrade pip + + pip install -r requirements.txt + +Congratulations! You ended the installation for SDK-S6G + + + +# How to use SDK-S6G + +1 - First we need to complete the emulator utils file with our absolute paths in order to complete the configuration of the SDK.The register file is not needed for the use of the SDK.The provider_exposer_get_sample_api_description_path is obligatory if we want to use the publish functionalities. + +2 - Then we need to fill out Config files depending on the functionalities we want to use from the SDK + +## Config.json + + "invoker_folder": String | The path (relative or absolute) of the folder you want to store your invoker information + + "provider_folder": String | The path (relative or absolute) of the folder you want to store your invoker information + + "capif_host": String | The domain name of your capif host + + "register_host": String | The domain name of your register host + + "capif_https_port": Integer | The port of your capif host + + "capif_register_port": Integer | The port of your register host + + "capif_callback_url": String | The Url you want to recieve CAPIF notifications(This functionality is not currently available) + + "csr_common_name": String | Information for your invoker certificate + + "csr_organizational_unit": String | Information for your invoker certificate + + "csr_organization": String | Information for your invoker certificate + + "crs_locality": String | Information for your invoker certificate + + "csr_state_or_province_name": String |Information for your invoker certificate + + "csr_country_name": String | Information for your invoker certificate + + "csr_email_address": String | Information for your invoker certificate + + "capif_username": String | CAPIF username + + "capif_password": String | CAPIF password + + "APFs": Integer | Number of APF's you want to onboard as a provider Example:5 + + "AEFs": Integer | Number of AEF's you want to onboard as a provider Example:2 + + "debug_mode": Boolean | If you want to recieve logs from SDK-S6G Example:True/False + +Required fields no matter you onboard as an invoker or provider: + +- Capif_host +- register_host +- capif_https_port +- capif_register_port +- capif_username +- capif_password +- debug_mode + +If you want to use SDK as an Invoker you need to fill out these fields + +- invoker_folder +- capif_callback_url +- csr_information(csr_common_name,csr_country_name...) + +If you want to use SDK as a Provider you need to fill out these fields + +- provider_folder +- APFs +- AEFs + + + +## Publish.json + + "serviceApiId": String | The Api id we want to use Example "02eff6e1b3a8f7c8044a92ee8a30bd" + "publisherAPFid": String | APF id we chose to use Example : "APFa165364a379035d14311deadc04332" + "publisherAEFsids": Array | Array of strings filled out of AEFs ids we want to use Example: ["AEFfa38f0e855bffb420e4994ecbc8fb9","AEFe8bfa711f4f0c95ba0b382508e6382"] + +ServiceApiId is required in: +- Provider Unpublish Api +- Provider Update Api +- Provider Get api + +PublisherAPFid is required in: + +- Provider Publish Api +- Provider Unpublish Api +- Provider Update Api +- Provider Get Api +- Provider Get all Apis + +PublisherAEFsids is required in: + +- Provider Publish Api +- Provider Unpublish Api +- Provider Update Api + +For using the Publish Api function or the Update function you **must** modify the provider_api_description_sample.json with the Publish API that you want to share following the standard schema for [ServiceAPIDescription](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Publish_Service_API.yaml) + +You won't need to fill out the aefIds fields from aefProfiles array because you would already be configurating this fields by completing publisherAEFsids parameter + +If the publisherAEFsids parameter don't match with the aefProfiles you will recieve an error + +### Important information for Provider users + +In the provider_folder, you will find several folders with each capif_username you have onboarded as a provider, for each folder you could find: + +- Capif_provider_details.json : Contains all the APFs and AEFs ids you have already onboarded with this capif_username +- CAPIF_provider_api_description_sample.json : If you already published or updated an API, you will find a copy of your last payload. +- Service_received.json : If you already used the get an api or get all apis functionality, you will find the response to your request. +- Published-Apis.json : Constains the currently published APIs with their ApiId + +## Discover_filter.json +This file follows the parameters schema from the GET petition of [Discover Services API](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Discover_Service_API.yaml) + +To use this feature you must complete the file with the parameters you want to be filtered and then run the Invoker Service Discovery Functionality. + +To run the Invoker Service Discovery Functionality you must have onboarded as an Invoker before. + +### Important information for Invoker users + +In the `invoker_folder`, you will find several folders with each `capif_username` you have onboarded as a provider. For each folder, you could find: + +- `Capif_api_security_context_details.json`: This file contains the information of your invoker. It will contain: + + 1. Your `api_invoker_id`. + 2. If you have already used the Service Discovery Functionality, you will find all the available APIs with their information. + 3. If you have already used the Service Get Token functionality, you will find your access token for using the APIs you have already discovered. + +By default, the Service Get Token will get the access token for using all the APIs that are available. So if you want to filter the APIs and reach only the API you want, you must: + +1. Complete your `Discover_filter.json` file. +2. Use the Service Discovery Functionality. +3. Use the Service Get Token Functionality. + +## Register.json + + + "register_host": String | The domain name of your register host + "capif_register_port": Integer | The port of your register host + "capif_register_username": String | CAPIF admin username + "capif_register_password": String | CAPIF admin password + "capif_username": String | CAPIF user username + "capif_password": String | CAPIF user password + "config_path": String | Absolute path to the Config_files folder + "uuid": String | UUID for Deregistering the user + + +This file is only used for the Functionalities of : +- Register and login +- Deregister and login + +Each field is obligatory to complete except UUID, which is only obligatory in case of Deregistering the user. + +Although this field is not obligatory we recomend to store the UUID parameter recieved by the Register and login functionality in this field. + diff --git a/Safe-6g/sdk.py b/Safe-6g/sdk.py new file mode 100644 index 0000000..7f69835 --- /dev/null +++ b/Safe-6g/sdk.py @@ -0,0 +1,1717 @@ +import os +import logging +import shutil +import subprocess +from requests.auth import HTTPBasicAuth +import urllib3 + +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +# Ahora realiza tu solicitud HTTPS a 'localhost' + +from OpenSSL.SSL import FILETYPE_PEM +from OpenSSL.crypto import ( + dump_certificate_request, + dump_privatekey, + load_publickey, + PKey, + TYPE_RSA, + X509Req, + dump_publickey, +) +import requests +import json +from uuid import uuid4 +import warnings +from requests.exceptions import RequestsDependencyWarning +warnings.filterwarnings("ignore", category=RequestsDependencyWarning) + +# Configuración básica del logger +logging.basicConfig( + level=logging.NOTSET, # Nivel mÃnimo de severidad a registrar + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', # Formato del mensaje de log + handlers=[ + logging.FileHandler("sdk_logs.log"), # Registra en un archivo + logging.StreamHandler() # También muestra en la consola + ] +) + +class CAPIFInvokerConnector: + """ + Τhis class is responsbile for onboarding an Invoker (ex. a Invoker) to CAPIF + """ + def __init__(self, + config_file: str ): + + config_file = os.path.abspath(config_file) + # Cargar configuración desde archivo si es necesario + config = self.__load_config_file(config_file) + + debug_mode = os.getenv('DEBUG_MODE', config.get('debug_mode', 'False')).strip().lower() + if debug_mode=="false": debug_mode=False + + # Inicializar logger + self.logger = logging.getLogger(self.__class__.__name__) + if debug_mode: + self.logger.setLevel(logging.DEBUG) + else: + self.logger.setLevel(logging.WARNING) + + + + + urllib_logger = logging.getLogger("urllib3") + if not debug_mode: + urllib_logger.setLevel(logging.WARNING) + else: + urllib_logger.setLevel(logging.DEBUG) + + self.logger.info("Initializing CAPIFInvokerConnector") + + # Asignar valores desde variables de entorno o desde el archivo de configuración + + invoker_general_folder = os.path.abspath(os.getenv('invoker_folder', config.get('invoker_folder', '')).strip()) + + capif_host = os.getenv('CAPIF_HOST', config.get('capif_host', '')).strip() + register_host = os.getenv('REGISTER_HOST', config.get('register_host', '')).strip() + capif_https_port = str(os.getenv('CAPIF_HTTPS_PORT', config.get('capif_https_port', '')).strip()) + capif_register_port = str(os.getenv('CAPIF_REGISTER_PORT', config.get('capif_register_port', '')).strip()) + capif_invoker_username = os.getenv('CAPIF_USERNAME', config.get('capif_username', '')).strip() + capif_invoker_password = os.getenv('CAPIF_PASSWORD', config.get('capif_password', '')).strip() + capif_callback_url = os.getenv('CAPIF_CALLBACK_URL', config.get('capif_callback_url', '')).strip() + + csr_common_name = os.getenv('CSR_COMMON_NAME', config.get('csr_common_name', '')).strip() + csr_organizational_unit = os.getenv('CSR_ORGANIZATIONAL_UNIT', config.get('csr_organizational_unit', '')).strip() + csr_organization = os.getenv('CSR_ORGANIZATION', config.get('csr_organization', '')).strip() + crs_locality = os.getenv('CRS_LOCALITY', config.get('crs_locality', '')).strip() + csr_state_or_province_name = os.getenv('CSR_STATE_OR_PROVINCE_NAME', config.get('csr_state_or_province_name', '')).strip() + csr_country_name = os.getenv('CSR_COUNTRY_NAME', config.get('csr_country_name', '')).strip() + csr_email_address = os.getenv('CSR_EMAIL_ADDRESS', config.get('csr_email_address', '')).strip() + + self.invoker_folder=os.path.join(invoker_general_folder,capif_invoker_username) + os.makedirs(self.invoker_folder, exist_ok=True) + # Resto del código original para inicializar URLs y otros atributos + + + if len(capif_https_port) == 0 or int(capif_https_port) == 443: + self.capif_https_url = "https://" + capif_host.strip() + "/" + else: + self.capif_https_url = ( + "https://" + capif_host.strip() + ":" + capif_https_port.strip() + "/" + ) + + if len(capif_register_port) == 0: + self.capif_register_url = "https://" + register_host.strip() + ":8084/" + else: + self.capif_register_url = ( + "https://" + register_host.strip() + ":" + capif_register_port.strip() + "/" + ) + + self.capif_callback_url = self.__add_trailing_slash_to_url_if_missing( + capif_callback_url.strip() + ) + + self.capif_invoker_username = capif_invoker_username + self.capif_invoker_password = capif_invoker_password + + self.csr_common_name = "invoker_" + csr_common_name + self.csr_organizational_unit = csr_organizational_unit + self.csr_organization = csr_organization + self.crs_locality = crs_locality + self.csr_state_or_province_name = csr_state_or_province_name + self.csr_country_name = csr_country_name + self.csr_email_address = csr_email_address + self.capif_api_details_filename = "capif_api_security_context_details-"+self.capif_invoker_username+".json" + #self.capif_api_details = self.__load_invoker_api_details() + + self.logger.info("CAPIFInvokerConnector initialized with the config.json parameters") + + def __load_config_file(self, config_file: str): + """Carga el archivo de configuración.""" + try: + with open(config_file, 'r') as file: + return json.load(file) + except FileNotFoundError: + self.logger.warning(f"Configuration file {config_file} not found. Using defaults or environment variables.") + return {} + + def __add_trailing_slash_to_url_if_missing(self, url): + if url[len(url) - 1] != "/": + url = url + "/" + return url + + def register_and_onboard_Invoker(self) -> None: + self.logger.info("Registering and onboarding Invoker") + try: + public_key = self.__create_private_and_public_keys() + capif_postauth_info = self.__save_capif_ca_root_file_and_get_auth_token() + capif_onboarding_url = capif_postauth_info["ccf_onboarding_url"] + capif_discover_url = capif_postauth_info["ccf_discover_url"] + capif_access_token = capif_postauth_info["access_token"] + api_invoker_id = self.__onboard_invoker_to_capif_and_create_the_signed_certificate( + public_key, capif_onboarding_url, capif_access_token + ) + self.__write_to_file( api_invoker_id, capif_discover_url) + self.logger.info("Invoker registered and onboarded successfully") + except Exception as e: + self.logger.error(f"Error during Invoker registration and onboarding: {e}") + raise + + def __load_invoker_api_details(self): + self.logger.info("Loading Invoker API details") + path = os.path.join( + self.invoker_folder, + self.capif_api_details_filename + ) + with open( + path, "r" + ) as openfile: + return json.load(openfile) + + def __offboard_Invoker(self) -> None: + self.logger.info("Offboarding Invoker") + try: + capif_api_details = self.__load_invoker_api_details() + url = ( + self.capif_https_url + + "api-invoker-management/v1/onboardedInvokers/" + + capif_api_details["api_invoker_id"] + ) + + signed_key_crt_path = os.path.join( + self.invoker_folder, + capif_api_details["user_name"] + ".crt" + ) + + private_key_path = os.path.join( + self.invoker_folder, + "private.key" + ) + + path = os.path.join( + self.invoker_folder, + "ca.crt" + ) + response = requests.request( + "DELETE", + url, + cert=(signed_key_crt_path, private_key_path), + verify=path, + ) + response.raise_for_status() + self.logger.info("Invoker offboarded successfully") + except Exception as e: + self.logger.error(f"Error during Invoker offboarding: {e}") + raise + + def offboard_and_deregister_Invoker(self) -> None: + self.logger.info("Offboarding and deregistering Invoker") + try: + self.__offboard_Invoker() + self.__remove_files() + self.logger.info("Invoker offboarded and deregistered successfully") + except Exception as e: + self.logger.error(f"Error during Invoker offboarding and deregistering: {e}") + raise + + def __create_private_and_public_keys(self) -> str: + self.logger.info("Creating private and public keys for the Invoker cert") + try: + private_key_path = os.path.join(self.invoker_folder, "private.key") + + csr_file_path = os.path.join(self.invoker_folder, "cert_req.csr") + + key = PKey() + key.generate_key(TYPE_RSA, 2048) + + req = X509Req() + req.get_subject().CN = self.csr_common_name + req.get_subject().O = self.csr_organization + req.get_subject().OU = self.csr_organizational_unit + req.get_subject().L = self.crs_locality + req.get_subject().ST = self.csr_state_or_province_name + req.get_subject().C = self.csr_country_name + req.get_subject().emailAddress = self.csr_email_address + req.set_pubkey(key) + req.sign(key, "sha256") + + with open(csr_file_path, "wb+") as f: + f.write(dump_certificate_request(FILETYPE_PEM, req)) + public_key = dump_certificate_request(FILETYPE_PEM, req) + with open(private_key_path, "wb+") as f: + f.write(dump_privatekey(FILETYPE_PEM, key)) + + self.logger.info("Keys created successfully") + return public_key + except Exception as e: + self.logger.error(f"Error during key creation: {e}") + raise + + + + def __remove_files(self): + self.logger.info("Removing files generated") + try: + folder_path = self.invoker_folder + + if os.path.exists(folder_path): + # Elimina todo el contenido dentro de la carpeta, incluyendo archivos y subcarpetas + for root, dirs, files in os.walk(folder_path): + for file in files: + os.remove(os.path.join(root, file)) + for dir in dirs: + shutil.rmtree(os.path.join(root, dir)) + os.rmdir(folder_path) + self.logger.info(f"All contents in {folder_path} removed successfully.") + else: + self.logger.warning(f"Folder {folder_path} does not exist.") + except Exception as e: + self.logger.error(f"Error during removing folder contents: {e}") + raise + + + + + def __save_capif_ca_root_file_and_get_auth_token(self): + self.logger.info("Saving CAPIF CA root file and getting auth token with user and password given by the CAPIF administrator") + try: + url = self.capif_register_url + "getauth" + + response = requests.request( + "GET", + url, + headers={"Content-Type": "application/json"}, + auth=HTTPBasicAuth(self.capif_invoker_username, self.capif_invoker_password), + verify=False, + ) + + response.raise_for_status() + response_payload = json.loads(response.text) + ca_root_file_path = os.path.join(self.invoker_folder, "ca.crt") + ca_root_file = open(ca_root_file_path, "wb+") + ca_root_file.write(bytes(response_payload["ca_root"], "utf-8")) + self.logger.info("CAPIF CA root file saved and auth token obtained successfully") + return response_payload + except Exception as e: + self.logger.error(f"Error during saving CAPIF CA root file and getting auth token: {e}") + raise + + def __onboard_invoker_to_capif_and_create_the_signed_certificate( + self, public_key, capif_onboarding_url, capif_access_token + ): + self.logger.info("Onboarding Invoker to CAPIF and creating signed certificate by giving our public key to CAPIF") + try: + url = self.capif_https_url + capif_onboarding_url + payload_dict = { + "notificationDestination": self.capif_callback_url, + "supportedFeatures": "fffffff", + "apiInvokerInformation": self.csr_common_name, + "websockNotifConfig": { + "requestWebsocketUri": True, + "websocketUri": "websocketUri", + }, + "onboardingInformation": {"apiInvokerPublicKey": str(public_key, "utf-8")}, + "requestTestNotification": True, + } + payload = json.dumps(payload_dict) + headers = { + "Authorization": "Bearer {}".format(capif_access_token), + "Content-Type": "application/json", + } + pathca = os.path.join(self.invoker_folder,"ca.crt") + response = requests.request( + "POST", + url, + headers=headers, + data=payload, + verify=pathca, + ) + response.raise_for_status() + response_payload = json.loads(response.text) + name=self.capif_invoker_username+".crt" + pathcsr = os.path.join(self.invoker_folder, name) + certification_file = open( + pathcsr, "wb" + ) + certification_file.write( + bytes( + response_payload["onboardingInformation"]["apiInvokerCertificate"], + "utf-8", + ) + ) + certification_file.close() + self.logger.info("Invoker onboarded and signed certificate created successfully") + return response_payload["apiInvokerId"] + except Exception as e: + self.logger.error(f"Error during onboarding Invoker to CAPIF: {e}") + raise + + def __write_to_file(self, api_invoker_id, discover_services_url): + self.logger.info("Writing API invoker ID and service discovery URL to file") + path = os.path.join(self.invoker_folder, self.capif_api_details_filename) + try: + with open( + path, "w" + ) as outfile: + json.dump( + { + "user_name": self.capif_invoker_username, + "api_invoker_id": api_invoker_id, + "discover_services_url": discover_services_url, + }, + outfile, + ) + self.logger.info("API invoker ID and service discovery URL written to file successfully") + except Exception as e: + self.logger.error(f"Error during writing to file: {e}") + raise + +class CAPIFProviderConnector: + """ + Τhis class is responsible for onboarding an exposer (eg. NEF emulator) to CAPIF + """ + def __init__(self, config_file: str): + """ + Inicializa el conector CAPIFProvider con los parámetros especificados en el archivo de configuración. + """ + # Cargar configuración desde archivo si es necesario + config_file = os.path.abspath(config_file) + self.config_path = os.path.dirname(config_file)+"/" + config = self.__load_config_file(config_file) + debug_mode = os.getenv('DEBUG_MODE', config.get('debug_mode', 'False')).strip().lower() + if debug_mode=="false": debug_mode=False + # Inicializar logger + self.logger = logging.getLogger(self.__class__.__name__) + if debug_mode: + self.logger.setLevel(logging.DEBUG) + else: + self.logger.setLevel(logging.WARNING) + + + + + urllib_logger = logging.getLogger("urllib3") + if not debug_mode: + urllib_logger.setLevel(logging.WARNING) + else: + urllib_logger.setLevel(logging.DEBUG) + + + + + try: + + + provider_general_folder = os.path.abspath(os.getenv('PROVIDER_FOLDER', config.get('provider_folder', '')).strip()) + capif_host = os.getenv('CAPIF_HOST', config.get('capif_host', '')).strip() + capif_register_host = os.getenv('REGISTER_HOST', config.get('register_host', '')).strip() + capif_https_port = str(os.getenv('CAPIF_HTTPS_PORT', config.get('capif_https_port', '')).strip()) + capif_register_port = str(os.getenv('CAPIF_REGISTER_PORT', config.get('capif_register_port', '')).strip()) + capif_provider_username = os.getenv('CAPIF_USERNAME', config.get('capif_username', '')).strip() + capif_provider_password = os.getenv('CAPIF_PASSWORD', config.get('capif_password', '')).strip() + + csr_common_name = os.getenv('CSR_COMMON_NAME', config.get('csr_common_name', '')).strip() + csr_organizational_unit = os.getenv('CSR_ORGANIZATIONAL_UNIT', config.get('csr_organizational_unit', '')).strip() + csr_organization = os.getenv('CSR_ORGANIZATION', config.get('csr_organization', '')).strip() + crs_locality = os.getenv('CRS_LOCALITY', config.get('crs_locality', '')).strip() + csr_state_or_province_name = os.getenv('CSR_STATE_OR_PROVINCE_NAME', config.get('csr_state_or_province_name', '')).strip() + csr_country_name = os.getenv('CSR_COUNTRY_NAME', config.get('csr_country_name', '')).strip() + csr_email_address = os.getenv('CSR_EMAIL_ADDRESS', config.get('csr_email_address', '')).strip() + APFs = os.getenv('APFS', config.get('APFs', '')).strip() + AEFs = os.getenv('AEFS', config.get('AEFs', '')).strip() + + + if not capif_host: + self.logger.warning("CAPIF_HOST is not provided; defaulting to an empty string") + if not capif_provider_username: + self.logger.error("CAPIF_PROVIDER_USERNAME is required but not provided") + raise ValueError("CAPIF_PROVIDER_USERNAME is required") + + self.provider_folder = os.path.join(provider_general_folder, capif_provider_username) + os.makedirs(self.provider_folder, exist_ok=True) + + self.capif_host = capif_host.strip() + self.capif_provider_username = capif_provider_username + self.capif_provider_password = capif_provider_password + self.capif_register_host = capif_register_host + self.capif_register_port = capif_register_port + self.csr_common_name = csr_common_name + self.csr_organizational_unit = csr_organizational_unit + self.csr_organization = csr_organization + self.crs_locality = crs_locality + self.csr_state_or_province_name = csr_state_or_province_name + self.csr_country_name = csr_country_name + self.csr_email_address = csr_email_address + self.AEFs = int(AEFs) + self.APFs = int(APFs) + + + self.capif_https_port = str(capif_https_port) + + + if len(self.capif_https_port) == 0 or int(self.capif_https_port) == 443: + self.capif_https_url = f"https://{capif_host.strip()}/" + else: + self.capif_https_url = f"https://{capif_host.strip()}:{self.capif_https_port.strip()}/" + + if len(capif_register_port) == 0: + self.capif_register_url = f"https://{capif_register_host.strip()}:8084/" + else: + self.capif_register_url = f"https://{capif_register_host.strip()}:{capif_register_port.strip()}/" + + self.logger.info("CAPIFProviderConnector initialized with the config.json parameters") + + except Exception as e: + self.logger.error(f"Error during initialization: {e}") + raise + + + + def __store_certificate(self) -> None: + # Retrieves and stores the cert_server.pem from CAPIF. + self.logger.info("Retrieving capif_cert_server.pem, this may take a few minutes.") + + cmd = f"openssl s_client -connect {self.capif_host}:{self.capif_https_port} | openssl x509 -text > {self.provider_folder}/capif_cert_server.pem" + + try: + # Redirige la salida estándar y de errores a os.devnull para ocultar los logs + with open(os.devnull, 'w') as devnull: + subprocess.run(cmd, shell=True, check=True, stdout=devnull, stderr=devnull) + + cert_file = os.path.join(self.provider_folder, "capif_cert_server.pem") + if os.path.exists(cert_file) and os.path.getsize(cert_file) > 0: + self.logger.info("cert_server.pem successfully generated!") + else: + self.logger.error("Failed to generate cert_server.pem.") + raise FileNotFoundError(f"Certificate file not found at {cert_file}") + except subprocess.CalledProcessError as e: + self.logger.error(f"Command failed: {e}") + raise + except Exception as e: + self.logger.error(f"Error occurred: {e}") + raise + + + def __load_config_file(self, config_file: str): + """Carga el archivo de configuración.""" + try: + with open(config_file, 'r') as file: + return json.load(file) + except FileNotFoundError: + self.logger.warning(f"Configuration file {config_file} not found. Using defaults or environment variables.") + return {} + + def __create_private_and_public_keys(self, api_prov_func_role) -> bytes: + """ + Creates private and public keys in the certificates folder. + :return: The contents of the public key + """ + private_key_path = os.path.join(self.provider_folder, f"{api_prov_func_role}_private_key.key") + csr_file_path = os.path.join(self.provider_folder, f"{api_prov_func_role}_public.csr") + + # Create key pair + key = PKey() + key.generate_key(TYPE_RSA, 2048) + + # Create CSR + req = X509Req() + subject = req.get_subject() + subject.CN = api_prov_func_role.lower() + subject.O = self.csr_organization + subject.OU = self.csr_organizational_unit + subject.L = self.crs_locality + subject.ST = self.csr_state_or_province_name + subject.C = self.csr_country_name + subject.emailAddress = self.csr_email_address + + req.set_pubkey(key) + req.sign(key, "sha256") + + # Write CSR and private key to files + with open(csr_file_path, "wb") as csr_file: + public_key = dump_certificate_request(FILETYPE_PEM, req) + csr_file.write(public_key) + + with open(private_key_path, "wb") as private_key_file: + private_key_file.write(dump_privatekey(FILETYPE_PEM, key)) + + return public_key + + def __onboard_exposer_to_capif(self, access_token, capif_onboarding_url): + self.logger.info("Onboarding Provider to CAPIF and waiting signed certificate by giving our public keys to CAPIF") + + url = f"{self.capif_https_url}{capif_onboarding_url}" + headers = { + "Authorization": f"Bearer {access_token}", + "Content-Type": "application/json", + } + + # Crear la lista de roles sin indexar + roles = ["AMF"] + for n in range(1, self.AEFs + 1): + roles.append("AEF") + + for n in range(1, self.APFs + 1): + roles.append("APF") + + # Construir el payload con los roles sin indexar + payload = { + "apiProvFuncs": [ + {"regInfo": {"apiProvPubKey": ""}, "apiProvFuncRole": role, "apiProvFuncInfo": f"{role.lower()}"} + for role in roles + ], + "apiProvDomInfo": "This is provider", + "suppFeat": "fff", + "failReason": "string", + "regSec": access_token, + } + + # Generar los roles indexados para la creación de certificados + indexedroles = ["AMF"] + for n in range(1, self.AEFs + 1): + indexedroles.append(f"AEF-{n}") + + for n in range(1, self.APFs + 1): + indexedroles.append(f"APF-{n}") + + # Guardar las claves públicas y generar los certificados con roles indexados + for i, api_func in enumerate(payload["apiProvFuncs"]): + # Generar las claves públicas con el rol indexado, pero no actualizar el payload con el rol indexado + public_key = self.__create_private_and_public_keys(indexedroles[i]) + + # Asignar la clave pública al payload + api_func["regInfo"]["apiProvPubKey"] = public_key.decode("utf-8") + + + try: + response = requests.post( + url, + headers=headers, + data=json.dumps(payload), + verify=os.path.join(self.provider_folder, "ca.crt"), + ) + response.raise_for_status() + self.logger.info("Provider onboarded and signed certificate obtained successfully") + return response.json() + except requests.exceptions.RequestException as e: + self.logger.error(f"Onboarding failed: {e}") + raise + + + def __write_to_file(self, onboarding_response, capif_registration_id, publish_url): + self.logger.info("Saving the most relevant onboarding data") + + # Generar los roles indexados para la correspondencia + indexedroles = ["AMF"] + for n in range(1, self.AEFs + 1): + indexedroles.append(f"AEF-{n}") + + for n in range(1, self.APFs + 1): + indexedroles.append(f"APF-{n}") + + # Guardar los certificados con los nombres indexados + for i, func_profile in enumerate(onboarding_response["apiProvFuncs"]): + role = indexedroles[i].lower() + cert_path = os.path.join(self.provider_folder, f"{role}.crt") + with open(cert_path, "wb") as cert_file: + cert_file.write(func_profile["regInfo"]["apiProvCert"].encode("utf-8")) + + # Guardar los detalles del proveedor + provider_details_path = os.path.join(self.provider_folder, "capif_provider_details.json") + with open(provider_details_path, "w") as outfile: + data = { + "capif_registration_id": capif_registration_id, + "publish_url": publish_url, + **{f"{indexedroles[i]}_api_prov_func_id": api_prov_func["apiProvFuncId"] + for i, api_prov_func in enumerate(onboarding_response["apiProvFuncs"])} + } + json.dump(data, outfile, indent=4) + + self.logger.info("Data saved") + + + + + def __save_capif_ca_root_file_and_get_auth_token(self): + url = f"{self.capif_register_url}getauth" + self.logger.info("Saving CAPIF CA root file and getting auth token with user and password given by the CAPIF administrator") + + try: + response = requests.get( + url, + headers={"Content-Type": "application/json"}, + auth=HTTPBasicAuth(self.capif_provider_username, self.capif_provider_password), + verify=False + ) + response.raise_for_status() + + self.logger.info("Authorization acquired successfully") + + response_payload = response.json() + ca_root_file_path = os.path.join(self.provider_folder, "ca.crt") + + with open(ca_root_file_path, "wb") as ca_root_file: + ca_root_file.write(response_payload["ca_root"].encode("utf-8")) + + self.logger.info("CAPIF CA root file saved and auth token obtained successfully") + return response_payload + + except requests.exceptions.RequestException as e: + self.logger.error(f"Error acquiring authorization: {e}") + raise + + + def register_and_onboard_provider(self) -> None: + """ + Retrieves and stores the certificate from CAPIF, acquires authorization, and registers the provider. + """ + # Store the certificate + self.__store_certificate() + + # Retrieve CA root file and get authorization token + capif_postauth_info = self.__save_capif_ca_root_file_and_get_auth_token() + + # Extract necessary information + capif_onboarding_url = capif_postauth_info["ccf_api_onboarding_url"] + access_token = capif_postauth_info["access_token"] + ccf_publish_url = capif_postauth_info["ccf_publish_url"] + + # Onboard provider to CAPIF + onboarding_response = self.__onboard_exposer_to_capif( + access_token, capif_onboarding_url + ) + + # Save onboarding details to file + capif_registration_id = onboarding_response["apiProvDomId"] + self.__write_to_file( + onboarding_response, capif_registration_id, ccf_publish_url + ) + + + + def publish_services(self, service_api_description_json_full_path: str) -> dict: + """ + Publishes services to CAPIF and returns the published services dictionary. + + :param service_api_description_json_full_path: The full path of the service_api_description.json containing + the endpoints to be published. + :return: The published services dictionary that was saved in CAPIF. + """ + self.logger.info("Starting the service publication process") + + # Load provider details + provider_details_path = os.path.join(self.provider_folder, "capif_provider_details.json") + self.logger.info(f"Loading provider details from {provider_details_path}") + + provider_details=self.__load_provider_api_details() + publish_url=provider_details["publish_url"] + + json_path = self.config_path + "publish.json" + + + # Leer el archivo publish.json + with open(json_path, 'r') as f: + chosenAPFsandAEFs = json.load(f) + + APF_api_prov_func_id = chosenAPFsandAEFs["publisherAPFid"] + AEFs_list = chosenAPFsandAEFs["publisherAEFsids"] + + apf_number = None + for key, value in provider_details.items(): + if value == APF_api_prov_func_id and key.startswith("APF-"): + apf_inter = key.split("-")[1] + apf_number= apf_inter.split("_")[0] # Obtener el número del APF + break + + if apf_number is None: + self.logger.error(f"No matching APF found for publisherAPFid: {APF_api_prov_func_id}") + raise ValueError("Invalid publisherAPFid") + + # Leer y modificar la descripción de la API de servicio + self.logger.info(f"Reading and modifying service API description from {service_api_description_json_full_path}") + + try: + with open(service_api_description_json_full_path, "r") as service_file: + data = json.load(service_file) + + # Verificamos que el número de AEFs coincide con el número de perfiles + if len(AEFs_list) != len(data.get("aefProfiles", [])): + self.logger.error("The number of AEFs in publisherAEFsids does not match the number of profiles in aefProfiles") + raise ValueError("Mismatch between number of AEFs and profiles") + + # Asignamos los AEFs correspondientes + for profile, aef_id in zip(data.get("aefProfiles", []), AEFs_list): + profile["aefId"] = aef_id + + self.logger.info("Service API description modified successfully") + + # Guardamos los cambios en el archivo + with open(service_api_description_json_full_path, "w") as service_file: + json.dump(data, service_file, indent=4) + + except FileNotFoundError: + self.logger.error(f"Service API description file not found: {service_api_description_json_full_path}") + raise + except json.JSONDecodeError as e: + self.logger.error(f"Error decoding JSON from file {service_api_description_json_full_path}: {e}") + raise + except ValueError as e: + self.logger.error(f"Error with the input data: {e}") + raise + + # Publish services + url = f"{self.capif_https_url}{publish_url.replace('<apfId>', APF_api_prov_func_id)}" + cert = ( + os.path.join(self.provider_folder, f"apf-{apf_number}.crt"), + os.path.join(self.provider_folder, f"apf-{apf_number}_private_key.key"), + ) + + self.logger.info(f"Publishing services to URL: {url}") + + try: + response = requests.post( + url, + headers={"Content-Type": "application/json"}, + data=json.dumps(data), + cert=cert, + verify=os.path.join(self.provider_folder, "ca.crt"), + ) + response.raise_for_status() + self.logger.info("Services published successfully") + + # Save response to file + capif_response_text = response.text + + capif_response_json=json.loads(capif_response_text) + + file_name = capif_response_json.get("apiName", "default_name") # Default name if apiName is missing + id=capif_response_json.get("apiId","default_id") + output_path = os.path.join(self.provider_folder, f"CAPIF-{file_name}-{id}-api.json") + + + + with open(output_path, "w") as outfile: + outfile.write(capif_response_text) + self.logger.info(f"CAPIF response saved to {output_path}") + output_path = os.path.join(self.provider_folder, "Published-Apis.json") + + # Leer el archivo existente de APIs publicados + published_apis = {} + if os.path.exists(output_path): + with open(output_path, "r") as outfile: + published_apis = json.load(outfile) + + # Agregar el nuevo API publicado + published_apis[file_name] = id + + # Escribir el archivo actualizado de APIs publicados + with open(output_path, "w") as outfile: + json.dump(published_apis, outfile, indent=4) + self.logger.info(f"API '{file_name}' with ID '{id}' added to Published Apis.") + return json.loads(capif_response_text) + + except requests.RequestException as e: + self.logger.error(f"Request to CAPIF failed: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error during service publication: {e}") + raise + + + def unpublish_service(self) -> dict: + """ + Publishes services to CAPIF and returns the published services dictionary. + + :param service_api_description_json_full_path: The full path of the service_api_description.json containing + the endpoints to be published. + :return: The published services dictionary that was saved in CAPIF. + """ + self.logger.info("Starting the service unpublication process") + provider_details_path = os.path.join(self.provider_folder, "capif_provider_details.json") + self.logger.info(f"Loading provider details from {provider_details_path}") + + provider_details=self.__load_provider_api_details() + publish_url=provider_details["publish_url"] + + # Load provider details + json_path = self.config_path +"publish.json" + with open(json_path, 'r') as f: + publish = json.load(f) + api_id="/" + publish["serviceApiId"] + APF_api_prov_func_id=publish["publisherAPFid"] + AEFs_list = publish["publisherAEFsids"] + apf_number = None + for key, value in provider_details.items(): + if value == APF_api_prov_func_id and key.startswith("APF-"): + apf_inter = key.split("-")[1] + apf_number= apf_inter.split("_")[0] # Obtener el número del APF + break + + if apf_number is None: + self.logger.error(f"No matching APF found for publisherAPFid: {APF_api_prov_func_id}") + raise ValueError("Invalid publisherAPFid") + + + self.logger.info(f"Loading provider details from {provider_details_path}") + + url = f"{self.capif_https_url}{publish_url.replace('<apfId>', APF_api_prov_func_id)}{api_id}" + + cert = ( + os.path.join(self.provider_folder, f"apf-{apf_number}.crt"), + os.path.join(self.provider_folder, f"apf-{apf_number}_private_key.key"), + ) + + + self.logger.info(f"Unpublishing service to URL: {url}") + + try: + response = requests.delete( + url, + headers={"Content-Type": "application/json"}, + cert=cert, + verify=os.path.join(self.provider_folder, "ca.crt"), + ) + + response.raise_for_status() + + directory = self.provider_folder + + # Iterar sobre todos los archivos en el directorio + for filename in os.listdir(directory): + path = os.path.join(directory, filename) + + # Verificar si el archivo empieza con 'CAPIF-' + + if filename.startswith("CAPIF-") and publish["serviceApiId"] in filename: + + os.remove(path) # Salir del bucle si el archivo es eliminado + break + + output_path = os.path.join(self.provider_folder, "Published-Apis.json") + + # Leer el archivo existente de APIs publicados + published_apis = {} + if os.path.exists(output_path): + with open(output_path, "r") as outfile: + published_apis = json.load(outfile) + + # ID del API que deseas eliminar + api_id_to_delete = publish["serviceApiId"] # Reemplaza con el ID especÃfico + + # Buscar y eliminar el API por su ID + api_name_to_delete = None + for name, id in published_apis.items(): + if id == api_id_to_delete: + api_name_to_delete = name + break + + if api_name_to_delete: + del published_apis[api_name_to_delete] + self.logger.info(f"API with ID '{api_id_to_delete}' removed from Published Apis.") + else: + self.logger.warning(f"API with ID '{api_id_to_delete}' not found in Published Apis.") + + # Escribir el archivo actualizado de APIs publicados + with open(output_path, "w") as outfile: + json.dump(published_apis, outfile, indent=4) + + self.logger.info("Services unpublished successfully") + + + except requests.RequestException as e: + self.logger.error(f"Request to CAPIF failed: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error during service unpublication: {e}") + raise + + def get_service(self) -> dict: + """ + Publishes services to CAPIF and returns the published services dictionary. + + :param service_api_description_json_full_path: The full path of the service_api_description.json containing + the endpoints to be published. + :return: The published services dictionary that was saved in CAPIF. + """ + self.logger.info("Starting the service unpublication process") + + provider_details_path = os.path.join(self.provider_folder, "capif_provider_details.json") + self.logger.info(f"Loading provider details from {provider_details_path}") + + provider_details=self.__load_provider_api_details() + publish_url=provider_details["publish_url"] + + json_path = self.config_path + "publish.json" + + + # Leer el archivo publish.json + with open(json_path, 'r') as f: + chosenAPFsandAEFs = json.load(f) + + APF_api_prov_func_id = chosenAPFsandAEFs["publisherAPFid"] + + api_id="/" +chosenAPFsandAEFs["serviceApiId"] + + apf_number = None + for key, value in provider_details.items(): + if value == APF_api_prov_func_id and key.startswith("APF-"): + apf_inter = key.split("-")[1] + apf_number= apf_inter.split("_")[0] # Obtener el número del APF + break + + if apf_number is None: + self.logger.error(f"No matching APF found for publisherAPFid: {APF_api_prov_func_id}") + raise ValueError("Invalid publisherAPFid") + + url = f"{self.capif_https_url}{publish_url.replace('<apfId>', APF_api_prov_func_id)}{api_id}" + + cert = ( + os.path.join(self.provider_folder, f"apf-{apf_number}.crt"), + os.path.join(self.provider_folder, f"apf-{apf_number}_private_key.key"), + ) + + + self.logger.info(f"Getting service to URL: {url}") + + try: + response = requests.get( + url, + headers={"Content-Type": "application/json"}, + cert=cert, + verify=os.path.join(self.provider_folder, "ca.crt"), + ) + + response.raise_for_status() + + self.logger.info("Service received successfully") + path=os.path.join(self.provider_folder,"service_received.json") + with open(path, 'w') as f: + json_data = json.loads(response.text) + json.dump(json_data,f,indent=4) + self.logger.info(f"Service saved in {path}") + + + + + except requests.RequestException as e: + self.logger.error(f"Request to CAPIF failed: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error during service getter: {e}") + raise + + def get_all_services(self) -> dict: + """ + Publishes services to CAPIF and returns the published services dictionary. + + :param service_api_description_json_full_path: The full path of the service_api_description.json containing + the endpoints to be published. + :return: The published services dictionary that was saved in CAPIF. + """ + self.logger.info("Starting the service publication process") + + # Load provider details + provider_details_path = os.path.join(self.provider_folder, "capif_provider_details.json") + self.logger.info(f"Loading provider details from {provider_details_path}") + + provider_details=self.__load_provider_api_details() + publish_url=provider_details["publish_url"] + + json_path = self.config_path + "publish.json" + + + # Leer el archivo publish.json + with open(json_path, 'r') as f: + chosenAPFsandAEFs = json.load(f) + + APF_api_prov_func_id = chosenAPFsandAEFs["publisherAPFid"] + + + apf_number = None + for key, value in provider_details.items(): + if value == APF_api_prov_func_id and key.startswith("APF-"): + apf_inter = key.split("-")[1] + apf_number= apf_inter.split("_")[0] # Obtener el número del APF + break + + if apf_number is None: + self.logger.error(f"No matching APF found for publisherAPFid: {APF_api_prov_func_id}") + raise ValueError("Invalid publisherAPFid") + + # Leer y modificar la descripción de la API de servicio + + + # Publish services + url = f"{self.capif_https_url}{publish_url.replace('<apfId>', APF_api_prov_func_id)}" + cert = ( + os.path.join(self.provider_folder, f"apf-{apf_number}.crt"), + os.path.join(self.provider_folder, f"apf-{apf_number}_private_key.key"), + ) + + + self.logger.info(f"Getting services to URL: {url}") + + try: + response = requests.get( + url, + headers={"Content-Type": "application/json"}, + cert=cert, + verify=os.path.join(self.provider_folder, "ca.crt"), + ) + response.raise_for_status() + self.logger.info("Services received successfully") + + path=os.path.join(self.provider_folder,"service_received.json") + with open(path, 'w') as f: + json_data = json.loads(response.text) + json.dump(json_data,f,indent=4) + self.logger.info(f"Services saved in {path}") + + # Save response to file + + + + + except requests.RequestException as e: + self.logger.error(f"Request to CAPIF failed: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error during services reception: {e}") + raise + + def update_service(self, service_api_description_json_full_path: str) -> dict: + """ + Publishes services to CAPIF and returns the published services dictionary. + + :param service_api_description_json_full_path: The full path of the service_api_description.json containing + the endpoints to be published. + :return: The published services dictionary that was saved in CAPIF. + """ + self.logger.info("Starting the service publication process") + + # Load provider details + # Load provider details + provider_details_path = os.path.join(self.provider_folder, "capif_provider_details.json") + self.logger.info(f"Loading provider details from {provider_details_path}") + + provider_details=self.__load_provider_api_details() + publish_url=provider_details["publish_url"] + + json_path = self.config_path + "publish.json" + + + # Leer el archivo publish.json + with open(json_path, 'r') as f: + chosenAPFsandAEFs = json.load(f) + + APF_api_prov_func_id = chosenAPFsandAEFs["publisherAPFid"] + AEFs_list = chosenAPFsandAEFs["publisherAEFsids"] + + apf_number = None + for key, value in provider_details.items(): + if value == APF_api_prov_func_id and key.startswith("APF-"): + apf_inter = key.split("-")[1] + apf_number= apf_inter.split("_")[0] # Obtener el número del APF + break + + if apf_number is None: + self.logger.error(f"No matching APF found for publisherAPFid: {APF_api_prov_func_id}") + raise ValueError("Invalid publisherAPFid") + + # Leer y modificar la descripción de la API de servicio + self.logger.info(f"Reading and modifying service API description from {service_api_description_json_full_path}") + + try: + with open(service_api_description_json_full_path, "r") as service_file: + data = json.load(service_file) + + # Verificamos que el número de AEFs coincide con el número de perfiles + if len(AEFs_list) != len(data.get("aefProfiles", [])): + self.logger.error("The number of AEFs in publisherAEFsids does not match the number of profiles in aefProfiles") + raise ValueError("Mismatch between number of AEFs and profiles") + + # Asignamos los AEFs correspondientes + for profile, aef_id in zip(data.get("aefProfiles", []), AEFs_list): + profile["aefId"] = aef_id + + self.logger.info("Service API description modified successfully") + + # Guardamos los cambios en el archivo + with open(service_api_description_json_full_path, "w") as service_file: + json.dump(data, service_file, indent=4) + + except FileNotFoundError: + self.logger.error(f"Service API description file not found: {service_api_description_json_full_path}") + raise + except json.JSONDecodeError as e: + self.logger.error(f"Error decoding JSON from file {service_api_description_json_full_path}: {e}") + raise + except ValueError as e: + self.logger.error(f"Error with the input data: {e}") + raise + api_id="/" +chosenAPFsandAEFs["serviceApiId"] + # Publish services + url = f"{self.capif_https_url}{publish_url.replace('<apfId>', APF_api_prov_func_id)}{api_id}" + cert = ( + os.path.join(self.provider_folder, f"apf-{apf_number}.crt"), + os.path.join(self.provider_folder, f"apf-{apf_number}_private_key.key"), + ) + + + self.logger.info(f"Publishing services to URL: {url}") + + try: + response = requests.put( + url, + headers={"Content-Type": "application/json"}, + data=json.dumps(data), + cert=cert, + verify=os.path.join(self.provider_folder, "ca.crt"), + ) + response.raise_for_status() + self.logger.info("Services updated successfully") + + # Save response to file + capif_response_text = response.text + + capif_response_json=json.loads(capif_response_text) + + file_name = capif_response_json.get("apiName", "default_name") # Default name if apiName is missing + id=capif_response_json.get("apiId","default_id") + output_path = os.path.join(self.provider_folder, f"CAPIF-{file_name}-{id}-api.json") + + + + with open(output_path, "w") as outfile: + outfile.write(capif_response_text) + self.logger.info(f"CAPIF response saved to {output_path}") + output_path = os.path.join(self.provider_folder, "Published-Apis.json") + + # Leer el archivo existente de APIs publicados + published_apis = {} + if os.path.exists(output_path): + with open(output_path, "r") as outfile: + published_apis = json.load(outfile) + + # Agregar el nuevo API publicado + published_apis[file_name] = id + + # Escribir el archivo actualizado de APIs publicados + with open(output_path, "w") as outfile: + json.dump(published_apis, outfile, indent=4) + self.logger.info(f"API '{file_name}' with ID '{id}' added to Published Apis.") + return json.loads(capif_response_text) + except requests.RequestException as e: + self.logger.error(f"Request to CAPIF failed: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error during service publication: {e}") + raise + + def offboard_and_deregister_nef(self) -> None: + """ + Offboards and deregisters the NEF (Network Exposure Function). + """ + try: + self.offboard_nef() + self.__remove_files() + self.logger.info("Provider offboarded and deregistered successfully.") + except Exception as e: + self.logger.error(f"Failed to offboard and deregister Provider: {e}") + raise + + def offboard_nef(self) -> None: + """ + Offboards the NEF (Network Exposure Function) from CAPIF. + """ + try: + self.logger.info("Offboarding the provider") + + # Load CAPIF API details + capif_api_details = self.__load_provider_api_details() + url = f"{self.capif_https_url}api-provider-management/v1/registrations/{capif_api_details['capif_registration_id']}" + + # Define certificate paths + cert_paths = ( + os.path.join(self.provider_folder, "amf.crt"), + os.path.join(self.provider_folder, "AMF_private_key.key") + ) + + # Send DELETE request to offboard the provider + response = requests.delete( + url, + cert=cert_paths, + verify=os.path.join(self.provider_folder, "ca.crt") + ) + + response.raise_for_status() + self.logger.info("Offboarding performed successfully") + + except requests.exceptions.RequestException as e: + self.logger.error(f"Error offboarding NEF: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error: {e}") + raise + + def __remove_files(self): + self.logger.info("Removing files generated") + try: + folder_path = self.provider_folder + + if os.path.exists(folder_path): + # Elimina todo el contenido dentro de la carpeta, incluyendo archivos y subcarpetas + for root, dirs, files in os.walk(folder_path): + for file in files: + os.remove(os.path.join(root, file)) + for dir in dirs: + shutil.rmtree(os.path.join(root, dir)) + os.rmdir(folder_path) + self.logger.info(f"All contents in {folder_path} removed successfully.") + else: + self.logger.warning(f"Folder {folder_path} does not exist.") + except Exception as e: + self.logger.error(f"Error during removing folder contents: {e}") + raise + + def __load_provider_api_details(self) -> dict: + """ + Loads NEF API details from the CAPIF provider details JSON file. + + :return: A dictionary containing NEF API details. + :raises FileNotFoundError: If the CAPIF provider details file is not found. + :raises json.JSONDecodeError: If there is an error decoding the JSON file. + """ + file_path = os.path.join(self.provider_folder, "capif_provider_details.json") + + try: + with open(file_path, "r") as file: + return json.load(file) + except FileNotFoundError: + self.logger.error(f"File not found: {file_path}") + raise + except json.JSONDecodeError as e: + self.logger.error(f"Error decoding JSON from file {file_path}: {e}") + raise + except Exception as e: + self.logger.error(f"Unexpected error while loading NEF API details: {e}") + raise + + + + +class ServiceDiscoverer: + class ServiceDiscovererException(Exception): + pass + + def __init__( + self, + config_file + ): + # Cargar configuración desde archivo si es necesario + config_file = os.path.abspath(config_file) + config = self.__load_config_file(config_file) + debug_mode = os.getenv('DEBUG_MODE', config.get('debug_mode', 'False')).strip().lower() + if debug_mode=="false": debug_mode=False + + # Inicializar logger + self.logger = logging.getLogger(self.__class__.__name__) + if debug_mode: + self.logger.setLevel(logging.DEBUG) + else: + self.logger.setLevel(logging.WARNING) + + + + + urllib_logger = logging.getLogger("urllib3") + if not debug_mode: + urllib_logger.setLevel(logging.WARNING) + else: + urllib_logger.setLevel(logging.DEBUG) + + self.config_path = os.path.dirname(config_file)+"/" + capif_host = os.getenv('CAPIF_HOST', config.get('capif_host', '')).strip() + capif_https_port = str(os.getenv('CAPIF_HTTPS_PORT', config.get('capif_https_port', '')).strip()) + invoker_general_folder = os.path.abspath(os.getenv('invoker_folder', config.get('invoker_folder', '')).strip()) + + capif_invoker_username = os.getenv('CAPIF_USERNAME', config.get('capif_username', '')).strip() + + + self.capif_invoker_username=capif_invoker_username + self.capif_host = capif_host + self.capif_https_port = capif_https_port + self.invoker_folder = os.path.join( + invoker_general_folder, capif_invoker_username + ) + os.makedirs(self.invoker_folder, exist_ok=True) + self.capif_api_details = self.__load_provider_api_details() + + self.signed_key_crt_path = os.path.join( + self.invoker_folder + ,self.capif_api_details["user_name"] + ".crt" + ) + self.private_key_path = os.path.join(self.invoker_folder ,"private.key") + self.ca_root_path = os.path.join(self.invoker_folder , "ca.crt") + + self.logger.info("ServiceDiscoverer initialized correctly") + + def get_api_provider_id(self): + return self.capif_api_details["api_provider_id"] + + def __load_config_file(self, config_file: str): + """Carga el archivo de configuración.""" + try: + with open(config_file, 'r') as file: + return json.load(file) + except FileNotFoundError: + self.logger.warning(f"Configuration file {config_file} not found. Using defaults or environment variables.") + return {} + + + def __load_provider_api_details(self): + try: + path=os.path.join(self.invoker_folder,"capif_api_security_context_details-"+self.capif_invoker_username+".json") + with open( + path, + "r", + ) as openfile: + details = json.load(openfile) + self.logger.info("Api provider details correctly loaded") + return details + except Exception as e: + self.logger.error("Error while loading Api invoker details: %s", str(e)) + raise + + def _add_trailing_slash_to_url_if_missing(self, url): + if not url.endswith("/"): + url += "/" + return url + + def get_security_context(self): + self.logger.info("Getting security context for all API's filtered") + + + + self.logger.info("Trying to update security context") + self.__update_security_service() + self.__cache_security_context() + + + def get_access_token(self): + """ + :param api_name: El nombre del API devuelto por descubrir servicios + :param api_id: El id del API devuelto por descubrir servicios + :param aef_id: El aef_id relevante devuelto por descubrir servicios + :return: El token de acceso (jwt) + """ + token_dic = self.__get_security_token() + self.logger.info("Access token successfully obtained") + return token_dic["access_token"] + + + + def __cache_security_context(self): + try: + path=os.path.join(self.invoker_folder,"capif_api_security_context_details-"+self.capif_invoker_username+".json") + with open( + path, "w" + ) as outfile: + json.dump(self.capif_api_details, outfile) + self.logger.info("Security context saved correctly") + except Exception as e: + self.logger.error("Error when saving the security context: %s", str(e)) + raise + + def __update_security_service(self): + """ + Actualiza el servicio de seguridad. + + :param api_id: El id del API devuelto por descubrir servicios. + :param aef_id: El aef_id devuelto por descubrir servicios. + :return: None. + """ + url = f"https://{self.capif_host}:{self.capif_https_port}/capif-security/v1/trustedInvokers/{self.capif_api_details['api_invoker_id']}/update" + payload = { + "securityInfo": [], + "notificationDestination": "https://mynotificationdest.com", + "requestTestNotification": True, + "websockNotifConfig": { + "websocketUri": "string", + "requestWebsocketUri": True + }, + "supportedFeatures": "fff" + } + + number_of_apis = len(self.capif_api_details["registered_security_contexes"]) + + for i in range(0, number_of_apis): + # Obteniendo los valores de api_id y aef_id para cada API + api_id = self.capif_api_details["registered_security_contexes"][i]["api_id"] + aef_id = self.capif_api_details["registered_security_contexes"][i]["aef_id"] + + security_info = { + "prefSecurityMethods": ["Oauth"], + "authenticationInfo": "string", + "authorizationInfo": "string", + "aefId": aef_id, + "apiId": api_id + } + + payload["securityInfo"].append(security_info) + + try: + response = requests.post(url, + json=payload, + cert=(self.signed_key_crt_path, self.private_key_path), + verify=self.ca_root_path) + response.raise_for_status() + self.logger.info("Security context correctly updated") + + except requests.exceptions.HTTPError as http_err: + if response.status_code == 404: + self.logger.warning("Received 404 error, redirecting to register security service") + self.__register_security_service() + else: + self.logger.error("HTTP error occurred: %s", str(http_err)) + raise + + except requests.RequestException as e: + self.logger.error("Error trying to update Security context: %s", str(e)) + raise + + + def __register_security_service(self): + """ + :param api_id: El id del API devuelto por descubrir servicios + :param aef_id: El aef_id devuelto por descubrir servicios + :return: None + """ + + url = f"https://{self.capif_host}:{self.capif_https_port}/capif-security/v1/trustedInvokers/{self.capif_api_details['api_invoker_id']}" + payload = { + "securityInfo": [], + "notificationDestination": "https://mynotificationdest.com", + "requestTestNotification": True, + "websockNotifConfig": { + "websocketUri": "string", + "requestWebsocketUri": True + }, + "supportedFeatures": "fff" + } + + number_of_apis = len(self.capif_api_details["registered_security_contexes"]) + + + + for i in range(0,number_of_apis): + # Obteniendo los valores de api_id y aef_id para cada API + api_id = self.capif_api_details["registered_security_contexes"][i]["api_id"] + aef_id = self.capif_api_details["registered_security_contexes"][i]["aef_id"] + + security_info = { + "prefSecurityMethods": ["Oauth"], + "authenticationInfo": "string", + "authorizationInfo": "string", + "aefId": aef_id, + "apiId": api_id + } + + payload["securityInfo"].append(security_info) + + + try: + response = requests.put(url, + json=payload, + cert=(self.signed_key_crt_path, self.private_key_path), + verify=self.ca_root_path + ) + response.raise_for_status() + self.logger.info("Security service properly registered") + except requests.RequestException as e: + self.logger.error("Error when registering the security service: %s", str(e)) + raise + + def __get_security_token(self): + """ + :param api_name: El nombre del API devuelto por descubrir servicios + :param aef_id: El aef_id relevante devuelto por descubrir servicios + :return: El token de acceso (jwt) + """ + url = f"https://{self.capif_host}:{self.capif_https_port}/capif-security/v1/securities/{self.capif_api_details['api_invoker_id']}/token" + # Construir el scope concatenando aef_id y api_name separados por un ';' + scope_parts = [] + + # Iterar sobre los contextos registrados y construir las partes del scope + for context in self.capif_api_details["registered_security_contexes"]: + aef_id = context["aef_id"] + api_name = context["api_name"] + scope_parts.append(f"{aef_id}:{api_name}") + + # Unir todas las partes del scope con ';' y añadir el prefijo '3gpp#' + scope = "3gpp#" + ";".join(scope_parts) + + + payload = { + "grant_type": "client_credentials", + "client_id": self.capif_api_details["api_invoker_id"], + "client_secret": "string", + "scope": scope + } + headers = { + 'Content-Type': 'application/x-www-form-urlencoded', + } + + try: + response = requests.post(url, + headers=headers, + data=payload, + cert=(self.signed_key_crt_path, self.private_key_path), + verify=self.ca_root_path + ) + response.raise_for_status() + response_payload = response.json() + self.logger.info("Security token successfully obtained") + return response_payload + except requests.RequestException as e: + self.logger.error("Error obtaining the security token: %s", str(e)) + raise + + + def discover_service_apis(self): + """ + Descubre los APIs de servicio desde CAPIF con filtros basados en un archivo JSON. + :return: Payload JSON con los detalles de los APIs de servicio + """ + # Cargar los parámetros desde el archivo JSON + + json_path = self.config_path +"discover_filter.json" + with open(json_path, 'r') as f: + filters = json.load(f) + + # Filtrar parámetros que no sean vacÃos " + query_params = {k: v for k, v in filters.items() if v } + + # Formar la URL con los parámetros de query + query_string = "&".join([f"{k}={v}" for k, v in query_params.items()]) + + url = f"https://{self.capif_host}:{self.capif_https_port}/{self.capif_api_details['discover_services_url']}{self.capif_api_details['api_invoker_id']}" + + if query_string: + url += f"&{query_string}" + + try: + response = requests.get( + url, + headers={"Content-Type": "application/json"}, + cert=(self.signed_key_crt_path, self.private_key_path), + verify=self.ca_root_path + ) + + response.raise_for_status() + response_payload = response.json() + self.logger.info("Service APIs successfully discovered") + return response_payload + except requests.RequestException as e: + self.logger.error("Error discovering service APIs: %s", str(e)) + raise + + def retrieve_api_description_by_name(self, api_name): + """ + Recupera la descripción del API por nombre. + :param api_name: Nombre del API + :return: Descripción del API + """ + self.logger.info("Retrieving the API description for api_name=%s", api_name) + capif_apifs = self.discover_service_apis() + endpoints = [api for api in capif_apifs["serviceAPIDescriptions"] if api["apiName"] == api_name] + if not endpoints: + error_message = ( + f"Could not find available endpoints for api_name: {api_name}. " + "Make sure that a) your Invoker is registered and onboarded to CAPIF and " + "b) the NEF emulator has been registered and onboarded to CAPIF" + ) + self.logger.error(error_message) + raise ServiceDiscoverer.ServiceDiscovererException(error_message) + else: + self.logger.info("API description successfully retrieved") + return endpoints[0] + + def retrieve_specific_resource_name(self, api_name, resource_name): + """ + Recupera la URL para recursos especÃficos dentro de los APIs. + :param api_name: Nombre del API + :param resource_name: Nombre del recurso + :return: URL del recurso especÃfico + """ + self.logger.info("Retrieving the URL for resource_name=%s in api_name=%s", resource_name, api_name) + api_description = self.retrieve_api_description_by_name(api_name) + version_dictionary = api_description["aefProfiles"][0]["versions"][0] + version = version_dictionary["apiVersion"] + resources = version_dictionary["resources"] + uris = [resource["uri"] for resource in resources if resource["resourceName"] == resource_name] + + if not uris: + error_message = f"Could not find resource_name: {resource_name} at api_name {api_name}" + self.logger.error(error_message) + raise ServiceDiscoverer.ServiceDiscovererException(error_message) + else: + uri = uris[0] + if not uri.startswith("/"): + uri = "/" + uri + if api_name.endswith("/"): + api_name = api_name[:-1] + result_url = api_name + "/" + version + uri + self.logger.info("URL of the specific resource successfully retrieved: %s", result_url) + return result_url + + def save_security_token(self,token): + self.capif_api_details["access_token"]=token + self.__cache_security_context() + + def get_tokens(self): + + self.get_security_context() + token=self.get_access_token() + self.save_security_token(token) + + + def discover(self): + endpoints = self.discover_service_apis() + + if len(endpoints) > 0: + self.save_api_discovered(endpoints) + else: + self.logger.error("No endpoints have been registered. Make sure a Provider has Published an API to CAPIF first") + + def save_api_discovered(self,endpoints): + self.capif_api_details["registered_security_contexes"] = [] + for service in endpoints["serviceAPIDescriptions"]: + api_name = service["apiName"] + api_id = service["apiId"] + for n in service["aefProfiles"]: + aef_id=n["aefId"] + self.capif_api_details["registered_security_contexes"].append({"api_name":api_name,"api_id": api_id, "aef_id": aef_id}) + self.save_api_details() + + import json + + def save_api_details(self): + try: + # Define the path to save the details + file_path = os.path.join(self.invoker_folder , "capif_api_security_context_details-" + self.capif_invoker_username + ".json") + + # Save the details as a JSON file + with open(file_path, "w") as outfile: + json.dump(self.capif_api_details, outfile, indent=4) + + # Log the success of the operation + self.logger.info("API provider details correctly saved") + + except Exception as e: + # Log any errors that occur during the save process + self.logger.error("Error while saving API provider details: %s", str(e)) + raise + + + diff --git a/images/Flujo completo-OPENCAPIF ACTUAL.jpg b/images/Flujo completo-OPENCAPIF ACTUAL.jpg new file mode 100644 index 0000000000000000000000000000000000000000..960e4211c929c729994bde46ef81e5458ddb7e4e GIT binary patch literal 84947 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�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
{&4t|;%lHWioX#5D0MwgU%dr_hA&(RsysPFBSZ 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 b)c+4mDdc`j5DK`j`Q*F7|5Fa0I3D~b@gW1~ literal 0 HcmV?d00001 diff --git a/images/Flujo completo-SDK ACTUAL CON REGISTER.jpg b/images/Flujo completo-SDK ACTUAL CON REGISTER.jpg new file mode 100644 index 0000000000000000000000000000000000000000..249dd95f7f508893e0f8976d053f4546af349178 GIT binary patch literal 105385 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�sPXEMXf>e*;MG&KyGG$a<kZa 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 Ye~dw--~TE$s+1i2PjS*W#`#407s#g9$p8QV literal 0 HcmV?d00001 -- GitLab