Skip to content

Commit 12f31eb

Browse files
authored
Merge pull request #53739 from ceperezb/CEPEREZB-sc100-design-secure-applications
minor edits
2 parents c84c7fd + 6d91546 commit 12f31eb

5 files changed

Lines changed: 63 additions & 61 deletions

File tree

learn-pr/wwl-sci/design-solutions-secure-applications/9-knowledge-check.yml

Lines changed: 21 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -31,55 +31,43 @@ quiz:
3131
choices:
3232
- content: "A practice that ensures system uptime by maintaining optimal replica volumes."
3333
isCorrect: false
34-
explanation: "DevSecOps isn't concerned with replica volumes of systems, which refers to replication strategies used in high availability deployment scenarios."
35-
- content: "A security model used by developers to certify that code changes do not affect production environments."
34+
explanation: "DevSecOps isn't concerned with replica volumes of systems, which refer to replication strategies used in high availability deployment scenarios."
35+
- content: "A security model used by developers to certify that code changes don't affect production environments."
3636
isCorrect: false
3737
explanation: "There's no certification process involved in DevSecOps. The idea behind DevSecOps is that security mechanisms are integrated throughout the development cycle to increase the overall security posture."
3838
- content: "A set of principles designed to integrate security testing and evaluation into the software development lifecycle (SDLC)."
3939
isCorrect: true
4040
explanation: "DevSecOps is short for Development, Security, and Operations, which aims to integrate security activities into all stages of the SDLC to achieve application and infrastructure resilience."
41-
- content: "A method to monitor customer satisfaction after every release of the product to ensure continuous improvement."
42-
isCorrect: false
43-
explanation: "While monitoring customer satisfaction is essential, it's not directly related to DevSecOps. Monitoring is also more of an Operations concern than something taken care of within the Development phase."
44-
- content: "What is a service principal in Microsoft Entra ID?"
41+
- content: "What is the role of a service principal in Microsoft Entra ID?"
4542
choices:
46-
- content: "A managed identity for a specific Azure resource"
43+
- content: "It serves as the local representation of an application in a specific tenant, defining what the application can do and which resources it can access."
4744
isCorrect: true
48-
explanation: "Service principals act as an interface to allow access using OAuth 2.0 protocols between Azure AD and independent software applications."
49-
- content: "An authentication mechanism that authenticates the client application identity"
50-
isCorrect: false
51-
explanation: "This describes the process of OAuth2.0 that allows resources to accept external access, not just a service principal."
52-
- content: "A user identity for a specific Azure resource"
45+
explanation: "A service principal is the local instance of an application in a tenant. While applications are defined globally by application objects, service principals define what an application can actually do in that specific tenant, who can use it, and what resources it can access."
46+
- content: "It provides automatic credential rotation for Azure resources without developer intervention."
5347
isCorrect: false
54-
explanation: "User identities are tied to individual users, Service Client Identities authenticate applications."
55-
- content: "Azure platform tokens revocation mechanism"
48+
explanation: "Automatic credential rotation without developer intervention describes managed identities, which are a special type of service principal. Service principals themselves can use certificates or secrets that require manual management."
49+
- content: "It encrypts all communication between Azure services using mutual TLS."
5650
isCorrect: false
57-
explanation: "Azure platform tokens are time-bound authorization keys issued by Microsoft Entra ID to resources. They've little to do with Service Principal authentication."
58-
- content: "What happens when a particular service account or machine accesses a resource using its Shared Access Signature token?"
51+
explanation: "Service principals handle authentication and authorization, not transport-layer encryption. Mutual TLS is configured separately at the network or service level."
52+
- content: "Why should Azure API Management subscription keys not be used as the sole authentication mechanism for APIs?"
5953
choices:
60-
- content: "The access shows up under the computer's credentials in Microsoft Entra ID's analytics logs."
61-
isCorrect: false
62-
explanation: "Shared Access Signatures don't pertain to Microsoft Entra ID, they're Azure object storage mechanism."
63-
- content: "The resource will only be accessible if the token has the appropriate permission scope."
54+
- content: "Because subscription keys are shared secrets that don't identify individual callers."
6455
isCorrect: true
65-
explanation: "Shared Access Signatures work at the level of the specific bound resource, meaning the permissions granted to the corresponding SAS token apply to this target only."
66-
- content: "It bypasses all permissions set on the resource."
56+
explanation: "Subscription keys identify a subscription, not the specific user or application making the request. For proper authentication, use OAuth 2.0 with Microsoft Entra ID, which validates individual caller identity through JWT tokens. Subscription keys are appropriate for rate limiting and usage tracking."
57+
- content: "Because subscription keys are incompatible with Azure Front Door and Application Gateway."
6758
isCorrect: false
68-
explanation: "Authentication and Authorization are always calculated and checked against the set access control policies and user/role-based authorization mechanisms."
69-
- content: "It triggers event-based alert notifications"
59+
explanation: "Subscription keys can be passed through Azure Front Door and Application Gateway. The limitation is that they don't identify individual callers, not that they're incompatible with other Azure services."
60+
- content: "Because subscription keys can only authenticate requests from Azure-hosted applications."
7061
isCorrect: false
71-
explanation: "Shared Access Signatures are a method still not greatly prevalent in Azure Functionality, and thus don't trigger alerts."
62+
explanation: "Subscription keys can be used by any API consumer regardless of where the application is hosted. The issue is that they're shared secrets that don't provide individual caller identification."
7263
- content: "What type of threats is the Azure web application firewall designed to protect against?"
7364
choices:
74-
- content: "Server level attacks such as shared hosting violations"
65+
- content: "Server-level attacks such as shared hosting violations"
7566
isCorrect: false
76-
explanation: "Azure Web Application Firewall is deployed in front of a web server farm and protects against layer 7 -application-level- distributed denial-of-service (DDoS) attacks."
67+
explanation: "Azure Web Application Firewall protects against layer 7 application-level threats such as injection attacks and cross-site scripting, not server-level hosting violations."
7768
- content: "Phishing attacks and credential stealing attempts"
7869
isCorrect: false
79-
explanation: "As useful as this would be, the WAF is positioned for application-level security only."
80-
- content: "SQL injection, Cross-site scripting attacks, and HTTP protocol violations"
70+
explanation: "WAF inspects incoming HTTP/HTTPS traffic against rule sets for known attack patterns like SQL injection and XSS. It doesn't address phishing or credential theft."
71+
- content: "SQL injection, cross-site scripting attacks, and HTTP protocol violations"
8172
isCorrect: true
82-
explanation: "These are some of the most common web applications' vulnerability exploits, all of which can be programmed into a well-managed web application firewall policy."
83-
- content: "Malware propagation and attack repulsion"
84-
isCorrect: false
85-
explanation: "WAF is position around application-level DDoS attack protection, this does NOT include general-purpose malware repulsion"
73+
explanation: "Azure WAF protects against these common web application vulnerabilities using managed rule sets based on the OWASP Core Rule Set. It also protects against file inclusion, command injection, HTTP request smuggling, and other OWASP Top 10 threats."

