{"type":"api","title":"Update Organization Login Security","meta":{"id":"/apps/pubhub/media/Meraki-Dashboard-API-v1-Documentation/4723762d29b3380de018ae8c0d8a59499a6523e0/5c63a5d4-9452-397a-85eb-8b6fec45147e","info":{"title":"Meraki Dashboard API","description":"A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.\n\n> Date: 03 July, 2024\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n","contact":{"name":"Meraki Developer Community","url":"https://meraki.io/community"},"version":"1.48.0"},"security":[{"meraki_api_key":[]},{"bearerAuth":[]}],"tags":[{"name":"organizations"},{"name":"networks"},{"name":"devices"},{"name":"insight"},{"name":"wireless"},{"name":"camera"},{"name":"appliance"},{"name":"switch"},{"name":"cellularGateway"},{"name":"sm"},{"name":"sensor"},{"name":"administered"},{"name":"accessControlLists"},{"name":"accessPolicies"},{"name":"acls"},{"name":"actionBatches"},{"name":"adaptivePolicy"},{"name":"addresses"},{"name":"admins"},{"name":"airMarshal"},{"name":"alertTypes"},{"name":"alerts"},{"name":"alternateManagementInterface"},{"name":"analytics"},{"name":"apiRequests"},{"name":"apnsCert"},{"name":"appliances"},{"name":"applicationCategories"},{"name":"applicationUsage"},{"name":"applications"},{"name":"areas"},{"name":"arpInspection"},{"name":"arpTable"},{"name":"artifacts"},{"name":"assets"},{"name":"assignments"},{"name":"authenticationToken"},{"name":"availabilities"},{"name":"bandwidthUsageHistory"},{"name":"bgp"},{"name":"billing"},{"name":"bluetooth"},{"name":"bluetoothClients"},{"name":"bonjourForwarding"},{"name":"boundaries"},{"name":"brandingPolicies"},{"name":"bulk"},{"name":"bulkUpdate"},{"name":"byBoundary"},{"name":"byClient"},{"name":"byDevice"},{"name":"byEnergyUsage"},{"name":"byInterval"},{"name":"byMetric"},{"name":"byModel"},{"name":"byNetwork"},{"name":"byStatus"},{"name":"bySwitch"},{"name":"byType"},{"name":"byUsage"},{"name":"byUtilization"},{"name":"bypassActivationLockAttempts"},{"name":"cableTest"},{"name":"callbacks"},{"name":"categories"},{"name":"cellular"},{"name":"cellularFirewallRules"},{"name":"cellularUsageHistory"},{"name":"certs"},{"name":"changeHistory"},{"name":"channelUtilization"},{"name":"channelUtilizationHistory"},{"name":"claim"},{"name":"claimKey"},{"name":"clientCountHistory"},{"name":"clients"},{"name":"cloudMonitoring"},{"name":"commands"},{"name":"compliance"},{"name":"configTemplates"},{"name":"configurationChanges"},{"name":"configure"},{"name":"configuredDevices"},{"name":"connectionStats"},{"name":"connectivity"},{"name":"connectivityEvents"},{"name":"connectivityMonitoringDestinations"},{"name":"contentFiltering"},{"name":"coterm"},{"name":"current"},{"name":"customAnalytics"},{"name":"customPerformanceClasses"},{"name":"dataRateHistory"},{"name":"delegated"},{"name":"desktopLogs"},{"name":"details"},{"name":"detections"},{"name":"deviceCommandLogs"},{"name":"deviceProfiles"},{"name":"deviceTypeGroupPolicies"},{"name":"dhcp"},{"name":"dhcpServerPolicy"},{"name":"dscpTaggingOptions"},{"name":"dscpToCosMappings"},{"name":"eapOverride"},{"name":"earlyAccess"},{"name":"electronicShelfLabel"},{"name":"entitlements"},{"name":"ethernet"},{"name":"eventTypes"},{"name":"events"},{"name":"exportEvents"},{"name":"failedConnections"},{"name":"features"},{"name":"fields"},{"name":"firewall"},{"name":"firewalledServices"},{"name":"firmware"},{"name":"firmwareUpgrades"},{"name":"floorPlans"},{"name":"groupPolicies"},{"name":"groups"},{"name":"health"},{"name":"healthByTime"},{"name":"historical"},{"name":"history"},{"name":"hotspot20"},{"name":"httpServers"},{"name":"identities"},{"name":"identityPsks"},{"name":"idps"},{"name":"imports"},{"name":"inboundCellularFirewallRules"},{"name":"inboundFirewallRules"},{"name":"interfaces"},{"name":"internetPolicies"},{"name":"intrusion"},{"name":"inventory"},{"name":"ipv6"},{"name":"l3FirewallRules"},{"name":"l7FirewallRules"},{"name":"lan"},{"name":"latencyHistory"},{"name":"latencyStats"},{"name":"latest"},{"name":"licenses"},{"name":"licensing"},{"name":"lines"},{"name":"linkAggregations"},{"name":"linkLayer"},{"name":"live"},{"name":"liveTools"},{"name":"lldpCdp"},{"name":"loginSecurity"},{"name":"logs"},{"name":"lossAndLatencyHistory"},{"name":"malware"},{"name":"managementInterface"},{"name":"manufacturers"},{"name":"me"},{"name":"merakiAuthUsers"},{"name":"meshStatuses"},{"name":"models"},{"name":"monitor"},{"name":"monitoredMediaServers"},{"name":"mqttBrokers"},{"name":"mtu"},{"name":"multicast"},{"name":"netflow"},{"name":"networkAdapters"},{"name":"networkHealth"},{"name":"objectDetectionModels"},{"name":"onboarding"},{"name":"oneToManyNatRules"},{"name":"oneToOneNatRules"},{"name":"openapiSpec"},{"name":"optIns"},{"name":"order"},{"name":"ospf"},{"name":"overview"},{"name":"packetLoss"},{"name":"packets"},{"name":"payloadTemplates"},{"name":"performance"},{"name":"performanceHistory"},{"name":"permissions"},{"name":"pii"},{"name":"piiKeys"},{"name":"ping"},{"name":"pingDevice"},{"name":"policies"},{"name":"policy"},{"name":"policyObjects"},{"name":"portForwardingRules"},{"name":"portSchedules"},{"name":"ports"},{"name":"power"},{"name":"powerModules"},{"name":"prefixes"},{"name":"prepare"},{"name":"priorities"},{"name":"profiles"},{"name":"provisioning"},{"name":"qosRules"},{"name":"qualityAndRetention"},{"name":"qualityRetentionProfiles"},{"name":"radio"},{"name":"readings"},{"name":"recent"},{"name":"relationships"},{"name":"rendezvousPoints"},{"name":"requests"},{"name":"responseCodes"},{"name":"restrictions"},{"name":"rfProfiles"},{"name":"roles"},{"name":"rollbacks"},{"name":"routing"},{"name":"rules"},{"name":"saml"},{"name":"samlRoles"},{"name":"schedules"},{"name":"sdwan"},{"name":"search"},{"name":"security"},{"name":"securityCenters"},{"name":"seen"},{"name":"sense"},{"name":"sentry"},{"name":"servers"},{"name":"settings"},{"name":"signalQualityHistory"},{"name":"sims"},{"name":"singleLan"},{"name":"siteToSiteVpn"},{"name":"smDevicesForKey"},{"name":"smOwnersForKey"},{"name":"snmp"},{"name":"softwares"},{"name":"splash"},{"name":"splashAuthorizationStatus"},{"name":"splashLoginAttempts"},{"name":"ssids"},{"name":"stacks"},{"name":"staged"},{"name":"stages"},{"name":"staticRoutes"},{"name":"statics"},{"name":"stats"},{"name":"status"},{"name":"statuses"},{"name":"stormControl"},{"name":"stp"},{"name":"subnetPool"},{"name":"subnets"},{"name":"subscription"},{"name":"subscriptions"},{"name":"summary"},{"name":"swaps"},{"name":"switches"},{"name":"syslogServers"},{"name":"targetGroups"},{"name":"themes"},{"name":"thirdPartyVPNPeers"},{"name":"throughputTest"},{"name":"top"},{"name":"topology"},{"name":"traffic"},{"name":"trafficAnalysis"},{"name":"trafficHistory"},{"name":"trafficShaping"},{"name":"trustedAccessConfigs"},{"name":"trustedServers"},{"name":"upgrades"},{"name":"uplink"},{"name":"uplinkBandwidth"},{"name":"uplinkSelection"},{"name":"uplinks"},{"name":"uplinksLossAndLatency"},{"name":"usage"},{"name":"usageHistories"},{"name":"usageHistory"},{"name":"userAccessDevices"},{"name":"users"},{"name":"v4"},{"name":"video"},{"name":"videoLink"},{"name":"vlanAssignments"},{"name":"vlanProfiles"},{"name":"vlans"},{"name":"vmx"},{"name":"vpn"},{"name":"vpnExclusions"},{"name":"vpnFirewallRules"},{"name":"vppAccounts"},{"name":"wakeOnLan"},{"name":"warmSpare"},{"name":"warnings"},{"name":"webhookTests"},{"name":"webhooks"},{"name":"wirelessProfiles"},{"name":"wlanLists"},{"name":"zones"}],"x-parser-conf":{"overview":{"markdownPath":"docs/overview.md"},"theme":"meraki","serverConfig":true,"meta":{"useProxy":true},"httpBearer":{"bearerToken":"75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6"},"labelConfig":{"endpoint":{"field":"operationId","format":"startCase"}},"groupBy":{"$remoteModule":"config/group_platform.js"},"sortBy":{"$remoteModule":"config/sort_by.js"},"exampleAsDefault":true,"expand":3,"sampleCode":{"python":{"folder":"meraki/sdk/python","name":"Meraki Python Library","highlight":"python"}},"variables":{"organizationId":"1215707","networkId":"N_784752235069315754","serial":"QBSB-VQ3J-XZ54"}},"openapi":"3.0.1","servers":[{"url":"https://api.meraki.com/{basePath}","variables":{"basePath":{"default":"api/v1"}}}],"securitySchemes":{"meraki_api_key":{"type":"apiKey","name":"X-Cisco-Meraki-API-Key","in":"header"},"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key"}}},"spec":{"description":"Update the login security settings for an organization","operationId":"updateOrganizationLoginSecurity","parameters":[{"name":"organizationId","in":"path","description":"Organization ID","schema":{"type":"string"},"required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enforcePasswordExpiration":{"type":"boolean","description":"Boolean indicating whether users are forced to change their password every X number of days."},"passwordExpirationDays":{"type":"integer","description":"Number of days after which users will be forced to change their password."},"enforceDifferentPasswords":{"type":"boolean","description":"Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords."},"numDifferentPasswords":{"type":"integer","description":"Number of recent passwords that new password must be distinct from."},"enforceStrongPasswords":{"type":"boolean","description":"Boolean indicating whether users will be forced to choose strong passwords for their accounts. Strong passwords are at least 8 characters that contain 3 of the following: number, uppercase letter, lowercase letter, and symbol"},"enforceAccountLockout":{"type":"boolean","description":"Boolean indicating whether users' Dashboard accounts will be locked out after a specified number of consecutive failed login attempts."},"accountLockoutAttempts":{"type":"integer","description":"Number of consecutive failed login attempts after which users' accounts will be locked."},"enforceIdleTimeout":{"type":"boolean","description":"Boolean indicating whether users will be logged out after being idle for the specified number of minutes."},"idleTimeoutMinutes":{"type":"integer","description":"Number of minutes users can remain idle before being logged out of their accounts."},"enforceTwoFactorAuth":{"type":"boolean","description":"Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to Dashboard. This code will be sent to their mobile phone via SMS, or can be generated by the authenticator application."},"enforceLoginIpRanges":{"type":"boolean","description":"Boolean indicating whether organization will restrict access to Dashboard (including the API) from certain IP addresses."},"loginIpRanges":{"type":"array","items":{"type":"string"},"description":"List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."},"apiAuthentication":{"type":"object","properties":{"ipRestrictionsForKeys":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Boolean indicating whether the organization will restrict API key (not Dashboard GUI) usage to a specific list of IP addresses or CIDR ranges."},"ranges":{"type":"array","items":{"type":"string"},"description":"List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."}},"description":"Details for API-only IP restrictions."}},"description":"Details for indicating whether organization will restrict access to API (but not Dashboard) to certain IP addresses."}},"example":{"enforcePasswordExpiration":true,"passwordExpirationDays":90,"enforceDifferentPasswords":true,"numDifferentPasswords":3,"enforceStrongPasswords":true,"enforceAccountLockout":true,"accountLockoutAttempts":3,"enforceIdleTimeout":true,"idleTimeoutMinutes":30,"enforceTwoFactorAuth":true,"enforceLoginIpRanges":true,"loginIpRanges":["192.195.83.1","192.195.83.255"],"apiAuthentication":{"ipRestrictionsForKeys":{"enabled":true,"ranges":["192.195.83.1","192.168.33.33"]}}}}}},"required":false},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","properties":{"enforcePasswordExpiration":{"type":"boolean","description":"Boolean indicating whether users are forced to change their password every X number of days."},"passwordExpirationDays":{"type":"integer","description":"Number of days after which users will be forced to change their password."},"enforceDifferentPasswords":{"type":"boolean","description":"Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords."},"numDifferentPasswords":{"type":"integer","description":"Number of recent passwords that new password must be distinct from."},"enforceStrongPasswords":{"type":"boolean","description":"Boolean indicating whether users will be forced to choose strong passwords for their accounts. Strong passwords are at least 8 characters that contain 3 of the following: number, uppercase letter, lowercase letter, and symbol"},"enforceAccountLockout":{"type":"boolean","description":"Boolean indicating whether users' Dashboard accounts will be locked out after a specified number of consecutive failed login attempts."},"accountLockoutAttempts":{"type":"integer","description":"Number of consecutive failed login attempts after which users' accounts will be locked."},"enforceIdleTimeout":{"type":"boolean","description":"Boolean indicating whether users will be logged out after being idle for the specified number of minutes."},"idleTimeoutMinutes":{"type":"integer","description":"Number of minutes users can remain idle before being logged out of their accounts."},"enforceTwoFactorAuth":{"type":"boolean","description":"Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to Dashboard. This code will be sent to their mobile phone via SMS, or can be generated by the authenticator application."},"enforceLoginIpRanges":{"type":"boolean","description":"Boolean indicating whether organization will restrict access to Dashboard (including the API) from certain IP addresses."},"loginIpRanges":{"type":"array","items":{"type":"string"},"description":"List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."},"apiAuthentication":{"type":"object","properties":{"ipRestrictionsForKeys":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Boolean indicating whether the organization will restrict API key (not Dashboard GUI) usage to a specific list of IP addresses or CIDR ranges."},"ranges":{"type":"array","items":{"type":"string"},"description":"List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."}},"description":"Details for API-only IP restrictions."}},"description":"Details for indicating whether organization will restrict access to API (but not Dashboard) to certain IP addresses."}}},"example":{"enforcePasswordExpiration":true,"passwordExpirationDays":90,"enforceDifferentPasswords":true,"numDifferentPasswords":3,"enforceStrongPasswords":true,"enforceAccountLockout":true,"accountLockoutAttempts":3,"enforceIdleTimeout":true,"idleTimeoutMinutes":30,"enforceTwoFactorAuth":true,"enforceLoginIpRanges":true,"loginIpRanges":["192.195.83.1","192.195.83.255"],"apiAuthentication":{"ipRestrictionsForKeys":{"enabled":true,"ranges":["192.195.83.1","192.168.33.33"]}}}}}}},"summary":"Update the login security settings for an organization","tags":["organizations","configure","loginSecurity"],"__originalOperationId":"updateOrganizationLoginSecurity","security":[{"meraki_api_key":[]},{"bearerAuth":[]}],"method":"put","path":"/organizations/{organizationId}/loginSecurity","sampleCode":{"Meraki Python Library":{"code":"import meraki\n\n# Defining your API key as a variable in source code is discouraged.\n# This API key is for a read-only docs-specific environment.\n# In your own code, use an environment variable as shown under the Usage section\n# @ https://github.com/meraki/dashboard-api-python/\n\nAPI_KEY = '75dd5334bef4d2bc96f26138c163c0a3fa0b5ca6'\n\ndashboard = meraki.DashboardAPI(API_KEY)\n\norganization_id = '549236'\n\nresponse = dashboard.organizations.updateOrganizationLoginSecurity(\n organization_id, \n enforcePasswordExpiration=True, \n passwordExpirationDays=90, \n enforceDifferentPasswords=True, \n numDifferentPasswords=3, \n enforceStrongPasswords=True, \n enforceAccountLockout=True, \n accountLockoutAttempts=3, \n enforceIdleTimeout=True, \n idleTimeoutMinutes=30, \n enforceTwoFactorAuth=True, \n enforceLoginIpRanges=True, \n loginIpRanges=['192.195.83.1', '192.195.83.255'], \n apiAuthentication={'ipRestrictionsForKeys': {'enabled': True, 'ranges': ['192.195.83.1', '192.168.33.33']}}\n)\n\nprint(response)","highlight":"python"}}}}