AAD 有四个版本
1. Free
- 管理用户账户
- 和本地目录同步
- 和O365 和其他PaaS服务SSO
2. Basic
- company branding:登录时有自己公司的logo
- group-based application acess
- self-service password reset
- SLA 99.9%
- Azure Active Directory Application Proxy
3. Premium P1 & P2
- company branding
- group-based application acess
- self-service password reset
- SLA 99.9%
- Azure Active Directory Application Proxy
- identity protection
- previleged identity management
- sign-in activity reports availability
- security reports
Azure AD domain service
引入云服务以后身份验证所存在的问题?
就是传统的目录不能支持云登录,当前的协议Kerberos LDAP等等,这些协议都不能通过互联网访问,新的协议,比如:OAuth2,OpenID Connect,就可以通过网络访问。
Azure Active Directory是一种服务,专门用来管理用户身份标识和管理访问权限,针对用户可以是企业内部员工,也可以是合作伙伴,或者是顾客。
注意:Azure AD 不是!!!Windows Server AD DS在Azure上
Azure Domain service 的特点
- 全托管的服务,你不需要担心更新、补丁、监控、备份等等。
- 加域,可以让虚机加域,就跟在本地计算机要加域一样。
- 高可用,Azure AD 域服务有高可用,有内置的健康健康器,可以自动修复
- 可以用组策略
- 包括DNS server
- 不需要VPN或者expressroute来连接,用Azure AD connect
Role Based Access Control
用来管理Azure的资源,定义谁能访问哪些资源,谁不能访问哪些资源,谁的权限又是什么。
内置默认有三个角色:owner(啥都可以做)、contributer(啥都可以做除了不能分配、删除角色任务)、reader(只能看)
RBAC的角色分配具有继承性,分配可以访问的资源可以是资源组,也可以细化到一个资源。
AAD安全原则
角色可以分配给:用户、外部用户、外部微软账户,比如@outlook.com
角色可以分配给:AD安全组,如果一个组能访问某资源,组里的成员也享有同样的访问权。
而且,安全组的访问权可以从本地直接搬到云上用。
管理组
管理组是用来装很多订阅的容器。比如,这一堆订阅属于开发组,这一堆订阅属于财务组。管理组的级别比订阅级别高,Azure Policy和Role Based Access Control可以应用在管理组、订阅、资源组、资源。
根管理组
每个目录都有一个最高级的管理组,叫根管理组,所有的管理组隶属于一个根管理组。
管理组的限制:一个目录下面可以有1w个管理组。一个管理组树最多有6层,这个层数限制不包括根管理组层和订阅层。一个订阅和管理组只能隶属一个父项。
Azure AD B2B
AAD B2B合作是Azure AD的特有功能,让合作伙伴、外部用户可以简单地访问本地资源。不需要security token service,也不要和合作伙伴做联合身份验证,不需要给外部用户创建新的目录。合作伙伴可以用他们自己的凭据来访问你的资源。如果伙伴没有AAD,B2B合作可以提供简单的AAD acocunt的分发。
Viral tenant provisioning
如果外部账户没有AAD账户,那么就得创建一个新账户,这个账户叫viral Azure AD tenant, userType:Viral。
怎么去邀请这些外部用户呢?用CSV文件,里面有email地址,通过这个CSV文件发邮件给用户,用户接受邀请,然后验证通过,之后用户就可以访问授权的资源了。
如果没有邮件,也可以直接给外部用户发一个访问连接,这个访问连接和共享资源关联,这样就可以直接访问资源了。
AAD B2C
AAD B2C是一个复杂的云身份管理解决方案,针对web端用户和移动应用程序。
过去,应用程序开发者希望用户在他们自己的代码里面注册账号,登录账号,但是这样的话,他们就需要有自己的本地数据库来存这些用户名和密码。AAD B2C提供一个身份验证的集成方法,用户可以用第三方社交账号来登录app,与此同时生成自己的credentials(自己的email add+password或者用户名+password)
B2C可以用OAuth和OpenID Connect协议进行验证,也支持多因子验证。
AAD Pass-through authentication
Azure AD pass-through authentication允许你可以用和本地一样的用户名和密码来登录云上的应用,但是在云上登录时,验证还是回到本地进行的,所以云上不会存密码。可以让用户不用去记那么多密码,而且可以在云上自助改密码。如果用户没有授权hash同步,那么验证会在本地AD进行。
注意!!!AAD pass-through验证虽然本地和云上用一样的用户名和密码,但是密码还是存在本地AD,云上不存密码,最终的验证还是在本地进行,用户登录app,重定向到AAD,AAD再去找本地AD做验证。
AAD Pass through authentication :Smart Lockout 智能封锁
简单说,就是输入密码错太多次就锁住。默认10次尝试错误,每次锁60s。要想自定义lockout必须要basic或更高版本
啥是无缝单点登录seamless SSO
- 如果用企业的设备在内网进行使用,用户可以自动登录到基于云的应用
- 可以直接自动登录上基于云的app
- SSO可以和密码哈希同步或者pass-through验证进行登录。
多因子验证 (premuim edition)
多因子有啥:
something you know: password PIN
something you have: phone credit card hardward token
something you are: fingerprint, retinal scan…
stronger when using two different channels.
(OTP one time pass)
- AAD----可以直接用云上MFA
- AAD+本地AD+ADFS----可以用云上MFA也可以用MFA Server,ADFS可以充当MFA server
- AAD+本地AD+DirSync+AAD Sync+Azure AD connect (没有哈希密码)----可以用云上MFA和MFA server
- AAD+本地AD+DirSync+AAD Sync+Azure AD connect (有哈希密码)----只能用云上MFA
- 本地AD----只能用MFA server
Azure AD Application Proxy
- 提供SSO功能&安全的远程访问本地资源或者远程访问Azure IaaS web app
- 入站没有防火墙规则
- AAD身份验证,kerberos claims/forms based application
Application proxy安在云上,对应的connector按在本地,用户通过connector路由流量连接到云上的服务
Connector拿来干嘛?
连接很多数据中心的站点,如果想把流量控制在单个数据中心内部,因为跨数据中心的连接很贵,就可以在每个数据中心放connector,这些connector只用来服务这个数据中心内部的app。
Conditional Access
Conditional access是AAD的一个功能,这个功能允许你基于特定的环境条件,去控制访问app的权限,你可以设置访问要求,也可以阻止访问。
Conditional access是基于策略的,一般要定义访问的要求,比如,如果有来自不信任网络的connector想去访问云上的app,那么就要阻止访问。
控制
如果条件访问策略满足,那么contral statement就是用来定义接下来要发生什么。
目前AAD允许以下的control要求,
- MFA,可以是Azure MFA、本地MFA,或者ADFS
- 可自定义合法有效设备
- Hybrid Azure AD joined device,针对于本地加域的设备
- 要求客户端应用被允许使用
- 要求应用有保护策略
conditional statement
对于条件访问策略,你可以定义访问条件,比如 - 用户和组:这些人可以访问,或者这些人不能范文
- cloud app:确定policy适用的app
- conditions:可以定义额外的访问条件
Conditions
AAD允许你自定义额外的访问条件,比如: - sign-in risk:高中低
- 设备平台:比如安卓不能访问啊
- 地点:定义某段IP地址可访问
- 客户端app:哪些app可以来访问
- 设备状态:设备是否注册,是否被标注成为合法,是否是Hybrid Azure AD joined
AAD Previleged Identity Management PIM
PIM是Azure用来管理、控制、监控组织内的访问
AAD PIM功能:
- 你可以看谁是AAD管理员
- 可以启用按需、Just in time 管理访问Microsoft online service like O365
- 可以得到管理员访问历史和管理员任务更换
- 可以设置previleged role访问警报
AAD PIM 管理以下AAD role:
Global admin
billing admin
service admin
user admin
password admin
JIT Administrator access
- 允许分配一个永久的角色,也可以分配一个一段时间内有效的角色
- 有永久角色的用户为permanent admins,一段时间内有效的用户为eligible admins
- eligible admin是inactive的,直到要去访问资源,当满足访问条件,就变成active,在有效时间内有效。
- 用户的账户必须是企业账户
PIM管理
PIM要求Premium P2 edition,用门户网站启用PIM,部署时需要跑一遍安全安装向导,然后就可以呈现PIM board,上面有目录用户的有效历史,目录用户的分布,有多少eligible,有多少permenant。
Domain controllers on Azure Virtual Machine
为什么要在Azure IaaS上部署AD DS
- 如果没有本地数据中心,但还是要在世界各处进行验证服务
- 备份AD 或者做故障恢复
- 支持那些必须云上验证的app,比如sharepoint
Azure AD DS的应用场景
- 新的AD DS在Azure 上全托管
- 把本地 AD DS扩展上云
Azure Domain Controller DC是本地DC的虚拟版本
虚机可以用静态或者动态IP地址
用VPN到连接本地网络