[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71CJS5KSXAE0D2MADRV2J1S":3,"skill-same:01M71CJS5KSXAE0D2MADRV2J1S":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":68,"commitSha":69,"skillDirectory":70,"forksCount":14,"repositoryHtmlUrl":71,"repositoryHomepageUrl":6,"ownerHtmlUrl":72,"ownerBlogUrl":6,"ownerDescription":73,"updatedAt":74,"install":75,"resources":88},"01M71CJS5KSXAE0D2MADRV2J1S","identity-okta-audit",null,"This skill covers implementing Okta as a centralized identity provider for cloud environments, configuring SSO integration with AWS, Azure, and GCP, deploying phishing- resistant MFA with Okta FastPass, managing lifecycle automation for user provisioning and deprovisioning, and enforcing adaptive access policies based on device posture and risk signals.","DCx7C5\u002Fai-marketplace","DCx7C5","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42419559?v=4","01M71C01G2AZV3NTNGWAWSHJPP","DC","01M71C01GQW6G50S2BYMS7PP3E",0,"MIT","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fidentity\u002Fokta\u002Faudit\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"identity okta audit","identity","audit","okta","Bash","implementing","sonnet","environments","de","signals","cm","read","access","security","phishing-resistant-MFA","t1566","t1078","gcp","cloud-security","cybersecurity","2026-11-10 10:12:30",false,"---\nname: identity-okta-audit\ndescription: This skill covers implementing Okta as a centralized identity provider for cloud environments, configuring SSO integration with AWS, Azure, and GCP, deploying phishing- resistant MFA with Okta FastPass, managing lifecycle automation for user provisioning and deprovisioning, and enforcing adaptive access policies based on device posture and risk signals.\ndomain: cybersecurity\nsubdomain: cloud-security\ntags:\n- okta\n- cloud-identity\n- single-sign-on\n- phishing-resistant-mfa\n- identity-lifecycle\nnist_csf:\n- PR.IR-01\n- ID.AM-08\n- GV.SC-06\n- DE.CM-01\nmodel: sonnet\nmaxTurns: 20\ntools: [Read, Bash, Glob, Grep]\nmitre_attack:\n- T1078.004\n- T1566\ncapec: []\n---\n\n# Managing Cloud Identity with Okta\n\n## When to Use\n\n- When centralizing authentication across AWS, Azure, and GCP console access through a single identity provider\n- When implementing phishing-resistant MFA to replace SMS or TOTP-based authentication\n- When automating user provisioning and deprovisioning across cloud platforms and SaaS applications\n- When enforcing adaptive access policies based on device compliance, user risk, and network context\n- When auditing identity-related security controls for SOC 2 or zero trust compliance\n\n**Do not use** for cloud-native identity management without external IdP requirements (use AWS IAM Identity Center or Azure AD natively), for application-level authorization logic, or for secrets management (see implementing-secrets-management-with-vault).\n\n## Prerequisites\n\n- Okta organization with admin console access and appropriate license tier (Workforce Identity)\n- AWS, Azure, and GCP accounts configured for SAML or OIDC federation\n- Okta Universal Directory populated with user identities synced from HR system or Active Directory\n- Device management platform (Intune, Jamf) for device trust integration\n\n## Workflow\n\n### Step 1: Configure SSO Integration with Cloud Providers\n\nSet up SAML 2.0 or OIDC federation between Okta and each cloud provider console for centralized authentication.\n\n```\nOkta AWS SSO Integration (SAML 2.0):\n1. In Okta Admin Console: Applications > Add Application > AWS Account Federation\n2. Configure SAML settings:\n   - Single Sign-On URL: https:\u002F\u002Fsignin.aws.amazon.com\u002Fsaml\n   - Audience URI: urn:amazon:webservices\n   - Attribute Statements:\n     - https:\u002F\u002Faws.amazon.com\u002FSAML\u002FAttributes\u002FRoleSessionName -> user.email\n     - https:\u002F\u002Faws.amazon.com\u002FSAML\u002FAttributes\u002FRole -> appuser.awsRoles\n3. Download Okta metadata XML\n4. In AWS IAM: Create Identity Provider (SAML) with Okta metadata\n5. Create IAM roles with trust policy referencing the Okta SAML provider\n\nAWS IAM Trust Policy:\n{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [{\n    \"Effect\": \"Allow\",\n    \"Principal\": {\n      \"Federated\": \"arn:aws:iam::123456789012:saml-provider\u002FOkta\"\n    },\n    \"Action\": \"sts:AssumeRoleWithSAML\",\n    \"Condition\": {\n      \"StringEquals\": {\n        \"SAML:aud\": \"https:\u002F\u002Fsignin.aws.amazon.com\u002Fsaml\"\n      }\n    }\n  }]\n}\n```\n\n```bash\n# Azure AD integration via OIDC\n# Configure Okta as external IdP in Azure AD\naz ad sp create --id \u003Cokta-app-client-id>\n\n# GCP integration via Workforce Identity Federation\ngcloud iam workforce-pools create okta-pool \\\n  --organization=123456789 \\\n  --location=global \\\n  --display-name=\"Okta Workforce Pool\"\n\ngcloud iam workforce-pools providers create-oidc okta-provider \\\n  --workforce-pool=okta-pool \\\n  --location=global \\\n  --issuer-uri=\"https:\u002F\u002Fcompany.okta.com\u002Foauth2\u002Fdefault\" \\\n  --client-id=\"gcp-workforce-client-id\" \\\n  --attribute-mapping=\"google.subject=assertion.sub,google.groups=assertion.groups\"\n```\n\n### Step 2: Deploy Phishing-Resistant MFA\n\nEnable Okta FastPass and FIDO2 WebAuthn authenticators as phishing-resistant MFA factors. Configure policies requiring these factors for privileged cloud access.\n\n```\nOkta MFA Policy Configuration:\n1. Security > Authenticators:\n   - Enable Okta Verify (FastPass) - Phishing resistant\n   - Enable FIDO2 (WebAuthn) - Hardware security keys\n   - Disable SMS and Voice (phishable)\n\n2. Authentication Policies > Cloud Admin Access:\n   - Rule: \"Require phishing-resistant MFA for AWS\u002FAzure\u002FGCP admin roles\"\n   - Factor Types: Okta FastPass OR FIDO2 WebAuthn\n   - Re-authentication: Every 4 hours for admin consoles\n   - Session Lifetime: 8 hours maximum\n\n3. Device Trust Policy:\n   - Require managed device for cloud admin access\n   - Require device encryption enabled\n   - Require OS version within 90 days of latest\n```\n\n### Step 3: Automate User Lifecycle Management\n\nConfigure SCIM provisioning to automatically create and deactivate user accounts in cloud services when employees join, change roles, or leave the organization.\n\n```\nOkta Lifecycle Management:\n1. Provisioning Configuration (AWS IAM Identity Center):\n   - Enable SCIM provisioning to AWS IAM Identity Center\n   - Map Okta groups to AWS permission sets\n   - Configure attribute mapping: email, displayName, groups\n\n2. Automation Rules:\n   - On User Activation: Provision to AWS, Azure, GCP based on department group\n   - On Group Change: Update cloud role assignments within 15 minutes\n   - On User Deactivation: Immediately revoke all cloud sessions and permissions\n   - On Suspension: Disable cloud accounts, preserve data for 30 days\n\n3. Offboarding Workflow:\n   - HR triggers deactivation in Workday\u002FBambooHR\n   - Okta receives SCIM event, deactivates user in Universal Directory\n   - All SSO sessions terminated across AWS, Azure, GCP\n   - SCIM deprovisioning removes user from cloud platforms\n   - Audit log entry created for compliance evidence\n```\n\n### Step 4: Configure Adaptive Access Policies\n\nCreate context-aware authentication policies that evaluate risk signals including device posture, network location, user behavior, and threat intelligence.\n\n```\nAdaptive Access Policy Examples:\n\nPolicy 1: \"High-Risk Cloud Admin Access\"\n  IF: User is in \"Cloud Admins\" group\n  AND: Accessing AWS Console, Azure Portal, or GCP Console\n  THEN:\n    - Require phishing-resistant MFA (FastPass or FIDO2)\n    - Require managed and compliant device\n    - Block access from anonymous proxies or Tor\n    - Session duration: 4 hours\n    - Re-authentication: Every 2 hours for sensitive actions\n\nPolicy 2: \"Standard Cloud Developer Access\"\n  IF: User is in \"Developers\" group\n  AND: Accessing non-admin cloud resources\n  THEN:\n    - Require any MFA factor (FastPass, TOTP, or push notification)\n    - Allow unmanaged devices with step-up verification\n    - Session duration: 8 hours\n    - Block access from countries outside operating regions\n\nPolicy 3: \"Emergency Break-Glass Access\"\n  IF: User is in \"Emergency Admins\" group\n  AND: Break-glass request approved in ServiceNow\n  THEN:\n    - Require FIDO2 hardware key only\n    - Log all actions to immutable audit trail\n    - Session duration: 1 hour maximum\n    - Notify SOC team via automated alert\n```\n\n### Step 5: Monitor Identity Threats with Okta ThreatInsight\n\nEnable Okta ThreatInsight and system log monitoring to detect credential stuffing, account takeover, and suspicious authentication patterns.\n\n```bash\n# Query Okta System Log for security events via API\ncurl -s -H \"Authorization: SSWS ${OKTA_API_TOKEN}\" \\\n  \"https:\u002F\u002Fcompany.okta.com\u002Fapi\u002Fv1\u002Flogs?filter=eventType+eq+%22user.session.start%22+and+outcome.result+eq+%22FAILURE%22&since=$(date -d '-24 hours' +%Y-%m-%dT%H:%M:%SZ)\" | \\\n  jq '.[] | {time: .published, actor: .actor.displayName, ip: .client.ipAddress, result: .outcome.reason}'\n\n# Export Okta logs to SIEM via Log Streaming\n# Configure in Okta Admin > Reports > Log Streaming\n# Supported targets: Splunk Cloud, AWS EventBridge, Datadog\n```\n\n## Key Concepts\n\n| Term | Definition |\n|------|------------|\n| Okta FastPass | Phishing-resistant passwordless MFA that cryptographically binds authentication to the device and origin, preventing real-time phishing attacks |\n| SCIM Provisioning | System for Cross-domain Identity Management protocol that automates user creation, update, and deletion across cloud applications |\n| Universal Directory | Okta's cloud-based identity store that aggregates user profiles from multiple sources including AD, LDAP, and HR systems |\n| Adaptive MFA | Context-aware authentication that adjusts MFA requirements based on risk signals such as device trust, location, and behavior |\n| Workforce Identity | Okta product tier focused on employee and contractor identity management including SSO, MFA, and lifecycle management |\n| ThreatInsight | Okta's threat detection service that identifies and blocks credential stuffing, password spraying, and bot-driven authentication attacks |\n| Device Trust | Integration with MDM platforms to verify device compliance (encryption, OS version, management status) before granting access |\n\n## Tools & Systems\n\n- **Okta Identity Engine**: Core identity platform providing SSO, MFA, lifecycle management, and adaptive access policies\n- **Okta Workflows**: No-code automation platform for building identity-driven workflows across cloud services\n- **Okta Advanced Server Access**: SSH and RDP access management for cloud servers using short-lived certificates\n- **AWS IAM Identity Center**: AWS-native SSO service that integrates with Okta as an external identity provider\n- **Azure AD External Identities**: Azure service for federating with Okta for B2B and workforce scenarios\n\n## Common Scenarios\n\n### Scenario: Automating Offboarding Across Multi-Cloud Environment\n\n**Context**: An employee with AWS admin, Azure contributor, and GCP editor access leaves the company. The organization needs to revoke all access within 15 minutes of HR processing the termination.\n\n**Approach**:\n1. HR deactivates the employee in Workday, triggering a SCIM event to Okta\n2. Okta immediately deactivates the user in Universal Directory, terminating all active SSO sessions\n3. SCIM deprovisioning removes the user from AWS IAM Identity Center, Azure AD, and GCP Workforce Identity\n4. Okta Workflow triggers additional cleanup: revoke OAuth tokens, remove from Slack, disable VPN certificate\n5. An audit log entry is created with timestamps for each deprovisioning action as compliance evidence\n6. SOC receives notification to verify no residual access exists through direct IAM users or service accounts\n\n**Pitfalls**: Not deprovisioning direct IAM users or service accounts created outside of Okta federation leaves backdoor access. SCIM propagation delays in some services can leave access active for minutes after Okta deactivation.\n\n## Output Format\n\n```\nCloud Identity Security Report\n================================\nIdentity Provider: Okta (company.okta.com)\nReport Date: 2025-02-23\n\nUSER STATISTICS:\n  Total Users: 2,450\n  Active: 2,312 | Suspended: 45 | Deactivated: 93\n  MFA Enrolled: 2,298\u002F2,312 (99.4%)\n  Phishing-Resistant MFA: 812\u002F2,312 (35.1%)\n\nCLOUD SSO COVERAGE:\n  AWS Console (45 accounts):     100% via SAML federation\n  Azure Portal (8 subscriptions): 100% via OIDC federation\n  GCP Console (3 projects):       100% via Workforce Identity\n\nAUTHENTICATION EVENTS (Last 30 Days):\n  Total Logins: 145,234\n  MFA Challenges: 89,456\n  Failed Logins: 3,456\n  Account Lockouts: 23\n  ThreatInsight Blocks: 12,345 (credential stuffing attempts)\n\nLIFECYCLE EVENTS:\n  Users Provisioned: 45\n  Users Deprovisioned: 23\n  Average Deprovisioning Time: 8 minutes\n  Orphan Accounts Detected: 3 (direct IAM users not managed by Okta)\n\nRECOMMENDATIONS:\n  [HIGH] Increase phishing-resistant MFA adoption from 35% to 80%\n  [HIGH] Remediate 3 orphan cloud accounts not managed by Okta\n  [MEDIUM] Reduce session duration for admin roles from 8h to 4h\n```\n","# Managing Cloud Identity with Okta\n\n## When to Use\n\n- When centralizing authentication across AWS, Azure, and GCP console access through a single identity provider\n- When implementing phishing-resistant MFA to replace SMS or TOTP-based authentication\n- When automating user provisioning and deprovisioning across cloud platforms and SaaS applications\n- When enforcing adaptive access policies based on device compliance, user risk, and network context\n- When auditing identity-related security controls for SOC 2 or zero trust compliance\n\n**Do not use** for cloud-native identity management without external IdP requirements (use AWS IAM Identity Center or Azure AD natively), for application-level authorization logic, or for secrets management (see implementing-secrets-management-with-vault).\n\n## Prerequisites\n\n- Okta organization with admin console access and appropriate license tier (Workforce Identity)\n- AWS, Azure, and GCP accounts configured for SAML or OIDC federation\n- Okta Universal Directory populated with user identities synced from HR system or Active Directory\n- Device management platform (Intune, Jamf) for device trust integration\n\n## Workflow\n\n### Step 1: Configure SSO Integration with Cloud Providers\n\nSet up SAML 2.0 or OIDC federation between Okta and each cloud provider console for centralized authentication.\n\n```\nOkta AWS SSO Integration (SAML 2.0):\n1. In Okta Admin Console: Applications > Add Application > AWS Account Federation\n2. Configure SAML settings:\n   - Single Sign-On URL: https:\u002F\u002Fsignin.aws.amazon.com\u002Fsaml\n   - Audience URI: urn:amazon:webservices\n   - Attribute Statements:\n     - https:\u002F\u002Faws.amazon.com\u002FSAML\u002FAttributes\u002FRoleSessionName -> user.email\n     - https:\u002F\u002Faws.amazon.com\u002FSAML\u002FAttributes\u002FRole -> appuser.awsRoles\n3. Download Okta metadata XML\n4. In AWS IAM: Create Identity Provider (SAML) with Okta metadata\n5. Create IAM roles with trust policy referencing the Okta SAML provider\n\nAWS IAM Trust Policy:\n{\n  \"Version\": \"2012-10-17\",\n  \"Statement\": [{\n    \"Effect\": \"Allow\",\n    \"Principal\": {\n      \"Federated\": \"arn:aws:iam::123456789012:saml-provider\u002FOkta\"\n    },\n    \"Action\": \"sts:AssumeRoleWithSAML\",\n    \"Condition\": {\n      \"StringEquals\": {\n        \"SAML:aud\": \"https:\u002F\u002Fsignin.aws.amazon.com\u002Fsaml\"\n      }\n    }\n  }]\n}\n```\n\n```bash\n# Azure AD integration via OIDC\n# Configure Okta as external IdP in Azure AD\naz ad sp create --id \u003Cokta-app-client-id>\n\n# GCP integration via Workforce Identity Federation\ngcloud iam workforce-pools create okta-pool \\\n  --organization=123456789 \\\n  --location=global \\\n  --display-name=\"Okta Workforce Pool\"\n\ngcloud iam workforce-pools providers create-oidc okta-provider \\\n  --workforce-pool=okta-pool \\\n  --location=global \\\n  --issuer-uri=\"https:\u002F\u002Fcompany.okta.com\u002Foauth2\u002Fdefault\" \\\n  --client-id=\"gcp-workforce-client-id\" \\\n  --attribute-mapping=\"google.subject=assertion.sub,google.groups=assertion.groups\"\n```\n\n### Step 2: Deploy Phishing-Resistant MFA\n\nEnable Okta FastPass and FIDO2 WebAuthn authenticators as phishing-resistant MFA factors. Configure policies requiring these factors for privileged cloud access.\n\n```\nOkta MFA Policy Configuration:\n1. Security > Authenticators:\n   - Enable Okta Verify (FastPass) - Phishing resistant\n   - Enable FIDO2 (WebAuthn) - Hardware security keys\n   - Disable SMS and Voice (phishable)\n\n2. Authentication Policies > Cloud Admin Access:\n   - Rule: \"Require phishing-resistant MFA for AWS\u002FAzure\u002FGCP admin roles\"\n   - Factor Types: Okta FastPass OR FIDO2 WebAuthn\n   - Re-authentication: Every 4 hours for admin consoles\n   - Session Lifetime: 8 hours maximum\n\n3. Device Trust Policy:\n   - Require managed device for cloud admin access\n   - Require device encryption enabled\n   - Require OS version within 90 days of latest\n```\n\n### Step 3: Automate User Lifecycle Management\n\nConfigure SCIM provisioning to automatically create and deactivate user accounts in cloud services when employees join, change roles, or leave the organization.\n\n```\nOkta Lifecycle Management:\n1. Provisioning Configuration (AWS IAM Identity Center):\n   - Enable SCIM provisioning to AWS IAM Identity Center\n   - Map Okta groups to AWS permission sets\n   - Configure attribute mapping: email, displayName, groups\n\n2. Automation Rules:\n   - On User Activation: Provision to AWS, Azure, GCP based on department group\n   - On Group Change: Update cloud role assignments within 15 minutes\n   - On User Deactivation: Immediately revoke all cloud sessions and permissions\n   - On Suspension: Disable cloud accounts, preserve data for 30 days\n\n3. Offboarding Workflow:\n   - HR triggers deactivation in Workday\u002FBambooHR\n   - Okta receives SCIM event, deactivates user in Universal Directory\n   - All SSO sessions terminated across AWS, Azure, GCP\n   - SCIM deprovisioning removes user from cloud platforms\n   - Audit log entry created for compliance evidence\n```\n\n### Step 4: Configure Adaptive Access Policies\n\nCreate context-aware authentication policies that evaluate risk signals including device posture, network location, user behavior, and threat intelligence.\n\n```\nAdaptive Access Policy Examples:\n\nPolicy 1: \"High-Risk Cloud Admin Access\"\n  IF: User is in \"Cloud Admins\" group\n  AND: Accessing AWS Console, Azure Portal, or GCP Console\n  THEN:\n    - Require phishing-resistant MFA (FastPass or FIDO2)\n    - Require managed and compliant device\n    - Block access from anonymous proxies or Tor\n    - Session duration: 4 hours\n    - Re-authentication: Every 2 hours for sensitive actions\n\nPolicy 2: \"Standard Cloud Developer Access\"\n  IF: User is in \"Developers\" group\n  AND: Accessing non-admin cloud resources\n  THEN:\n    - Require any MFA factor (FastPass, TOTP, or push notification)\n    - Allow unmanaged devices with step-up verification\n    - Session duration: 8 hours\n    - Block access from countries outside operating regions\n\nPolicy 3: \"Emergency Break-Glass Access\"\n  IF: User is in \"Emergency Admins\" group\n  AND: Break-glass request approved in ServiceNow\n  THEN:\n    - Require FIDO2 hardware key only\n    - Log all actions to immutable audit trail\n    - Session duration: 1 hour maximum\n    - Notify SOC team via automated alert\n```\n\n### Step 5: Monitor Identity Threats with Okta ThreatInsight\n\nEnable Okta ThreatInsight and system log monitoring to detect credential stuffing, account takeover, and suspicious authentication patterns.\n\n```bash\n# Query Okta System Log for security events via API\ncurl -s -H \"Authorization: SSWS ${OKTA_API_TOKEN}\" \\\n  \"https:\u002F\u002Fcompany.okta.com\u002Fapi\u002Fv1\u002Flogs?filter=eventType+eq+%22user.session.start%22+and+outcome.result+eq+%22FAILURE%22&since=$(date -d '-24 hours' +%Y-%m-%dT%H:%M:%SZ)\" | \\\n  jq '.[] | {time: .published, actor: .actor.displayName, ip: .client.ipAddress, result: .outcome.reason}'\n\n# Export Okta logs to SIEM via Log Streaming\n# Configure in Okta Admin > Reports > Log Streaming\n# Supported targets: Splunk Cloud, AWS EventBridge, Datadog\n```\n\n## Key Concepts\n\n| Term | Definition |\n|------|------------|\n| Okta FastPass | Phishing-resistant passwordless MFA that cryptographically binds authentication to the device and origin, preventing real-time phishing attacks |\n| SCIM Provisioning | System for Cross-domain Identity Management protocol that automates user creation, update, and deletion across cloud applications |\n| Universal Directory | Okta's cloud-based identity store that aggregates user profiles from multiple sources including AD, LDAP, and HR systems |\n| Adaptive MFA | Context-aware authentication that adjusts MFA requirements based on risk signals such as device trust, location, and behavior |\n| Workforce Identity | Okta product tier focused on employee and contractor identity management including SSO, MFA, and lifecycle management |\n| ThreatInsight | Okta's threat detection service that identifies and blocks credential stuffing, password spraying, and bot-driven authentication attacks |\n| Device Trust | Integration with MDM platforms to verify device compliance (encryption, OS version, management status) before granting access |\n\n## Tools & Systems\n\n- **Okta Identity Engine**: Core identity platform providing SSO, MFA, lifecycle management, and adaptive access policies\n- **Okta Workflows**: No-code automation platform for building identity-driven workflows across cloud services\n- **Okta Advanced Server Access**: SSH and RDP access management for cloud servers using short-lived certificates\n- **AWS IAM Identity Center**: AWS-native SSO service that integrates with Okta as an external identity provider\n- **Azure AD External Identities**: Azure service for federating with Okta for B2B and workforce scenarios\n\n## Common Scenarios\n\n### Scenario: Automating Offboarding Across Multi-Cloud Environment\n\n**Context**: An employee with AWS admin, Azure contributor, and GCP editor access leaves the company. The organization needs to revoke all access within 15 minutes of HR processing the termination.\n\n**Approach**:\n1. HR deactivates the employee in Workday, triggering a SCIM event to Okta\n2. Okta immediately deactivates the user in Universal Directory, terminating all active SSO sessions\n3. SCIM deprovisioning removes the user from AWS IAM Identity Center, Azure AD, and GCP Workforce Identity\n4. Okta Workflow triggers additional cleanup: revoke OAuth tokens, remove from Slack, disable VPN certificate\n5. An audit log entry is created with timestamps for each deprovisioning action as compliance evidence\n6. SOC receives notification to verify no residual access exists through direct IAM users or service accounts\n\n**Pitfalls**: Not deprovisioning direct IAM users or service accounts created outside of Okta federation leaves backdoor access. SCIM propagation delays in some services can leave access active for minutes after Okta deactivation.\n\n## Output Format\n\n```\nCloud Identity Security Report\n================================\nIdentity Provider: Okta (company.okta.com)\nReport Date: 2025-02-23\n\nUSER STATISTICS:\n  Total Users: 2,450\n  Active: 2,312 | Suspended: 45 | Deactivated: 93\n  MFA Enrolled: 2,298\u002F2,312 (99.4%)\n  Phishing-Resistant MFA: 812\u002F2,312 (35.1%)\n\nCLOUD SSO COVERAGE:\n  AWS Console (45 accounts):     100% via SAML federation\n  Azure Portal (8 subscriptions): 100% via OIDC federation\n  GCP Console (3 projects):       100% via Workforce Identity\n\nAUTHENTICATION EVENTS (Last 30 Days):\n  Total Logins: 145,234\n  MFA Challenges: 89,456\n  Failed Logins: 3,456\n  Account Lockouts: 23\n  ThreatInsight Blocks: 12,345 (credential stuffing attempts)\n\nLIFECYCLE EVENTS:\n  Users Provisioned: 45\n  Users Deprovisioned: 23\n  Average Deprovisioning Time: 8 minutes\n  Orphan Accounts Detected: 3 (direct IAM users not managed by Okta)\n\nRECOMMENDATIONS:\n  [HIGH] Increase phishing-resistant MFA adoption from 35% to 80%\n  [HIGH] Remediate 3 orphan cloud accounts not managed by Okta\n  [MEDIUM] Reduce session duration for admin roles from 8h to 4h\n```\n",{"name":5,"tags":49,"capec":54,"model":30,"tools":55,"domain":43,"maxTurns":59,"nist_csf":60,"subdomain":42,"description":7,"mitre_attack":65},[27,50,51,52,53],"cloud-identity","single-sign-on","phishing-resistant-mfa","identity-lifecycle",[],[56,28,57,58],"Read","Glob","Grep",20,[61,62,63,64],"PR.IR-01","ID.AM-08","GV.SC-06","DE.CM-01",[66,67],"T1078.004","T1566","main","a91f1293287ffa9f4f1b8f486cd6e835a1568c84","skills\u002Fcloud\u002Fidentity\u002Fokta\u002Faudit","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace","https:\u002F\u002Fgithub.com\u002FDCx7C5","#Python","2026-09-01 11:21:00",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add DCx7C5\u002Fai-marketplace --skill identity-okta-audit",{"tool":81,"command":82},"bunx","bunx skills add DCx7C5\u002Fai-marketplace --skill identity-okta-audit",{"tool":84,"command":85},"pnpm","pnpm dlx skills add DCx7C5\u002Fai-marketplace --skill identity-okta-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fidentity\u002Fokta\u002Faudit\u002FSKILL.md",true,[89],{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"index.json","REFERENCE","参考文档",668,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fidentity\u002Fokta\u002Faudit\u002Findex.json",[96,119,140,161,183,199],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":44},"01M71HAPZ01KQ30RKTB0FFSQ05","services-wmi-persistence-detect","Detect WMI event subscription persistence by enumerating ActiveScriptEventConsumer, CommandLineEventConsumer, and permanent subscriptions in the WMI repository.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fservices\u002Fwmi\u002Fpersistence\u002Fdetect\u002FSKILL.md",[],[103,104,105,106,107,32,34,108,109,110,111,112,113,114,115,116,117,43,118],"services","detect","services wmi persistence detect","wmi","persistence","process","activescript","event","subscriptions","commandline-consumer","repository","subscription","event-subscription","t1546.003","forensics","process-forensics",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":44},"01M71HAK6JTTTS229T17WJMMCG","services-wmi-exec-exploit","Perform lateral movement across Windows networks using WMI-based remote execution techniques including Impacket wmiexec.py, CrackMapExec, and native WMI commands for stealthy post-exploitation during red team engagements.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fservices\u002Fwmi\u002Fexec\u002Fexploit\u002FSKILL.md",[],[126,103,127,106,128,129,130,43,28,131,132,133,134,135,32,136,137,35,138,139],"exploit","services wmi exec exploit","exec","remote","traffic","analysis","team","across","crackmapexec","native","command","lateral movement","lateral-movement","Impacket",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":44},"01M71HAG6MHKNQV8KDZKMT4886","registry-artifact-extract","Extract and analyze Windows Registry hives to uncover user activity, installed software, autostart entries, and evidence of system compromise.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fregistry\u002Fartifact\u002Fextract\u002FSKILL.md",[],[147,148,149,150,151,152,43,28,153,131,154,155,32,35,156,157,158,159,160,30],"artifact","registry","registry artifact extract","extract","evidence-collection","artifact-analysis","collection","analyze","uncover","software","activity","digital-forensics","windows-registry","regripper",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":44},"01M71HACR4A8XTWTTSXK4124AA","processes-token-impersonate-detect","Detect Windows token impersonation and privilege abuse including SeImpersonatePrivilege exploitation via Potato attacks and token stealing techniques.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Ftoken\u002Fimpersonate\u002Fdetect\u002FSKILL.md",[],[104,168,169,170,171,172,173,34,174,43,118,175,176,177,178,179,180,181,182,32],"processes token impersonate detect","token","processes","attacks","windows","escalation","techniques","privilege-escalation","seimpersonate","token-impersonation","printspoofer","exploitation","potato","impersonation","via",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":44},"01M71HAABSB4Z6QFSXEG00R4RK","processes-thread-injection-detect","Detect Windows thread injection techniques including CreateRemoteThread, QueueUserAPC, NtCreateThreadEx, and thread hijacking via process memory analysis.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Fthread\u002Finjection\u002Fdetect\u002FSKILL.md",[],[190,191,104,192,170,172,193,34,194,174,43,118,131,195,196,197,198,182,32,108],"thread","processes thread injection detect","injection","memory","process-injection","api","apc-injection","thread-injection","nt-api",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":205,"publishedAt":44},"01M71HA7H311V5G14WMX58HQSS","processes-hollow-technique-detect","Detect process hollowing (RunPE) by identifying processes with mismatched image paths between PEB and VAD tree, or unmapped PE headers in memory.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Fhollow\u002Ftechnique\u002Fdetect\u002FSKILL.md",[],[206,104,170,207,193,34,208,209,43,118,210,211,212,213,214,215,32,108,216,217],"processes hollow technique detect","tree","memory-forensics","process-hollow","peb","runpe","image","pe-header","in memory","with","mismatched","headers"]