Skip to content

Commit 2ac4c9b

Browse files
authored
Merge pull request #202364 from MicrosoftDocs/main
6/21 PM Publish
2 parents 80d5f9e + 92d58a8 commit 2ac4c9b

File tree

330 files changed

+5923
-4969
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

330 files changed

+5923
-4969
lines changed

.openpublishing.redirection.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40182,6 +40182,16 @@
4018240182
"redirect_url": "/azure/private-link/create-private-endpoint-powershell",
4018340183
"redirect_document_id": true
4018440184
},
40185+
{
40186+
"source_path_from_root": "/articles/app-service/environment/overview-zone-redundancy.md",
40187+
"redirect_url": "/azure/availability-zones/migrate-app-service-environment",
40188+
"redirect_document_id": true
40189+
},
40190+
{
40191+
"source_path_from_root": "/articles/app-service/how-to-zone-redundancy.md",
40192+
"redirect_url": "/azure/availability-zones/migrate-app-service",
40193+
"redirect_document_id": true
40194+
},
4018540195
{
4018640196
"source_path_from_root": "/articles/azure-monitor/insights/sql-insights-alerts.md",
4018740197
"redirect_url": "/azure/azure-sql/database/sql-insights-alerts",

articles/active-directory/develop/TOC.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@
6969
- name: Security best practices
7070
displayName: least privilege, secure app configuration, conditional access
7171
items:
72-
- name: Zero Trust for app developers
73-
href: zero-trust-for-developers.md
74-
- name: Least privileged access for applications
75-
href: secure-least-privileged-access.md
76-
- name: App registration security
72+
- name: Application security
7773
href: security-best-practices-for-app-registration.md
78-
- name: Secure access control using groups in Azure AD
74+
- name: Least privileged access
75+
href: secure-least-privileged-access.md
76+
- name: Secure access control using groups
7977
href: secure-group-access-control.md
78+
- name: Zero Trust
79+
href: zero-trust-for-developers.md
8080
- name: Identity platform best practices
8181
href: identity-platform-integration-checklist.md
8282
- name: How-to

articles/active-directory/develop/authorization-basics.md

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,65 @@
22
title: Authorization basics
33
description: Learn about the basics of authorization in the Microsoft identity platform.
44
services: active-directory
5-
author: CelesteDG
5+
author: davidmu1
66
manager: CelesteDG
77

88
ms.service: active-directory
99
ms.subservice: develop
1010
ms.topic: conceptual
1111
ms.workload: identity
12-
ms.date: 07/23/2021
12+
ms.date: 06/16/2022
1313
ms.custom: template-concept
14-
ms.author: celested
14+
ms.author: davidmu
1515
ms.reviewer: johngarland, mamarxen, ianbe, marsma
1616

1717
#Customer intent: As an application developer, I want to understand the basic concepts of authorization in the Microsoft identity platform.
1818
---
1919

2020
# Authorization basics
2121

22-
**Authorization** (sometimes abbreviated as *AuthZ*) is used to set permissions that are used to evaluate access to resources or functionality. In contrast, **authentication** (sometimes abbreviated as *AuthN*) is focused on proving that an entity like a user or service is indeed who they claim to be.
22+
**Authorization** (sometimes abbreviated as *AuthZ*) is used to set permissions that enable evaluation of access to resources or functionality. In contrast, **authentication** (sometimes abbreviated as *AuthN*) is focused on proving that an entity like a user or service is indeed who they claim to be.
2323

24-
Authorization can include specifying what functionality (or resources) an entity is allowed to access or what data that entity can access and what they can do with that data. This is often referred to as *access control*.
25-
26-
> [!NOTE]
27-
> Authentication and authorization are concepts that are not limited to only users. Services or daemon applications are often built to make requests for resources as themselves rather than on behalf of a specific user. When discussing these topics, the term “entity” is used to refer to either a user or an application.
24+
Authorization can include specifying the functionality, resources, or data an entity is allowed to access. Authorization also specifies what can be done with the data. This authorization action is often referred to as *access control*.
2825

26+
Authentication and authorization are concepts that aren't limited to only users. Services or daemon applications are often built to make requests for resources as themselves rather than on behalf of a specific user. In this article, the term "entity" is used to refer to either a user or an application.
2927

3028
## Authorization approaches
3129

3230
There are several common approaches to handle authorization. [Role-based access control](./custom-rbac-for-developers.md) is currently the most common approach using Microsoft identity platform.
3331

34-
35-
### Authentication as authorization
32+
### Authentication as authorization
3633

3734
Possibly the simplest form of authorization is to grant or deny access based on whether the entity making a request has been authenticated. If the requestor can prove they're who they claim to be, they can access the protected resources or functionality.
3835

3936
### Access control lists
4037

41-
Authorization via access control lists (ACLs) involves maintaining explicit lists of specific entities who do or don't have access to a resource or functionality. ACLs offer finer control over authentication-as-authorization but become difficult to manage as the number of entities increases.
38+
Authorization by using access control lists (ACLs) involves maintaining explicit lists of specific entities who do or don't have access to a resource or functionality. ACLs offer finer control over authentication-as-authorization but become difficult to manage as the number of entities increases.
4239

43-
### Role-based access control
40+
### Role-based access control
4441

4542
Role-based access control (RBAC) is possibly the most common approach to enforcing authorization in applications. When using RBAC, roles are defined to describe the kinds of activities an entity may perform. An application developer grants access to roles rather than to individual entities. An administrator can then assign roles to different entities to control which ones have access to what resources and functionality.
4643

47-
In advanced RBAC implementations, roles may be mapped to collections of permissions, where a permission describes a granular action or activity that can be performed. Roles are then configured as combinations of permissions. You compute the entities’ overall permission set for an application by intersecting the permissions granted to the various roles the entity is assigned. A good example of this approach is the RBAC implementation that governs access to resources in Azure subscriptions.
44+
In advanced RBAC implementations, roles may be mapped to collections of permissions, where a permission describes a granular action or activity that can be performed. Roles are then configured as combinations of permissions. Compute the overall permission set for an entity by intersecting the permissions granted to the various roles the entity is assigned. A good example of this approach is the RBAC implementation that governs access to resources in Azure subscriptions.
4845

4946
> [!NOTE]
50-
> [Application RBAC](./custom-rbac-for-developers.md) differs from [Azure RBAC](../../role-based-access-control/overview.md) and [Azure AD RBAC](../roles/custom-overview.md#understand-azure-ad-role-based-access-control). Azure custom roles and built-in roles are both part of Azure RBAC, which helps you manage Azure resources. Azure AD RBAC allows you to manage Azure AD resources.
47+
> [Application RBAC](./custom-rbac-for-developers.md) differs from [Azure RBAC](../../role-based-access-control/overview.md) and [Azure AD RBAC](../roles/custom-overview.md#understand-azure-ad-role-based-access-control). Azure custom roles and built-in roles are both part of Azure RBAC, which helps manage Azure resources. Azure AD RBAC allows management of Azure AD resources.
5148
52-
### Attribute-based access control
49+
### Attribute-based access control
5350

54-
Attribute-based access control (ABAC) is a more fine-grained access control mechanism. In this approach, rules are applied to attributes of the entity, the resources being accessed, and the current environment to determine whether access to some resources or functionality is permitted. An example might be only allowing users who are managers to access files identified with a metadata tag of managers during working hours only during the hours of 9AM - 5PM on working days. In this case, access is determined by examining the user’s attribute (status as manager), the resource’s attribute (metadata tag on a file), and also an environment attribute (the current time).
51+
Attribute-based access control (ABAC) is a more fine-grained access control mechanism. In this approach, rules are applied to the entity, the resources being accessed, and the current environment. The rules determine the level of access to resources and functionality. An example might be only allowing users who are managers to access files identified with a metadata tag of "managers during working hours only" during the hours of 9AM - 5PM on working days. In this case, access is determined by examining the attribute (status as manager) of the user, the attribute (metadata tag on a file) of the resource, and also an environment attribute (the current time).
5552

56-
One advantage of ABAC is that more granular and dynamic access control can be achieved through rule and condition evaluations without the need to create large numbers of very specific roles and RBAC assignments.
53+
One advantage of ABAC is that more granular and dynamic access control can be achieved through rule and condition evaluations without the need to create large numbers of specific roles and RBAC assignments.
5754

58-
One method for achieving ABAC with Azure Active Directory is using [dynamic groups](../enterprise-users/groups-create-rule.md). Dynamic groups allow administrators to dynamically assign users to groups based on specific user attributes with desired values. For example, an Authors group could be created where all users with the job title Author are dynamically assigned to the Authors group. Dynamic groups can be used in combination with RBAC for authorization where you map roles to groups and dynamically assign users to groups.
55+
One method for achieving ABAC with Azure Active Directory is using [dynamic groups](../enterprise-users/groups-create-rule.md). Dynamic groups allow administrators to dynamically assign users to groups based on specific user attributes with desired values. For example, an Authors group could be created where all users with the job title Author are dynamically assigned to the Authors group. Dynamic groups can be used in combination with RBAC for authorization where you map roles to groups and dynamically assign users to groups.
5956

60-
[Azure ABAC](../../role-based-access-control/conditions-overview.md) is an example of an ABAC solution that is available today. Azure ABAC builds on Azure RBAC by adding role assignment conditions based on attributes in the context of specific actions.
57+
[Azure ABAC](../../role-based-access-control/conditions-overview.md) is an example of an ABAC solution that is available today. Azure ABAC builds on Azure RBAC by adding role assignment conditions based on attributes in the context of specific actions.
6158

6259
## Implementing authorization
6360

6461
Authorization logic is often implemented within the applications or solutions where access control is required. In many cases, application development platforms offer middleware or other API solutions that simplify the implementation of authorization. Examples include use of the [AuthorizeAttribute](/aspnet/core/security/authorization/simple?view=aspnetcore-5.0&preserve-view=true) in ASP.NET or [Route Guards](./scenario-spa-sign-in.md?tabs=angular2#sign-in-with-a-pop-up-window) in Angular.
6562

66-
For authorization approaches that rely on information about the authenticated entity, an application will evaluate information exchanged during authentication. For example, by using the information that was provided within a [security token](./security-tokens.md)). For information not contained in a security token, an application might make extra calls to external resources.
63+
For authorization approaches that rely on information about the authenticated entity, an application evaluates information exchanged during authentication. For example, by using the information that was provided within a [security token](./security-tokens.md)). For information not contained in a security token, an application might make extra calls to external resources.
6764

6865
It's not strictly necessary for developers to embed authorization logic entirely within their applications. Instead, dedicated authorization services can be used to centralize authorization implementation and management.
6966

0 commit comments

Comments
 (0)