引入云服务以后身份验证所存在的问题?
就是传统的目录不能支持云登录,当前的协议Kerberos LDAP等等,这些协议都不能通过互联网访问,新的协议,比如:OAuth2,OpenID Connect,就可以通过网络访问。
Azure Active Directory是一种服务,专门用来管理用户身份标识和管理访问权限,针对用户可以是企业内部员工,也可以是合作伙伴,或者是顾客。
注意:Azure AD 不是!!!Windows Server AD DS在Azure上
Azure Domain service 的特点
用来管理Azure的资源,定义谁能访问哪些资源,谁不能访问哪些资源,谁的权限又是什么。
内置默认有三个角色:owner(啥都可以做)、contributer(啥都可以做除了不能分配、删除角色任务)、reader(只能看)
RBAC的角色分配具有继承性,分配可以访问的资源可以是资源组,也可以细化到一个资源。
AAD安全原则
角色可以分配给:用户、外部用户、外部微软账户,比如@outlook.com
角色可以分配给:AD安全组,如果一个组能访问某资源,组里的成员也享有同样的访问权。
而且,安全组的访问权可以从本地直接搬到云上用。
管理组
管理组是用来装很多订阅的容器。比如,这一堆订阅属于开发组,这一堆订阅属于财务组。管理组的级别比订阅级别高,Azure Policy和Role Based Access Control可以应用在管理组、订阅、资源组、资源。
根管理组
每个目录都有一个最高级的管理组,叫根管理组,所有的管理组隶属于一个根管理组。
管理组的限制:一个目录下面可以有1w个管理组。一个管理组树最多有6层,这个层数限制不包括根管理组层和订阅层。一个订阅和管理组只能隶属一个父项。
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协议进行验证,也支持多因子验证。
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
多因子有啥:
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)
Application proxy安在云上,对应的connector按在本地,用户通过connector路由流量连接到云上的服务
Connector拿来干嘛?
连接很多数据中心的站点,如果想把流量控制在单个数据中心内部,因为跨数据中心的连接很贵,就可以在每个数据中心放connector,这些connector只用来服务这个数据中心内部的app。
Conditional access是AAD的一个功能,这个功能允许你基于特定的环境条件,去控制访问app的权限,你可以设置访问要求,也可以阻止访问。
Conditional access是基于策略的,一般要定义访问的要求,比如,如果有来自不信任网络的connector想去访问云上的app,那么就要阻止访问。
控制
如果条件访问策略满足,那么contral statement就是用来定义接下来要发生什么。
目前AAD允许以下的control要求,
PIM是Azure用来管理、控制、监控组织内的访问
AAD PIM功能:
AAD PIM 管理以下AAD role:
Global admin
billing admin
service admin
user admin
password admin
JIT Administrator access
PIM管理
PIM要求Premium P2 edition,用门户网站启用PIM,部署时需要跑一遍安全安装向导,然后就可以呈现PIM board,上面有目录用户的有效历史,目录用户的分布,有多少eligible,有多少permenant。
为什么要在Azure IaaS上部署AD DS
Azure AD DS的应用场景
Azure Domain Controller DC是本地DC的虚拟版本
虚机可以用静态或者动态IP地址
用VPN到连接本地网络