AzMan is a role-based access control (RBAC) framework that provides an administrative tool to manage authorization policy and a runtime that allows applications to perform access checks against that policy. The AzMan administration tool (AzMan.msc) is supplied as a Microsoft Management Console (MMC) snap-in.
Role-based authorization policy specifies access in terms of user roles that reflect an application's authorization requirements. Users are assigned to roles based on their job functions and these roles are granted permissions to perform related tasks.
Authorization policy is managed separately from an application’s code. The application designer defines the set of low-level operations that are considered security sensitive and then defines a set of tasks that map onto those operations. The tasks, but not the operations, are designed to be understandable by administrators and business analysts.
Administrators use the AzMan snap-in to manage which roles should have access to which tasks. As the business evolves and roles need to be modified, the administrator makes changes to the authorization policy; the underlying business application does not need to be changed. Federation-aware applications employ AzMan for access control decisions by mapping federation claims to AzMan roles.
For in-depth discussions of AzMan, see the following articles:
Developing Applications Using Windows Authorization Manager
How To: Use Authorization Manager (AzMan) with ASP.NET 2.0
Use Role-Based Security in Your Middle Tier .NET Apps with Authorization Manager
Getting Started With AzMan
Major Benefits
The following is a brief list of the major benefits to using AzMan:
-
Reduced software development and maintenance costs
Developers avoid the expense and trade-offs of custom access control. AzMan does the expensive work of a full-featured authorization solution, including a complete RBAC model, policy storage (Active Directory, SQL, or XML), an MMC user interface, built-in application group support, rule and query support, integrated system auditing, and performance optimizations such as caching and late-binding.
-
Enhanced security
Platform technologies are rigorously tested, broadly used, and continually refined. A common RBAC model leverages administrators' existing knowledge, resulting in fewer access control mistakes.
-
Platform integration and alignment
AzMan supports platform features such as Active Directory (AD) groups, Windows security auditing, and MMC. AzMan assures the proper integration of system access control objects such as the NT access token and better alignment for future Windows access control features such as provisioning and entitlement engines.
-
Common RBAC administration
AzMan provides an easy-to-use role-based administrative experience; administrators learn fewer authorization models and require less training.
-
Role-based development framework
AzMan provides a framework that is easy to integrate with native or managed applications and provides broad RBAC management and enforcement functionality.
-
Flexible authorization rules
AzMan can define membership through dynamic Lightweight Directory Access Protocol (LDAP) queries or custom business rules (BizRules).
-
Centralized administration
Multiple applications can be managed centrally and leverage common application groups.
-
Flexible storage options
New and Improved Features
AzMan was first released in Windows Server 2003. It has been updated with the following new and improved features for Windows Server 2008:
-
Improvements to the Authorization Application Programming Interface (API)
These improvements include new simpler methods to perform common tasks, such as access checks (AccessCheck2) and role checks (IsInRoleAssignment).
-
SQL Server database stores
Previously, AzMan stores could be created only in Active Directory Domain Services (AD DS), Active Directory Lightweight Directory Services (AD LDS), and XML files.
-
Support for business rule groups
These are groups where membership is determined at run time by a script
-
Support for custom object pickers in a custom AzMan User Interface UI
This feature allows extension of the AzMan MMC Snap-in to support applications that use AD LDS or SQL user accounts.
-
LDAP queries are not limited to only user objects
-
Additional events are recorded in the log if auditing is active
-
Business rules are disabled by default; previously business rules were enabled by default
Definitions
- Authorization Store
-
The repository for authorization policy.
- Application
-
Defines a namespace for roles, tasks, and operations.
- Scope
-
A collection of resources in which each resource of similar type has the same authorization policy. A scope is a virtual subdivision within an application that can be used to prevent unintended resource sharing and to support auditing and delegation.
A scope can represent a folder, a container in AD DS or AD LDS, a masked collection of files (for example, *.doc), a URL, or any item that can be accessed by the application and its underlying authorization store. If there are groups, role assignments, role definitions, or task definitions that should not be applied to an entire application, create them at the scope level.
- Role
-
Usually corresponds to a job category or responsibility (for example, purchaser or hiring manager) and is a collection of tasks that a user must have to do that job. Users and groups are assigned to roles.
- Task
-
A collection of operations and sometimes other tasks. Well-designed tasks represent recognizable work items (for example, "submit purchase order" or "submit expense").
- Operation
-
A set of permissions that are associated with system-level or API-level security procedures such as WriteAttributes or ReadAttributes. Operations are building blocks for tasks.
- Business Rule
-
A script that is associated with a task. A rule allows access decisions to be based on any run-time condition that a script can test.