GSLB-Konfigurationen über DNS-Domänennamen bereitstellen
Die neuen RBAC-Verbesserungen in NetScaler ADM ermöglichen es nur autorisierten Anwendungsbesitzern, ihre eigenen DNS-Domänen in NetScaler ADM zu erstellen und zu verwalten. Sie können jetzt die App-Besitzer autorisieren, GSLB-Konfigurationen aus den DNS-Domänen, die sie besitzen, mithilfe bestimmter StyleBooks zu erstellen. Wenn der ausgewählte DNS-Domänenname dem Benutzer gehört, kann er beim Erstellen von GSLB-Konfigurationen mit GSLB StyleBooks im NetScaler ADM-Anwendungs-Dashboard verwendet werden. In NetScaler ADM gibt es zwei Workflows zum Konfigurieren von GSLB-Konfigurationen.
Arbeitsablauf für die Admins. Richten Sie die RBAC-Umgebung in NetScaler ADM ein. Das heißt, um GSLB StyleBooks zu erstellen und zu importieren, müssen Sie Benutzergruppen, Richtlinien und Rollen erstellen und der Gruppe Benutzer zuweisen. Als Administrator müssen Sie diesen Workflow ausführen.
Arbeitsablauf für die Anwendungseigentümer. Anwendungseigentümer müssen GSLB-Konfigurationen mit Domänennamen erstellen, die sie besitzen.
Das folgende Flussdiagramm zeigt beide Workflows:
Workflow für die Administratoren
Als Administrator besteht Ihr Workflow zum Erstellen einer RBAC-Umgebung in NetScaler ADM aus den folgenden Schritten:
Erstellen Sie zunächst ein StyleBook, um GSLB-Konfigurationen auf den NetScaler-Instanzen bereitzustellen. Dieses Dokument enthält ein Beispiel für YAML-Inhalte, mit dem Sie Ihr eigenes StyleBook -Build Your StyleBookerstellen können.
Weitere Informationen zum Erstellen benutzerdefinierter StyleBooks finden Sie unterErstellen und Verwenden von benutzerdefinierten StyleBooks.
Hinweis:
NetScaler ADM unterstützt in StyleBooks ein neues Konstrukt namens “allowed-dynamic-values”. Dieses Konstrukt kann verwendet werden, um dem Benutzer zu ermöglichen, die in NetScaler ADM vorhandenen DNS-Domänenwerte aufzulisten und auszuwählen, um den Parameter “Domänenname” im StyleBook in der NetScaler ADM-GUI automatisch auszufüllen.
Ein Beispiel für einen Parameterabschnitt “Domain-Name” wird als Referenz bereitgestellt.
Der hier verwendete Parameter “Domainname” ist nur ein Beispiel. Der Parameter kann in Ihrem benutzerdefinierten StyleBook unterschiedlich sein.
- name: domain-name label: DNS Domain Name description: GSLB DNS Domain Name type: string required: true allowed-dynamic-values: source: local resource-type: dns_domain_entry
Hinweis
Derzeit wird in NetScaler ADM das Konstrukt “allowed-dynamic-values” in keinem der Standard-StyleBooks verwendet. Erstellen Sie ein neues benutzerdefiniertes GSLB StyleBook mithilfe des Standard-GSLB StyleBook. Ersetzen Sie den Teil für den Domainnamen-Parameter durch das oben angegebene Beispiel. Sie können einen beliebigen Texteditor verwenden, um neue StyleBooks zu erstellen.
Melden Sie sich als Administrator bei NetScaler ADM an.
Navigieren Sie zuAnwendungen>Konfigurationen>StyleBooks.
Klicken Sie aufNeues StyleBook importieren, und laden Sie das neue GSLB StyleBook in NetScaler ADM hoch.
Weitere Informationen zum Importieren von StyleBooks in NetScaler ADM finden Sie unterVerwenden benutzerdefinierter StyleBooks.
Navigieren Sie zuSystem>Benutzer>Richtlinien, und klicken Sie aufHinzufügen, um eine Zugriffsrichtlinie für die Anwendungseigentümer einzurichten, wie unten gezeigt.
Citrix empfiehlt, dass Sie eine Zugriffsrichtlinie erstellen, um sicherzustellen, dass die Anwendungseigentümer die von Ihnen festgelegten RBAC-Regeln nicht umgehen.
Geben Sie einen Namen für die Richtlinie und eine kurze Beschreibung ein. Stellen Sie im Abschnitt Berechtigungen sicher, dass die folgenden Berechtigungen zum Bearbeiten von Ansichten zwingend aktiviert sind.
Anwendungen > Dashboard
Anwendungen > Konfigurationen
Infrastruktur > Instanzen
Infrastruktur > Lizenzmanagement
Einstellungen > Domainnamen
Sie können ggf. weitere Berechtigungen bereitstellen und aufErstellenklicken。
Navigieren Sie zuSystem>Benutzer>Rollen, erstellen Sie eine Rolle und weisen Sie die im vorherigen Schritt erstellte Richtlinie zu.
Geben Sie einen Namen für die Rolle ein, und geben Sie eine kurze Beschreibung ein. Wählen Sie im Abschnitt Richtlinien die OptionAppOwnerExampleAccessPolicyaus.
Navigieren Sie zuSystem>Benutzer>Gruppen, erstellen Sie eine Gruppe, und ordnen Sie die im vorherigen Schritt erstellte Rolle zu.
Geben Sie einen Namen und eine Beschreibung ein, und wählen Sie im Abschnitt Rollen die OptionAppOwnerExampleRoleaus.
Klicken Sie aufWeiter.
Wählen Sie auf der RegisterkarteAutorisierungseinstellungendie NetScaler-Instanzen, auf die der Anwendungseigentümer Zugriff hat, und das neue GSLB-StyleBook aus.
Wiederholen Sie diesen Schritt, um so viele Benutzergruppen zu erstellen, wie Sie in Ihrer Organisation benötigen. Klicken Sie aufGruppe erstellen.
Erstellen Sie einen Systembenutzer und weisen Sie ihn einer Benutzergruppe zu. Dieses Dokument bezieht sich nur auf lokal erstellte Benutzer. Sie müssen keine Benutzer in Benutzergruppen erstellen, wenn NetScaler ADM für die Verwendung der externen Authentifizierung eingerichtet ist, z. B. LDAP. Die Benutzerzuordnung zu Gruppen wird aus dem externen Authentifizierungsverzeichnis abgerufen.
Navigieren Sie zuSystem>Benutzer>Benutzer.
Geben Sie einen Benutzernamen und ein Kennwort für den Systembenutzer ein, und weisen Sie den Benutzer der Gruppe zu.
Hinweis
Schritt 12 ist optional und ist nicht erforderlich, wenn externe Authentifizierung wie LDAP verwendet wird.
NetScaler ADM REST API für Admin-Workflow
REST-API zur Anmeldung bei NetScaler ADM
URL:http:///nitro/v 2/config/loginHTTPMETHOD:POSTBodyPayload:{"login":{"username":"" ,"password":“<密码>”,"session_timeout":1800}}Theresponseresultsinasession饼干header,thatcanbesentwiththerestoftheAPIrequestsbelow.Set-Cookie:SESSID=##ED31F7C886E248CCDCA8F0E0AD2AA511ACCC5F46C48D6D2BCAA719A9DE62;path=/;secure;HttpOnly
REST-API zum Erstellen einer Zugriffsrichtlinie
URL:https:///nitro/v 2/config/rba_policyHTTPMETHOD:POST{"rba_policy":{"name":" AppOwnerAccessPolicy","description":" ExampleCompany AppOwner Access Policy","tenant_id":"7c12ec97-1472-4096-97e7-a5acb453cc5c","statement":[{"access_type":true,"resource_type":"application","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server,app_category"},{"access_type":true,"resource_type":"application","operation_name":"get","dependent_resources":"download,smtp_server,ns_vserver_license,app_category,app_summary,app_health_dashboard_details,haproxy_frontend,haproxy_backend,haproxy_frontend_stats"},{"access_type":true,"resource_type":"si_app_unit","operation_name":"get","dependent_resources":"download,smtp_server,app_summary,si_app_summary,si_device,security_app_dashboard_details,si_geo_location,si_safety_app_firewall,si_safety_overview,si_safety_security_check,si_safety_system_security,si_safety_signature"},{"access_type":true,"resource_type":"stylebooks","operation_name":"get","dependent_resources":"download,smtp_server,ns_vserver_license"},{"access_type":true,"resource_type":"stylebooks","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server"},{"access_type":true,"resource_type":"configpacks","operation_name":"get","dependent_resources":"download,smtp_server,stylebooks,ns_vserver_license"},{"access_type":true,"resource_type":"configpacks","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server"},{"access_type":true,"resource_type":"stylebooks_system_settings","operation_name":"get","dependent_resources":"download,smtp_server"},{"access_type":true,"resource_type":"stylebooks_system_settings","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server"},{"access_type":true,"resource_type":"ns_crvserver","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,perf_cache_redirection_report,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_crvserver","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"haproxy_frontend","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,haproxy_backend,haproxy_server"},{"access_type":true,"resource_type":"haproxy_frontend","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server"},{"access_type":true,"resource_type":"ns_server","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_server,lb_export_report"},{"access_type":true,"resource_type":"ns_server","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,ns_emon_poll_policy,poll_activity_status,lb_export_report"},{"access_type":true,"resource_type":"ns_lbvserver","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,perf_lb_vserver_report,ns_emon_poll_policy,poll_activity_status,lb_export_report"},{"access_type":true,"resource_type":"ns_lbvserver","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,ns_emon_poll_policy,poll_activity_status,lb_export_report"},{"access_type":true,"resource_type":"ns_service","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_visualizer_lb_bindings,lb_export_report"},{"access_type":true,"resource_type":"ns_service","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,ns_emon_poll_policy,poll_activity_status,ns_visualizer_lb_bindings,lb_export_report"},{"access_type":true,"resource_type":"ns_servicegroup","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,ns_emon_poll_policy,poll_activity_status,ns_servicegroupmember_binding,ns_visualizer_lb_bindings,lb_export_report"},{"access_type":true,"resource_type":"ns_servicegroup","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,ns_emon_poll_policy,poll_activity_status,ns_servicegroupmember_binding,ns_visualizer_lb_bindings,lb_export_report"},{"access_type":true,"resource_type":"ns_authenticationvserver","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,perf_authentication_report,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_authenticationvserver","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"syslog_messages","operation_name":"get","dependent_resources":"download,smtp_server"},{"access_type":true,"resource_type":"ns_emon_poll_policy","operation_name":"get","dependent_resources":"download,poll_activity_status,smtp_server"},{"access_type":true,"resource_type":"ns_emon_poll_policy","operation_name":"add","dependent_resources":"download,poll_activity_status,mail_profile,slack_profile,smtp_server"},{"access_type":true,"resource_type":"ns_visualizer_gslb_bindings","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,poll_activity_status,ns_emon_poll_policy,ns_gslbvserver_domain,lb_export_report"},{"access_type":true,"resource_type":"ns_visualizer_gslb_bindings","operation_name":"get","dependent_resources":“下载、DeviceAPIProxy smtp_server, poll_activity_status,ns_emon_poll_policy,ns_gslbvserver_domain,lb_export_report"},{"access_type":true,"resource_type":"ns_gslbservice","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_gslbservice","operation_name":"get","dependent_resources":“下载、DeviceAPIProxy smtp_server, poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_gslbvserver","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,perf_global_server_load_balancing_report,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_gslbvserver","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_vpnvserver","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_vpnvserver","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,perf_ssl_vpn_report,poll_activity_status,ns_emon_poll_policy,lb_export_report"},{"access_type":true,"resource_type":"ns_csvserver","operation_name":"get","dependent_resources":"download,DeviceAPIProxy,smtp_server,perf_content_switching_report,ns_emon_poll_policy,poll_activity_status,ns_visualizer_cs_bindings,lb_export_report"},{"access_type":true,"resource_type":"ns_csvserver","operation_name":"add","dependent_resources":“DeviceAPIProxy mail_profile slack_profile smtp_server,ns_emon_poll_policy,poll_activity_status,ns_visualizer_cs_bindings,lb_export_report"},{"access_type":true,"resource_type":"dns_domain_entry","operation_name":"get","dependent_resources":""},{"access_type":true,"resource_type":"dns_domain_entry","operation_name":"add","dependent_resources":""},{"access_type":true,"resource_type":"devicewise_detail_summary","operation_name":"get","dependent_resources":"download,mps_user_heatmap,ns_event,mps_agent,active_event,smtp_server,mps_datacenter,event_severity_report,event_device_report,ns_conf,device_event_summary"},{"access_type":true,"resource_type":"devicewise_detail_summary","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server"},{"access_type":true,"resource_type":"cbwanopt","operation_name":"get","dependent_resources":"download,device_backup,traceroute,inventory,inventory_status,ping,mps_datacenter,cbwanopt_device_profile,sdwanvw_device_profile,sdwanvw_snmp_config,sdwanvw_appflowconfig,smtp_server,cbwanopt_snmp_config,cbwanopt_appflowconfig,sdwanvw,tag"},{"access_type":true,"resource_type":"cbwanopt","operation_name":"add","dependent_resources":"inventory,managed_device,device_backup,upload,cbwanopt_device_profile,mps_datacenter,mail_profile,slack_profile,smtp_server,sdwanvw_device_profile,sdwanvw_snmp_config,sdwanvw_appflowconfig,cbwanopt_snmp_config,cbwanopt_appflowconfig,sdwanvw,tag"},{"access_type":true,"resource_type":"device_login","operation_name":"get","dependent_resources":""},{"access_type":true,"resource_type":"ns","operation_name":"get","dependent_resources":"download,ns_config_replicate,ns_conf,ns_ns_runningconfig,ns_ns_savedconfig,active_event,device_backup,traceroute,inventory,inventory_status,ping,ns_device_profile,nssdx_device_profile,sdx_snmp_config,sdx_syslog_config,smtp_server,ns_cluster,ns_snmp_config,ns_syslog_config,ns_l7_latency_config,ica_l7_latency_update,af_vserver_policy,ns_vserver_appflow_config,mps_datacenter,ns_appflow_param_config,ns_ns_license,ns_ns_mode,ns_network_interface,advanced_analytics_config,tag"},{"access_type":true,"resource_type":"ns","operation_name":"add","dependent_resources":"inventory,ns_l7_latency_config,ica_l7_latency_update,af_vserver_policy,ns_config_replicate,managed_device,device_backup,upload,ns_device_profile,nssdx_device_profile,mps_datacenter,sdx_snmp_config,sdx_syslog_config,mail_profile,slack_profile,smtp_server,ns_cluster,ns_snmp_config,ns_syslog_config,ns_vserver_appflow_config,ns_appflow_param_config,advanced_analytics_config,tag"},{"access_type":true,"resource_type":"haproxyhost","operation_name":"get","dependent_resources":"download,traceroute,inventory,inventory_status,ping,mps_datacenter,smtp_server,haproxy_device_profile,device_backup,tag"},{"access_type":true,"resource_type":"haproxyhost","operation_name":"add","dependent_resources":"inventory,managed_device,mail_profile,slack_profile,smtp_server,mps_datacenter,haproxy_device_profile,haproxy,device_backup,tag"},{"access_type":true,"resource_type":"docker_host","operation_name":"add","dependent_resources":"inventory,ns_snmp_config,managed_device,ns,upload,mail_profile,slack_profile,smtp_server,mps_datacenter,ns_device_profile,docker_nscpx_image"},{"access_type":true,"resource_type":"docker_host","operation_name":"get","dependent_resources":"download,ns_snmp_config,ns_conf,ns_ns_runningconfig,ns_ns_savedconfig,smtp_server,mps_datacenter,ns_device_profile,traceroute,inventory,inventory_status,ping,active_event,ns_ns_license,ns_ns_mode,ns_network_interface"},{"access_type":true,"resource_type":"perf_reports","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server,perf_custom_dashboard"},{"access_type":true,"resource_type":"perf_reports","operation_name":"get","dependent_resources":"download,smtp_server,perf_report_counters,perf_res_util_report,perf_http_req_tcp_conn_report,perf_lb_ssl_traffic_report,perf_ip_bytes_rxtx_report,perf_ip_pkt_rxtx_report,perf_icmp_pkt_rxtx_report,perf_icmp_bytes_rxtx_report,perf_icmpv6_pkt_rxtx_report,perf_icmpv6_bytes_rxtx_report,perf_ipv6_bytes_rxtx_report,perf_ipv6_pkt_rxtx_report,perf_udp_bytes_rxtx_report,perf_udp_packets_rxtx_report,perf_cmp_bytes_rxtx_report,perf_cmp_tcp_bytes_rxtx_report,perf_cmp_tcp_ratiosaving_report,perf_cmp_decmp_bytes_rxtx_report,perf_cmp_decmp_ratiosaving_report,perf_tcp_server_conn_report,perf_tcp_surgelen_spareconn_report,perf_http_bytes_rx_report,perf_http_gets_posts_report,perf_ssl_transactions_hits_report,perf_ssl_client_auth_report,perf_ssl_rsa_dhkey_report,perf_ssl_frontend_ciphers_report,perf_ssl_backend_ciphers_report,perf_wsdevice_cpu_utilization_report,perf_wsdevice_send_compression_ratio_report,perf_wsdevice_connected_plugins_report,perf_wsdevice_data_reduction_report,perf_wsdevice_link_utilization_report,perf_wsserviceclassstatstable_pass_through_connection_report,perf_wsserviceclassstatstable_service_class_report,perf_wsserviceclassstatstable_acceleration_report,perf_wslinkstatstable_throughput_report,perf_wslinkstatstable_packet_loss_report,perf_wsappstatstable_application_report,perf_wsqosstatstable_qos_report,perf_ssl_cpu_keyexchange_report,perf_ssl_be_rsa_dhkey_report,perf_custom_dashboard,perf_ns_throughput_report,perf_network_interface_report"},{"access_type":true,"resource_type":"perf_threshold","operation_name":"get","dependent_resources":"download,perf_reports,perf_report_counters,smtp_server,sms_server,sms_profile"},{"access_type":true,"resource_type":"perf_threshold","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server,sms_server,sms_profile"},{"access_type":true,"resource_type":"perf_poll_config","operation_name":"add","dependent_resources":"mail_profile,slack_profile,smtp_server"},{"access_type":true,"resource_type":"perf_poll_config","operation_name":"get","dependent_resources":"smtp_server,download"},{"access_type":true,"resource_type":"license_server_info","operation_name":"get","dependent_resources":“sms_server license_proxy_server jazz_license,下来load,sms_profile,smtp_server,user_managed_tp_vserver,managed_vserver,user_managed_vserver,haproxy_frontend,haproxy_backend,license_file,device_license_info,license_info,ns_authenticationvserver,ns_gslbvserver,ns_vpnvserver,ns_csvserver,ns_crvserver,ns_lbvserver,autoselection_preference,license_threshold,license_expiry_info"},{"access_type":true,"resource_type":"license_server_info","operation_name":"add","dependent_resources":"sms_server,license_proxy_server,jazz_license,sms_profile,mail_profile,slack_profile,smtp_server,user_managed_tp_vserver,managed_vserver,upload,license_file,license_info,license_threshold,mas_license,user_managed_vserver,autoselection_preference,license_expiry_info"}],"ui":[{"access_type":true,"name":"ApplicationsDashboard","display_name":"Dashboard"},{"access_type":true,"name":"SecurityDashboard","display_name":"App Security Dashboard"},{"access_type":true,"name":"Stylebooks","display_name":"StyleBooks"},{"access_type":true,"name":"Stylebooks","display_name":"Configpacks"},{"access_type":true,"name":"StylebooksSettings","display_name":"Settings"},{"access_type":true,"name":"CacheRedirection","display_name":"Cache Redirection"},{"access_type":true,"name":"Servers","display_name":"Servers"},{"access_type":true,"name":"VirtualServers","display_name":"Virtual Servers"},{"access_type":true,"name":"Services","display_name":"Services"},{"access_type":true,"name":"ServiceGroups","display_name":"Service Groups"},{"access_type":true,"name":"Authentication","display_name":"Authentication"},{"access_type":true,"name":"MonitoringAuditing","display_name":"Auditing"},{"access_type":true,"name":"MonitoringSettings","display_name":"Settings"},{"access_type":true,"name":"GSLBDomains","display_name":"Domains"},{"access_type":true,"name":“GSLBServices”,"display_name":"Services"},{"access_type":true,"name":"GSLBVirtualServer","display_name":"Virtual Server"},{"access_type":true,"name":"NetScalerGateway","display_name":"NetScaler Gateway"},{"access_type":true,"name":"ContentSwitching","display_name":"Content Switching"},{"access_type":true,"name":"DNSDomainNames","display_name":"DNS Domain Names"},{"access_type":true,"name":"NetworkDashboard","display_name":"Instances Dashboard"},{"access_type":true,"name":"NetScalerSDWANWOInstances","display_name":"NetScaler SD-WAN"},{"access_type":true,"name":"InstanceOperations","display_name":"Instance Operations"},{"access_type":true,"name":"NetScalerInstances","display_name":"NetScaler ADC"},{"access_type":true,"name":"NetScalerCPXDockerHost","display_name":"Docker Hosts"},{"access_type":true,"name":"Reports","display_name":"Reports"},{"access_type":true,"name":"Thresholds","display_name":"Thresholds"},{"access_type":true,"name":"ReportingSettings","display_name":"Settings"},{"access_type":true,"name":"Licenses","display_name":"License Management"}]}}
REST-API zum Erstellen einer Zugriffsrolle
URL:https:///nitro/v 2/config/rba_roleHTTPMETHOD:POSTPayload:{"rba_role":{"name":"AppOwnerRole","description":"ExampleCompany App Owner Role","policies":["AppOwnerAccessPolicy"]}
REST API zum Hochladen des neuen GSLB StyleBook
URL:https:///stylebook/nitro/v 2/config/stylebooksHTTPMETHOD:POSTPayload:{"stylebook":{"file_name":"my-own-gslb.yaml","source":"bmFtZTogZ3NsYi1kbnMtZG9tYW...aXRvcm5hbWU=","encoding":"base64"}}
Hinweis
Der Name des StyleBooks kann sich auf Ihrem System ändern.
REST API zum Erstellen von Gruppen und Zuweisen ausgewählter Instanzen und StyleBooks
URL:https:///nitro/v 2/config/mpsgroupHTTPMETHOD:POSTPayload:{"mpsgroup":{"id":"","name":"AppOwnerGroup1","description":"ExampleCompany App Owner Group","roles":["AppOwnerRole"],"enable_session_timeout":false,"assign_all_devices":false,"ass ign_all_apps":false,"application_names_with_regex":[],"standalone_instances_id":["72c178da-47df-4426-9acc-cd6316f92506","c948061e-6240-4062-931c-f6988ef36e3b"],"application_list":[],"permission":"none","application_names":[],"authscope_props":[{"propname":"configuration_template_id","propvalues":["NONE"]},{"propname":"dns_domain_entry_id","propvalues":["cf6631e5-2f56-4bb1-b0a5-90fabfc0e3e2","b268905c-522d-47e3-a2ca-3f8d8a754373"]},{"propname":"stylebook_id","propvalues":["gslbbb963abe85936913035e1d4dd14b56f7","moni72fad4494466d102b19c18ac329fa9f3"]}],"tenant_id":"6d024111-6636-4571-a250-d47b31aba7a8"}}
Hinweis:
Um die IDs für DNS-Domänennamen und GSLB StyleBooks zu erhalten, die in der obigen API-Nutzlast verwendet werden sollen, können Sie reguläre NetScaler ADM-APIs zum Abfragen von IDs verwenden, die Entitätsnamen entsprechen. Um beispielsweise die ID für eine DNS-Domäne namens app1.acme.com zu erhalten, können Sie die folgende NetScaler ADM REST-API verwenden.
URL:https:///nitro/v 2/config/dns_domain_entry?filter=name:app1.acme.comHTTPMETHOD:GETTheIDofthisdomaincanbeextractedfromthefollowingresponse.{"errorcode":0,"message":"Done","operation":"get","resourceType":"dns_domain_entry","username":"nsroot","tenant_name":"Owner","tenant_id":"568d8e12-1d88-42b2-8943-cbaa04826fd1","resourceName":"","dns_domain_entry":[{"tenant_id":"568d8e12-1d88-42b2-8943-cbaa04826fd1","name":"app1.acme.com","id":"3e3d85ea-1c21-49b2-97f4-60fccdbae2e0","description":"app1 domain name"}]}
Um die StyleBook-ID für ein StyleBook zu erhalten, dessen Namespace com.citrix.adc.stylebook, Version: 1.0, name: istmy-own-gslb
, können Sie die folgende API verwenden.
URL:https:///stylebook/nitro/v 1/config/stylebooks?filter=name:my-own-gslb,namespace:com.citrix.adc.stylebooks,version:1.0HTTPMETHOD:GET
Die Antwort enthält die StyleBook-Details, einschließlich des ID-Attributs.
{"stylebooks":[{"author":null,"builtin":"false","builtins":"{"netscaler.nitro.config": "10.5"}","deprecate":"false","description":" This StyleBook is used to configure one or a number of NetScalers in different sites into a GSLB setup. It is assumed that the SNIP IP on each NetScaler to be used by this StyleBook as the Site IP is already configured on the appliance.","display_name":"HTTP/SSL LoadBalancing StyleBook","filename":"my-own-gslb.yaml","hide":null,"id":"gslb5a748d8b7684846cf6c409ad7dea8ccf","imported_by":"","imported_datetime":"2018-05-25 17:20:32.848902","name":"my-own-gslb","namespace":"com.citrix.adc.stylebooks","pkg_id":"gslb5a748d8b7684846cf6c409ad7dea8ccf","primary_keys":"["name"]","private":"false","recompile":"false","schema_version":"1.0","source":"LS0tIApuYW1lOiBsYgpuYW1lc…","system":null,"tags":"","tenant_id":null,"user_sb":"false","version":"1.0"},{…}]}
Hinweis
Die obige API gibt eine Liste von StyleBooks zurück, die dem Filter entsprechen. Stellen Sie sicher, dass Sie das richtige StyleBook aus der Antwort auswählen, um die ID abzurufen.
REST-API zum Erstellen eines Systembenutzers
Hinweis
Dieser Schritt ist optional.
URL:https:///nitro/v 2/config/mpsuserHTTPMETHOD:POSTPayload:{"mpsuser":{"name":"John","password":"welcome","external_authentication":false,"enable_session_timeout":false,"groups":["AppOwnerGroup1"]}}
Arbeitsablauf für die Anwendungseigentümer
Ihre Benutzer müssen sich mit ihren Anmeldeinformationen als Anwendungsbenutzer anmelden. Die Benutzer müssen diese Aufgabe ausführen, um ihre eigenen DNS-Domänennamen zu erstellen und das neue GSLB StyleBook zu verwenden.
Navigieren Sie in NetScaler ADM zuEinstellungen > Domänennamen.
Klicken Sie aufHinzufügen, um eine neue DNS-Domain zu Erstellen Sie die DNS-Domänen in NetScaler ADM.
Hinweis
Als Administrator können Sie diese Domänennamen auch erstellen und den Benutzergruppen zuweisen.
Navigieren Sie zuAnwendungen>Dashboard, und klicken Sie aufBenutzerdefinierte App definieren.
Geben Sie einen Namen für die Anwendung ein, und wählen Sie eine Kategorie aus. Wählen SieNeue Anwendung aus einem StyleBookerstellen und klicken Sie aufOK. Wählen SieMein eigenes GSLB-StyleBookaus, um die Konfiguration auf den ausgewählten Instanzen bereitzustellen.
Geben Sie die Werte ein, die für alle Parameter im StyleBook erforderlich sind.
Wählen Sie den Domainnamen aus der Liste aus.
Fügen Sie gegebenenfalls die GSLB-Sites Ihrer Anwendung hinzu.
Wählen Sie die NetScaler-Zielinstanzen in allen GSLB-Sites aus.
Klicken Sie aufErstellen, um eine GSLB-Konfiguration zu erstellen.
Hinweis
Der StyleBook-Parameter DNS-Domänenname zeigt nur die Liste der DNS-Domänen an, die zum Benutzer in NetScaler ADM gehören.
Arbeitsablauf der NetScaler ADM REST-API für App-Besitzer
REST-API zur Anmeldung bei NetScaler ADM
URL:http:///nitro/v 2/config/loginHTTPMETHOD:POSTPayload:{"login":{"username":"" ,"password":“<密码>”,"session_timeout":1800}}
REST API zum Erstellen von DNS-Domainnamen
URL:https:///nitro/v 2/config/dns_domain_entryHTTPMETHOD:POSTPAYLOAD:{"dns_domain_entry":{"name":"app1.acme.com","description":"app1 acme domain"}}
REST-API zum Erstellen von Anwendungen mit StyleBook
URL:https:///nitro/v 2/config/applicationHTTPMETHOD:POSTPayload:{"params":{"action":"app_discovery"},"application":{"id":"","name":"app1","app_c ategory":"ITOps","stylebook_params":"{"name":"my-own-gslb","namespace":"com.citrix.adc.stylebooks","version":"1.0","configpack_payload":{"parameters":{"name":"app1","domain-name":"app1.acme.com",]"ttl":"30","algorithm":"ROUNDROBIN","protocol":"HTTP","sites":[{"name":"site1","ipaddress":"6.5.6.77","virtual-ip":"88.6.5.44","virtual-port":"80"}]},"targets":[ {"id":"72c178da-47df-4426-9acc-cd6316f92506"}, {"id":"0e4d0789-bffe-4266-ba1c-09adfc61db4e"}, {"id":"b5af4455-3f06-4f56-b0cb-3d9f868c1f94"}]}}"}}
In der obigen Nutzlast:
Das “stylebook_params” enthält den Namen, die Namespaces und die Version des zu verwendenden StyleBooks.
Die “configpack_payload” enthält die ausgefüllten Parameter des StyleBook, wie in der entsprechenden GUI-Form oben gezeigt. NetScaler ADM stellt sicher, dass nur DNS-Domänennamen, auf die der Benutzer Zugriff hat, als Werte für den Parameter domain-name verwendet werden können.
Die “Ziele” enthalten die Liste der NetScaler IDs, auf denen die GSLB-Konfiguration bereitgestellt wird (die ADC-Instanzen auf den GSLB-Sites).
Um die NetScaler-ID unter Angabe der Verwaltungs-IP-Adresse von NetScaler zu erhalten, können Sie die folgende NetScaler ADM API verwenden:
URL:https:///nitro/v 2/config/ns?filter=ip_address:192.168.153.162HTTPMETHOD:GET
Die Antwortnutzlast enthält Informationen über diesen NetScaler, einschließlich seiner ID:
{"errorcode":0,"message":"Done",….."tenant_id":"ec0eb868-0d6b-4729-bfbd-3005dd2694c1","resourceName":"","ns":[{"manufacturedate":"9/30/2009","is_grace":"false","hostname":"youcef-ns","std_bw_config":"0","gateway_deployment":"false","gateway_ipv6":"","ha_master_state":"Primary","instance_available":"0","device_finger_print":"","instance_state":"Down","reason":"Device not reachable","name":"","ent_bw_available":"0","description":"","id":"da9ffff2-c100-45f1-a913-c542718338b2","mgmt_ip_address":"192.168.153.162",….}]}
Erstellen Sie Ihr StyleBook
Der vollständige Inhalt der Datei my-own-gslb.yaml StyleBook ist unten dargestellt: Sie können dieses benutzerdefinierte StyleBook so verwenden, wie es ist, oder passen Sie es an Ihre Bedürfnisse an, um die erforderliche GSLB-Konfiguration zu generieren. Der wichtige Parameter in diesem StyleBook namens “domänenname” muss in jedem StyleBook vorhanden sein, um die DNS-Namenfunktionalität nutzen zu können.
name:my-own-gslbnamespace:com.citrix.adc.stylebooksversion:"1.0"display-name:My own GSLB StyleBookdescription:This StyleBook is used to configure one or a number of NetScalers in different sites into a GSLB setup. It is assumed that the SNIP IP on each NetScaler to be used by this StyleBook as the Site IP is already configured on the appliance.schema-version:"1.0"import-stylebooks:-namespace:netscaler.nitro.configversion:"10.5”prefix:ns-namespace:com.citrix.adc.commontypesversion:"1.0"prefix:cmtypesparameters:-name:namelabel:Application Nametype:stringrequired:truekey:true-name:domain-namelabel:DNS Domain Namedescription:GSLB DNS Domain Nametype:stringrequired:trueallowed-dynamic-values:source:localresource-type:dns_domain_entry-name:ttllabel:TTL for the Domaindescription:Time-To-Live value (number of seconds) for the Domaintype:numberdefault:30-name:algorithmlabel:LB Algorithmdescription:Global Load Balancing Algorithmtype:stringdefault:ROUNDROBINallowed-values:-ROUNDROBIN-STATICPROXIMITY-SOURCEIPHASH-name:protocollabel:Protocoldescription:The protocol of the GSLB VIPtype:stringdefault:HTTPallowed-values:-HTTP-FTP-TCP-UDP-SSL-SSL_BRIDGE-SSL_TCP-NNTP-ANY-SIP_UDP-SIP_TCP-SIP_SSL-RADIUS-RDP-RTSP-MYSQL-MSSQL-ORACLE-name:monitorlabel:LB Monitordescription:Monitor to be bound to the GSLB servicetype:cmtypes::monitor-name:siteslabel:GSLB Sitesdescription:Provide information about the GSLB Sitestype:object[]required:trueparameters:-name:namelabel:Site Nametype:stringrequired:true-name:ipaddresslabel:Site IP Addressdescription:The IP Address of this Site. Use a SNIP IP address on the site's appliance.type:ipaddressrequired:true-name:public-ipaddresslabel:Site Public IP Addressdescription:The Public IP Address of this Site. It NATs to the Site's IP addresstype:ipaddress-name:virtual-iplabel:Site VIP IPdescription:The IP Address for the GSLB Service on this site (The VIP on this Site)type:ipaddressrequired:true-name:virtual-portlabel:Site VIP Portdescription:The port number for the GSLB Service (VIP) on this sitetype:tcp-portdefault:80components:-name:enable-gslb-comptype:ns::nsfeaturedescription:Enables the GSLB featuremeta-properties:action:enableproperties:feature:["GSLB","LB"]-name:gslb-monitor-comptype:cmtypes::monitorcondition:$parameters.monitorproperties:monitorname:$parameters.name + "-" + $parameters.monitor.monitorname + "-gslbmon"type:$parameters.monitor.typedestip?:$parameters.monitor.destipdestport?:$parameters.monitor.destporthttprequest?:$parameters.monitor.httprequestsend?:$parameters.monitor.sendcustomheaders?:$parameters.monitor.customheadersrespcodes?:$parameters.monitor.respcodesrecv?:$parameters.monitor.recvlrtm?:$parameters.monitor.lrtmsecure?:$parameters.monitor.secureinterval?:$parameters.monitor.intervalinterval_units?:$parameters.monitor.interval_unitsresptimeout?:$parameters.monitor.resptimeoutretries?:$parameters.monitor.retriesdowntime?:$parameters.monitor.downtime-name:gslb-vserver-comptype:ns::gslbvserverdescription:Creates a GSLB VServer config objectproperties:name:$parameters.name + "-gslbvserver"servicetype:$parameters.protocollbmethod:$parameters.algorithmcomponents:-name:gslb-domain-comptype:ns::gslbvserver_domain_bindingproperties:name:$parent.properties.namedomainname:$parameters.domain-namettl:$parameters.ttl-name:gslb-site-comptype:ns::gslbsitedescription:Creates a GSLB Site config objectrepeat:$parameters.sitesrepeat-item:siteproperties:sitename:$parameters.name + "-" + $site.name + "-gslbsite"siteipaddress:$site.ipaddresspublicip?:$site.public-ipaddresscomponents:-name:gslb-service-comptype:ns::gslbservicedescription:Creates a GSLB Serviceproperties:servicename:$parameters.name + "-" + $site.name + "-gslbservice"ip:$site.virtual-ipservicetype:$parameters.protocolport:$site.virtual-portsitename:$parent.properties.sitenamecomponents:-name:gslb-vserver-service-binding-comptype:ns::gslbvserver_gslbservice_bindingdescription:Creates a Binding between the GSLB vserver and the GSLB Serviceproperties:name:$components.gslb-vserver-comp.properties.nameservicename:$parent.properties.servicename-name:gslb-service-monitor-binding-comptype:ns::gslbservice_lbmonitor_bindingdescription:Creates a Binding between the GSLB service and the GSLB monitorcondition:$parameters.monitorproperties:servicename:$parent.properties.servicenamemonitor_name:$components.gslb-monitor-comp.properties.monitorname