Skip to content

Commit

Permalink
Merge pull request MicrosoftDocs#1194 from Microsoft/FromPrivateRepo
Browse files Browse the repository at this point in the history
From private repo
  • Loading branch information
Taojunshen authored Mar 28, 2017
2 parents 33eeae4 + 3dd78b5 commit ddb816f
Show file tree
Hide file tree
Showing 142 changed files with 3,181 additions and 2,337 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ After you have changed your password, the new password will be usable in Azure A
<br>

## Related Content
* [How to update your own password](../active-directory/active-directory-passwords-update-your-own-password.md#how-to-reset-your-password).)
* [How to update your own password](../active-directory/active-directory-passwords-update-your-own-password.md#reset-your-password).)
* [Getting started with Password Management in Azure AD](../active-directory/active-directory-passwords-getting-started.md).
* [Enable password synchronization to AAD Domain Services for a synced Azure AD tenant](active-directory-ds-getting-started-password-sync-synced-tenant.md)
* [Administer an Azure AD Domain Services managed domain](active-directory-ds-admin-guide-administer-domain.md)
Expand Down
117 changes: 117 additions & 0 deletions articles/active-directory/active-directory-architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
---
title: Understand Azure Active Directory architecture | Microsoft Docs
description: Explains what an Azure AD tenant is, and how to manage Azure through Azure Active Directory
services: active-directory
documentationcenter: ''
author: markvi
writer: v-lorisc
manager: femila

ms.assetid:
ms.service: active-directory
ms.workload: infrastructure-services
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: get-started-article
ms.date: 03/01/2017
ms.author: markvi

---
# Understand Azure Active Directory architecture
Azure Active Directory (Azure AD) enables you to securely manage access to Azure services and resources for your users. Included with Azure AD is a full suite of identity management capabilities. For information about Azure AD features, see [What is Azure Active Directory?](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-whatis)

With Azure AD, you can create and manage users and groups, and enable permissions to allow and deny access to enterprise resources. For information about identity management, see [The fundamentals of Azure identity management](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals-identity).

## Azure AD architecture
Azure AD's geographically distributed architecture combines extensive monitoring, automated rerouting, failover, and recovery capabilities enable us to deliver enterprise-level availability and performance to our customers.

The following architecture elements are covered in this article:
* Service architecture design
* Scalability
* Continuous availability
* Data centers

### Service architecture design
The most common way to build a scalable, highly-available, data-rich system is through independent building blocks or scale units for the Azure AD data tier, scale units are called *partitions*.

The data tier has several front-end services that provide read-write capability. The diagram below shows how the components of a single-directory partition are distributed throughout geographically-distrubuted data centers.

![Single Directory Partitions](./media/active-directory-architecture/active-directory-architecture.png)

The components of Azure AD architecture include a primary replica and secondary replicas.

**Primary replica**

The *primary replica* receives all *writes* for the partition it belongs to. Any write operation is immediately replicated to a secondary replica in a different datacenter before returning success to the caller, thus ensuring geo-redundant durability of writes.

**Secondary replicas**

All directory *reads* are serviced from *secondary replicas*, which are at data centers that are physically located across different geographies. There are many secondary replicas, as data is replicated asynchronously. Directory reads, such as authentication requests, are serviced from data centers that are close to our customers. The secondary replicas are responsible for read scalability.

### Scalability

Scalability is the ability of a service to expand to meet increasing performance demands. Write scalability is achieved by partitioning the data. Read scalability is achieved by replicating data from one partition to multiple secondary replicas distributed throughout the world.

Requests from directory applications are generally routed to the datacenter that they are physically closest to. Writes are transparently redirected to the primary replica to provide read-write consistency. Secondary replicas significantly extend the scale of partitions because the directories are typically serving reads most of the time.

Directory applications connect to the nearest datacenters. This improves performance, and therefore scaling out is possible. Since a directory partition can have many secondary replicas, secondary replicas can be placed closer to the directory clients. Only internal directory service components that are write-intensive target the active primary replica directly.

### Continuous availability

Availability (or uptime) defines the ability of a system to perform uninterrupted. The key to Azure AD’s high-availability is that our services can quickly shift traffic across multiple geographically-distributed data centers. Each data center is independent, which enables de-correlated failure modes.

Azure AD’s partition design is simplified compared to the enterprise AD design, which is critical for scaling up the system. We adopted a single-master design that includes a carefully orchestrated and deterministic primary replica failover process.

**Fault tolerance**

A system is more available if it is tolerant to hardware, network, and software failures. For each partition on the directory, a highly available master replica exists: The primary replica. Only writes to the partition are performed at this replica. This replica is being continuously and closely monitored, and writes can be immediately shifted to another replica (which becomes the new primary) if a failure is detected. During failover, there could be a loss of write availability typically of 1-2 minutes. Read availability is not affected during this time.

Read operations (which outnumber writes by many orders of magnitude) only go to secondary replicas. Since secondary replicas are idempotent, loss of any one replica in a given partition is easily compensated by directing the reads to another replica, usually in the same datacenter.

**Data durability**

A write is durably committed to at least two data centers prior to it being acknowledged. This happens by first committing the write on the primary, and then immediately replicating the write to at least one other data center. This ensures that a potential catastrophic loss of the data center hosting the primary does not result in data loss.

Azure AD maintains a zero [Recovery Time Objective (RTO)](https://en.wikipedia.org/wiki/Recovery_time_objective) for token issuance and directory reads and in the order of minutes (~5 minutes) RTO for directory writes. We also maintain zero [Recovery Point Objective (RPO)](https://en.wikipedia.org/wiki/Recovery_point_objective) and will not lose data on failovers.

### Data centers

Azure AD’s replicas are stored in datacenters located throughout the world. For more information, see [Azure datacenters](https://azure.microsoft.com/en-us/overview/datacenters).

Azure AD operates across data centers with the following characteristics:

* Authentication, Graph and other AD services reside behind the Gateway service. The Gateway manages load balancing of these services. It will failover automatically if any unhealthy servers are detected using transactional health probes. Based on these health probes, the Gateway dynamically routes traffic to healthy data centers.
* For *reads*, the directory has secondary replicas and corresponding front-end services in an active-active configuration operating in multiple data centers. In case of a failure of an entire data center, traffic will be automatically routed to a different datacenter.
* For *writes*, the directory will failover primary (master) replica across data centers via planned (new primary is synchronized to old primary) or emergency failover procedures. Data durability is achieved by replicating any commit to at least two data centers.

**Data consistency**

The directory model is one of eventual consistency. One typical problem with distributed asynchronously replicating systems is that the data returned from a “particular” replica may not be up to date.

Azure AD provides read-write consistency for applications targeting a secondary replica by routing its writes to the primary replica, and synchronously pulling the writes back to the secondary replica.

Application writes using the Graph API of Azure AD are abstracted from maintaining affinity to a directory replica for read-write consistency. The Azure AD Graph service maintains a logical session, which has affinity to a secondary replica used for reads; affinity is captured in a “replica token” that the graph service caches using a distributed cache. This token is then used for subsequent operations in the same logical session.

>[!NOTE]
>Writes are immediately replicated to the secondary replica to which the logical session's reads were issued.
>
**Backup protection**

The directory implements soft deletes, instead of hard deletes, for users and tenants for easy recovery in case of accidental deletes by a customer. If your tenant administrator accidently deletes users, they can easily undo and restore the deleted users.

Azure AD implements daily backups of all data, and therefore can authoritatively restore data in case of any logical deletions or corruptions. Our data tier employs error correcting codes, so that it can check for errors and automatically correct particular types of disk errors.

**Metrics and monitors**

Running a high availability service requires world-class metrics and monitoring capabilities. Azure AD continually analyzes and reports key service health metrics and success criteria for each of its services. We continuously develop and tune metrics, monitoring and alerting for each scenario, within each Azure AD service and across all services.

If any Azure AD service is not working as expected, we immediately take action to restore functionality as quickly as possible. The most important metric Azure AD tracks is how quickly we can detect and mitigate a customer or live site issue. We invest heavily in monitoring and alerts to minimize time to detect (TTD Target: <5 minutes) and operational readiness to minimize time to mitigate (TTM Target: <30 minutes).

**Secure operations**

We employ operational controls such as multi-factor authentication (MFA) for any operation, as well as auditing of all operations. In addition, we use a just-in-time elevation system to grant necessary temporary access for any operational task-on-demand on an ongoing basis. For more information, see [The Trusted Cloud](https://azure.microsoft.com/en-us/support/trust-center).

## Next steps
[Azure Active Directory developer's guide](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-developers-guide)

Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
ms.date: 01/10/2017
ms.date: 03/28/2017
ms.author: markvi

---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Applications that use conditional access rules in Azure Active Directory | Microsoft Docs
title: Applications and browsers that use conditional access rules in Azure Active Directory | Microsoft Docs
description: With conditional access control, Azure Active Directory checks for specific conditions when it authenticates the user, and to allow application access.
services: active-directory
documentationcenter: ''
Expand All @@ -13,11 +13,12 @@ ms.devlang: na
ms.topic: article
ms.tgt_pltfrm: na
ms.workload: identity
ms.date: 03/22/2017
ms.date: 03/28/2017
ms.author: markvi

---
# Applications that use conditional access rules in Azure Active Directory
# Applications and browsers that use conditional access rules in Azure Active Directory

Conditional access rules are supported in Azure Active Directory (Azure AD)-connected applications, pre-integrated federated software as a service (SaaS) applications, applications that use password single sign-on (SSO), line-of-business applications, and applications that use Azure AD Application Proxy. For a detailed list of applications for which you can use conditional access, see [Services enabled with conditional access](active-directory-conditional-access-technical-reference.md). Conditional access works both with mobile and desktop applications that use modern authentication. In this article, we cover how conditional access works in mobile and desktop apps.

You can use Azure AD sign-in pages in applications that use modern authentication. With a sign-in page, a user is prompted for multi-factor authentication. A message is shown if the user's access is blocked. Modern authentication is required for the device to authenticate with Azure AD, so that device-based conditional access policies are evaluated.
Expand All @@ -44,7 +45,7 @@ The following applications support conditional access for Office 365 and other A
| Office 365 SharePoint Online |Mac OS X |Office 2016 apps for multi-factor authentication and location only; device-based policy support planned for the future |
| Office 365 Yammer |Windows 10, iOS; Android support planned for the future |Office Yammer app |
| Dynamics CRM |Windows 10, Windows 8.1, Windows 7, iOS, and Android |Dynamics CRM app |
| PowerBI service |Windows 10, Windows 8.1, Windows 7, and iOS|PowerBI app (Andoird app not supported) |
| PowerBI service |Windows 10, Windows 8.1, Windows 7, iOS, and Android |PowerBI app |
| Azure Remote App service |Windows 10, Windows 8.1, Windows 7, iOS, Android, and Mac OS X |Azure Remote app |
| Any My Apps app service |Android and iOS |Any My Apps app service |

Expand Down Expand Up @@ -106,3 +107,34 @@ By applying the following three rules to the AD FS relying party trust for Micro
c1:[Type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value == "false"] &&
c2:[Type == "http://schemas.microsoft.com/2012/01/requestcontext/claims/x-ms-endpoint-absolute-path", Value =~ "(/adfs/ls)|(/adfs/oauth2)"]
=> issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = "true");


## Supported browsers


| OS | Browsers | Support |
| :-- | :-- | :-: |
| Win 10 | IE, Edge | ![Check][1] |
| Win 10 | Chrome | Coming soon |
| Win 8 / 8.1 | IE | ![Check][1] |
| Win 7 | IE | ![Check][1] |
| iOS | Safari | ![Check][1] |
| Android | Chrome | ![Check][1] |
| WinPhone | IE, Edge | ![Check][1] |
| Windows Server 2016 | IE, Edge | ![Check][1] |
| Windows Server 2012 R2 | IE | ![Check][1] |
| Windows Server2008 R2 | IE | ![Check][1] |
| Mac OS | Safari | ![Check][1] |
| Mac OS | Chrome | Coming soon |


## Next steps

For more details, see [Conditional access in Azure Active Directory](active-directory-conditional-access.md)



<!--Image references-->
[1]: ./media/active-directory-conditional-access-supported-apps/ic195031.png


Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Azure Active Directory Conditional Access technical reference | Microsoft Docs
description: With Conditional access control, Azure Active Directory checks the specific conditions you pick when authenticating the user and before allowing access to the application. Once those conditions are met, the user is authenticated and allowed access to the application.
services: active-directory
services: active-directory.
documentationcenter: ''
author: MarkusVi
manager: femila
Expand All @@ -12,12 +12,14 @@ ms.devlang: na
ms.topic: article
ms.tgt_pltfrm: na
ms.workload: identity
ms.date: 03/01/2017
ms.date: 03/28/2017
ms.author: markvi

---
# Azure Active Directory Conditional Access technical reference

## Services enabled with conditional access

Conditional Access rules are supported across various Azure AD application types. This list includes:


Expand All @@ -34,6 +36,13 @@ Conditional Access rules are supported across various Azure AD application types
* Visual Studio Online









## Enable access rules
Each rule can be enabled or disabled on a per application bases. When rules are **ON** they will be enabled and enforced for users accessing the application. When they are **OFF** they will not be used and will not impact the users sign in experience.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ms.devlang: na
ms.topic: article
ms.tgt_pltfrm: na
ms.workload: identity
ms.date: 02/23/2017
ms.date: 03/28/2017
ms.author: markvi

---
Expand Down Expand Up @@ -78,7 +78,7 @@ See the following resource categories and articles to learn more about setting c

### Multi-factor authentication and location policies
* [Getting started with conditional access to Azure AD-connected apps based on group, location, and multi-factor authentication policies](active-directory-conditional-access-azuread-connected-apps.md)
* [Applications that are supported](active-directory-conditional-access-supported-apps.md)
* [Applications and browsers that are supported](active-directory-conditional-access-supported-apps.md)

### Device-based conditional access
* [Set device-based conditional access policy for access control to Azure Active Directory-connected applications](active-directory-conditional-access-policy-connected-applications.md)
Expand Down
Loading

0 comments on commit ddb816f

Please sign in to comment.