Belajar IAM Engineer - Conditional Access & Policies
Episode 17 of 28

Belajar IAM Engineer - Conditional Access & Policies

Risk-based access decisions, location dan device policies, serta otomasi conditional access menjadi pilar utama zero trust authentication

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 16 kita membahas machine identity & AI, pada episode ini kita masuk ke conditional access & policies — sistem yang menentukan apakah user boleh mengakses resource berdasarkan konteks: lokasi, device, risk level, dan waktu. Conditional access adalah otak dari zero trust.

Mengapa conditional access penting? Karena "login = full access" sudah tidak relevan di era remote work dan cloud computing. Setiap request harus dinilai secara kontekstual — login dari kantor berbeda dengan login dari cafe di negara lain.

Konsep Conditional Access

Komponen

text
Signal → Decision → Grant/Deny
 
Signals:
- User identity & role
- Device compliance
- Location & IP
- Application sensitivity
- Risk level (sign-in risk, user risk)
 
Decisions:
- Allow
- Require MFA
- Require compliant device
- Block access
- Force password change

Flow Conditional Access

100%

Conditional Access di Entra ID

Buat Policy

Conditional access policy via Graph API
curl -X POST "https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Require MFA for external access",
    "state": "enabled",
    "conditions": {
      "applications": {
        "includeApplications": ["All"]
      },
      "users": {
        "includeGroups": ["all-users"]
      },
      "locations": {
        "includeLocations": ["All"],
        "excludeLocations": ["Trusted"]
      }
    },
    "grantControls": {
      "operator": "OR",
      "builtInControls": ["mfa"]
    }
  }'

Policy Examples

PolicyKondisiAksi
MFA for adminRole = Global AdminRequire MFA
Block legacy authClient = LegacyBlock
Compliant deviceDevice = Not compliantRequire compliant device
Trusted locationLocation = OfficeAllow without MFA
High risk sign-inRisk = HighRequire MFA + password change

Risk-Based Access

Sign-in Risk

Risk assessment berdasarkan sinyal:

SignalRisk Indicators
LocationNegara yang tidak biasa, Tor exit node
DeviceUnknown device, non-compliant
IPKnown malicious IP, VPN, proxy
BehaviorImpossible travel, unusual time

User Risk

Risk assessment berdasarkan aktivitas user:

IndicatorPenjelasan
Leaked credentialsPassword ditemukan di breach database
Anonymous IPLogin dari Tor atau anonymizer
Malware linkedDevice terinfeksi malware
Suspicious activityPerubahan perilaku signifikan
Query sign-in risk dari Entra ID
curl -H "Authorization: Bearer $TOKEN" \
  "https://graph.microsoft.com/v1.0/auditLogs/signIns?\$filter=riskLevel eq 'high'" \
  | jq '.value[] | {user: .userPrincipalName, risk: .riskLevel, location: .location}'

Device Policies

Device Compliance

SettingPolicy
OS versionMinimum Windows 11, macOS 14
EncryptionFull disk encryption wajib
AntivirusActive & updated
FirewallEnabled
Jailbreak detectionBlock jailbroken devices

Device Trust

text
Device Registration → Compliance Check → Trust Evaluation
 
Trusted devices:
- Hybrid Azure AD joined
- Compliant with policies
- Certificate-based authentication

Tip

Mulailah dengan conditional access policy sederhana: MFA untuk semua admin, block legacy auth, dan require compliant device untuk akses sensitif. Tambahkan complexity bertahap seiring matangnya implementasi zero trust.

Policy Automation

Automated Remediation

PythonAutomated risk remediation
import requests
 
def remediate_high_risk_user(user_id, token):
    headers = {'Authorization': f'Bearer {token}'}
    
    # Force password reset
    requests.post(
        f'https://graph.microsoft.com/v1.0/users/{user_id}/resetPassword',
        headers=headers,
        json={'password': generate_temp_password()}
    )
    
    # Require MFA registration
    requests.post(
        f'https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/{policy_id}/assignments',
        headers=headers,
        json={'target': user_id}
    )

Penutup

Inti yang harus dibawa pulang:

  • Conditional access menilai request berdasarkan konteks: user, device, location, risk.
  • Risk-based access menggunakan sign-in risk dan user risk untuk decision-making.
  • Device compliance policies memastikan hanya device sehat yang mengakses resource.
  • Policy automation mempercepat remediation untuk risk tinggi.

Di episode 18 selanjutnya kita akan membahas identity threat detection — credential attacks, token abuse, dan UEBA. Siapkan deteksi ancaman identity kalian!

Belajar IAM Engineer - Conditional Access & Policies | Belajar IAM Engineer