learn-pr/wwl-sci/design-solutions-secure-applications/includes/10-summary.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ You've learned how to:
66
- Design and implement standards and practices for securing the application development process
77
- Design a solution for workload identity to authenticate and access Azure cloud resources
88
- Design a solution for API management and security
9-
- Design a solution for secure access to applications
9+
- Design solutions that secure applications by using Azure Web Application Firewall (WAF)
10+
- Map technologies to application security requirements
1011

1112
## Learn more
1213

learn-pr/wwl-sci/design-solutions-secure-applications/includes/6-secure-access-workload-identities.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ Assigning identities to workloads isn't sufficient. You need to secure those ide
5050

5151
### Conditional Access for workload identities
5252

53-
Apply Conditional Access policies to service principals owned by your organization. For example, restrict workload identity sign-ins to specific named locations or require risk-based authentication. Continuous access evaluation (CAE) for workload identities enables real-time enforcement of these policies, revoking access immediately when conditions change rather than waiting for token expiration.
53+
Apply Conditional Access policies to single-tenant service principals owned by your organization. Third-party SaaS apps, multitenant apps, and managed identities are not covered by Conditional Access policies for workload identities. Supported policies include blocking service principals from outside known public IP ranges and blocking access based on risk detected by Microsoft Entra ID Protection. Because workload identities can't perform multifactor authentication, the only available grant control is **Block access**. Continuous access evaluation (CAE) for workload identities enables real-time enforcement of Conditional Access location and risk policies. CAE currently applies only to access requests sent to Microsoft Graph as a resource provider and does not support managed identities.
5454

5555
### Microsoft Entra ID Protection for workload identities
5656

57-
Detect risks to workload identities, including leaked credentials and anomalous sign-in patterns. Identity Protection applies machine learning models to detect suspicious activity for service principals, such as sign-ins from unexpected locations, impossible travel patterns, or access to resources outside normal behavior patterns.
57+
Detect risks to workload identities, including leaked credentials, suspicious sign-ins, anomalous service principal activity, malicious or suspicious applications, and suspicious API traffic. Identity Protection applies machine learning models to detect suspicious activity for service principals, such as sign-ins with unusual properties (unfamiliar IP address, target resource, user agent, or credential type), anomalous changes to the directory, and abnormal Graph API traffic or directory enumeration. Managed identities are not currently in scope for ID Protection risk detections.
5858

5959
### Access reviews for service principals
6060

61-
Review service principals and managed identities that are assigned to privileged Microsoft Entra directory roles. Access reviews, created through Privileged Identity Management (PIM), verify whether these workload identities still require their role assignments. Reviewers can confirm, remove, or adjust access to ensure that service principals don't retain unnecessary privileges. This capability requires Microsoft Entra Workload Identities Premium licensing in addition to Microsoft Entra ID P2 or Microsoft Entra ID Governance licensing.
61+
Review service principals and managed identities that are assigned to privileged Microsoft Entra directory roles or Azure resource roles. In Privileged Identity Management (PIM), when you create an access review for a role, you can select **Service Principals** as the user scope to review workload identities that have direct access to that role. Reviewers can then confirm, remove, or adjust access to ensure that service principals don't retain unnecessary privileges. This capability requires Microsoft Entra Workload Identities Premium licensing in addition to Microsoft Entra ID P2 or Microsoft Entra ID Governance licensing.
6262

6363
## Architect design considerations
6464

0 commit comments

Comments
 (0)