如何搭建一套Azure AD与ADFS集成身份的环境

如何搭建一套Azure AD与ADFS集成身份的环境,第1张

1 一个公网IP地址,这个公网IP地址是需要发布ADFS服务,从而在从Azure

AD重定向到ADFS服务时能找到。实际环境中,可以使用ADFS Proxy或者Windows Application

Proxy,或者其他反向代理将ADFS发布出来。测试环境中,我们会Azure的虚拟机,因为Azure虚拟机所在的Cloud

Service提供了一个公网地址。

2 一个公网证书,这是客户端通过https的ADFS服务时需要的证书,测试环境中我们就不适用公网证书了,使用自建的CA服务器,缺点是客户端访问会报证书错误,或者得提前在客户端安装证书,但这不影响实际功能使用。

3 DC

4 ADFS

5 公网域名

以下测试环境中需要使用Azure,至少需要一个Azure订阅,具体步骤如下

1 首先登陆Azure的门户,在网络中创建一个虚拟网络

2 创建完成后,我们创建2个Server 2012 r2 虚拟机,一台为DC,一台为ADFS。在虚拟机的设置里,网络选择我们刚刚创建的CorpNet,针对ADFS,我们需要在端口上把HTTPS和HTTP都打开。

3 在创建过程中,我们先下载一下Azure的PowerShell组件,我们需要为这两个虚拟机固定一下IP地址。

注:Azure Powershell是需要net framework 45的,所以如果你目前的PC是Win7或者更老版本的话,请安装NET framework 45

4

使用MSTSC远程登陆创建好的DC和ADFS,查看这两台服务器的目前分配得到的IP地址,这是用我们创建的CorpNet的DHCP分配的,我们需要

让他们固定使用这两个IP,以免在虚拟机重启后得到不一样的IP。特别是DC,我们必须保证DC和上面的DNS始终是用一个IP地址。

5 记录下来后打开我们安装好的Azure PowerShell,首先连接到我们的Azure账户

如果是中国的Azure

Add-AzureAccount -Environment azurechinacloud

如果是Global的Azure

Add-AzureAccount

6 登录后,使用以下命令设定固定IP,替换你自己的虚拟机名字以及IP地址。

Get-AzureVM -Name corp-dc -ServiceName corp-dc| Set-AzureStaticVNetIP -IPAddress 10006 | Update-AzureVM

Get-AzureVM -Name corp-adfs -ServiceName corp-adfs | Set-AzureStaticVNetIP -IPAddress 10005 | Update-AzureVM

注: 这里我们设定的是固定的内部IP,Azure支持设定固定的外部IP地址,这里不详细介绍,具体方法请参阅http://msdnmicrosoftcom/en-us/library/azure/dn690120aspx

7 设置完成后,我们在DC上,安装DC、DNS的角色。忽略关于DNS的非静态IP的报错。

8 安装完成后,在服务器管理器中选择将此台服务器提升为域控。创建一个新的域。其中在域名这一块,填入你公网域名相同的名字,或者子域名。

我拥有jashuangcn,我这里使用了子域名corp1jashuangcn作为我的域,你也可以使用一级域名。

然后一路下一步直到安装。

9 安装完成后重启DC。

10 然后我们在DC上安装我们的证书服务,然后一路下一步直到安装。

11 安装完成后,选择配置,在角色服务上,选择证书颁发机构,然后一路下一步,然后选择配置。

12 完成后,我们需要新建一张SSL的证书,用户ADFS的HTTPS通信。运行命令certsrvmsc,在证书模板上右击,选择管理

13 在新窗口招到web服务器证书,右击选择复制模板。在常规标签项,命名为ADFS SSL。

进入安全选项卡,添加 domain users,domain computers,权限选择注册和读取

进入使用者名称 选项卡, 使用者名称格式变为:公用名,勾选 DNS 名

14 回到证书颁发机构,右击证书模板,点击新建要颁发的证书模板,选择ADFS SSL

15 然后,运行命令domainmsc,打开域和信任管理窗口,我们需要添加UPN名。右击Active Directory域和信任关系,选择属性。在UPN标签项填入我们的域名,点击添加 – > 应用 – > 完成。

15 到此,我们把DC配置完成了。现在先登录到Azure的门户,打开我们之前创建的虚拟网络,在配置选项里,我们需要指定虚拟网络的DNS,将他指向DC,再添加一个指向Azure public DNS的记录(否则外网无法解析),然后点击保存。

16 重启一下ADFS。然后将ADFS加入域中。重启后使用域管理员登录。

17 现在我们在ADFS的HOST文件(路径C:windowssystem32driversetcHosts)中加2条DNS记录,按照自己的域名和DC名以及IP地址加入这两条记录,主要是为了防止DNS解析出现问题时能找到DC。

corp1jashuangcn 10006

corp-dccorp1jashuangcn 10006

18 之后需要安装之前我们的证书。打开 MMC, 点击文件-添加、删除管理单元,选择计算机账户, 选择本地计算机,点击确定,右击 个人,点击 所有任务—申请新证书,一直点击下一步,在证书注册中选择ADFS SSL。然后选择注册

19 安装证书完成后,在DC服务器上打开Powershell,运行以下命令。

Add-kdsrootKey –effectivetime (get-date)addhours(-10)

New-adserviceaccount fsgmsa –dnshostname corp-adfscorp1jashuangcn –serviceprincipalnames http/corp-adfscorp1jashuangcn

20 然后回到ADFS,在ADFS上安装ADFS角色

21 完成后,点击配置ADFS。在指定服务属性里,选择我们之前导入的证书,在服务账号选择fsgmsa,然后一直下一步直到配置完成。

23 配置完成后,安装Web服务器角色,这主要是为了安装IIS管理器。

24 安装完成后,打开IIS管理器, 右击Default Website,选择编辑绑定,点击添加,然后添加HTTPS,证书选择之前我们导入的证书。

22 配置完成后,可以打开IE,输入以下网址,尝试登录,简单测试ADFS是否正常。

你在安装U盾的驱动程序了吗下面的方法可以做一、第一次在电脑上使用个人网上银行,用光盘安装(在柜台申请U盾一般都佩有安装光盘的),运行U盾光盘,选择安装主页面的“系统升级”,系统会自动检测并提示您安装补丁。安装补丁后,请选择“驱动程序安装”,安装U盾驱动程序二、登录工行个人网上银行,进入“客户服务-U盾管理-U盾自助下载”,完成证书信息下载。下载前请确认U盾已连接到电脑USB接口上。三、 在登录个人网上银行之后,如需办理转账、汇款、缴费等对外支付业务,只要按系统提示将U盾插入电脑的USB接口,输入U盾密码,并经银行系统验证无误,即可完成支付业务。

  要想成功架设SSL安全站点关键要具备以下几个条件。

  1、需要从可信的证书办法机构CA获取服务器证书。

  2、必须在WEB服务器上安装服务器证书。

  3、必须在WEB服务器上启用SSL功能。

  4、客户端(浏览器端)必须同WEB服务器信任同一个证书认证机构,即需要安装CA证书。

  下面,我们对照上面的四部,进行一步一步的操作

  1:需要从可信的证书办法机构CA获取服务器证书(由于我们是在本地做测试环境,而不是实际操作。所以这里我们自己创建一个证书。如果是实际的操作,需要通过域名商,来获取一个证书,这是要花钱的。)

  2:必须在WEB服务器上安装服务器证书。

  打开IIS,找到服务器证书、

  点击创建自签名证书

  输入你要创建的证书的名字,我这里取名 joeyssl

  3、必须在WEB服务器上启用SSL功能。

  接下来,我们新建一个本地测试站点,并且绑定刚才我们创建的证书。

  打开 hosts 文件,用于创建一个站点的名称(例如 http://webjoeyssl 那么这个 webjoeyssl 就是我们需要创建的站点名称,我用hosts解析为本地)

  C:\Windows\System32\drivers\etc

  在IIS里面绑定目录,绑定http和 https

  

  在添加的时候,绑定类型,先选择 http 的类型,虽然这里有 https,但是还是首先要保证能通过 http能访问网站,毕竟大部分的人都是通过http来打开站点的,只是在某些特别需要加密的地方用到https,我们下一步会绑定 https的,这里先不急,除非你整个站点都是https运用,那么这里才只选择https。

1、创建私有CA并进行证书申请。

1 :创建 CA 私钥

$ openssl genrsa -des3 -out cakey 4096

2 :生成 CA 的自签名证书,其实 CA 证书就是一个自签名证书

$ openssl req -new -x509 -days 365 -key cakey -outcacrt

3 :生成需要颁发证书的私钥

$ openssl genrsa -des3 -out serverkey 4096

4 :生成要颁发证书的证书签名请求

Ps:证书签名请求当中的 Common Name 必须区别于 CA 的证书里面的 Common

Name

$ openssl req -new -key serverkey -out servercsr

5 :创建一个ext文件,内容如下

keyUsage = nonRepudiation, digitalSignature,keyEncipherment

extendedKeyUsage = serverAuth, clientAuth

subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]

DNS1=abccom

DNS2=abccom

6 :用 2 创建的 CA 证书给 4 生成的 签名请求 进行签名

$ openssl x509 -req -days 365 -extfile httpext -inservercsr -CA cacrt -CAkey cakey -set_serial 01 -out servercrt

7 :最终会得到一下几个文件

cacrt: 这个是ca证书,客户端信任该证书意味着会信任该证书颁发出去的所有证书

cakey: ca证书的密钥

serverkey: 服务器密钥,需要配置的

servercsr: 证书签名请求,通常是交给CA机构,这里我们就自己解决了

servercrt: 服务器证书,需要配置的

2、总结ssh常用参数、用法

ssh命令是ssh客户端,允许实现对远程系统经验证地加密安全访问。ssh客户端配置文件是:/etc/ssh/ssh_config

ssh

命令配合的常见选项:

-p port

:远程服务器监听的端口

ssh 19216818 -p 2222

-b

指定连接的源IP

ssh 19216818 -p 2222 -b 192168188

-v

调试模式

ssh 19216818 -p 2222 -v

-C

压缩方式

-X

支持x11转发支持将远程linux主机上的图形工具在当前设备使用

-t

强制伪tty分配,如:ssh -t remoteserver1 ssh -t remoteserver2 ssh

remoteserver3

-o option

如:-oStrictHostKeyChecking=no

-i

指定私钥文件路径,实现基于key验证,默认使用文件:~/ssh/id_dsa,

~/ssh/id_ecdsa,/ssh/id_ed25519

,/ssh/id_rsa等

3、总结sshd服务常用参数。服务器端的配置文件: /etc/ssh/sshd_config

常用参数:

Port #

端口号

ListenAddress ipLoginGraceTime 2m #

宽限期

PermitRootLogin yes #

默认ubuntu不允许root远程ssh登录

StrictModes yes #

检查ssh/文件的所有者,权限等

MaxAuthTries 6

MaxSessions 10 #

同一个连接最大会话

PubkeyAuthentication yes #

基于key验证

PermitEmptyPasswords no #

空密码连接

PasswordAuthentication yes #

基于用户名和密码连接

GatewayPorts no

ClientAliveInterval 10 #

单位:秒

ClientAliveCountMax 3 #

默认3

UseDNS yes #

提高速度可改为no

GSSAPIAuthentication yes #

提高速度可改为no

MaxStartups #

未认证连接最大值,默认值10

Banner /path/file

以下可以限制可登录用户的办法:

AllowUsers user1 user2 user3

DenyUsers

AllowGroups

ssh

服务的最佳实践建议使用非默认端口禁止使用protocol version 1

限制可登录用户设定空闲会话超时时长利用防火墙设置ssh访问策略仅监听特定的IP地址基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom| head -c 12|

xargs

使用基于密钥的认证禁止使用空密码禁止root用户直接登录限制ssh的访问频度和并发在线数经常分析日志

4、搭建dhcp服务,实现ip地址申请分发

一、配置DHCP服务器

1、安装DHCP服务器软件

[root@centos01 ~]# mount /dev/cdrom /mnt/<!--挂载操作系统光盘-->

mount: /dev/sr0 写保护,将以只读方式挂载

[root@centos01 ~]# rm -rf /etc/yumreposd/CentOS-<!--删除系统自动yum源-->

[root@centos01 ~]# yum -y install dhcp<!--安装DHCP服务 -->

2、建立主配置文件dhcpdconf

[root@centos01 ~]# vim /etc/dhcp/dhcpdconf<!--编辑主配置文件-->

:r /usr/share/doc/dhcp-425/dhcpdconfexample<!--读取默认配置文件-->

ddns-update-style none;<!--禁用DNS动态更新-->

option domain-name "benetcom";<!--指定默认搜索域-->

option domain-name-servers 202106010, 202106020; 

<!--指定DNS服务器地址-->

default-lease-time 600;<!--默认租约时间-->

max-lease-time 7200;<!--最大租约时间-->

1)/etc/dhcp/dhcpdconf文件的配置构成

在主配置文件dhcpdconf中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述:

声明:用来描述dhcpd服务器中对网络布局的划分,是网络设置的逻辑范围。常见的声明是subnet、host,其中subnet声明用来约束一个网段。host声明用来约束一台特定主机。

参数:由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。

选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS服务器地址等)。

2)确定dhcpd服务的全局配置

为了使配置文件的结构更加清晰、全局配置通常会放在配置文件dhcodconf的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述:

ddns-update-style:动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。在实际的DHCP应用中很少用到该参数。将值设为“none”即可。

default-lease-time:默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个IP地址的默认时间。

max-lease-time:最大租约时间。单位为秒,表示允许DHCP客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。

option domain-name:默认搜索区域。未客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolvconf配置文件中,如“search benetcom”。

option domain-name-servers:DNS服务器地址。为客户端指定解析域名时使用的DNS服务器地址,该配置选项同样将体现在客户机的/etc/resolvconf配置文件中,如“nameserver 202106020”。需要设置多个DNS服务器地址时,以逗号进行分隔。

3)确定subnet网段声明

一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。例如,若要DHCP服务器为1921681000/24网段提供服务,用于自动分配的IP地址范围为192168100。100~192168100200,为客户机指定默认网关地址为192168100254,则ke可以修改dhcpdconf配置文件,参考以下内容调整subnet网段声明:

[root@centos01 ~]# vim /etc/dhcp/dhcpdconf<!--编辑主配置文件-->

subnet 1921681000 netmask 2552552550 {<!--声明网段地址-->

range 192168100100 192168100200;<!--设置地址池,可以有多个-->

option routers 192168100254;<!--指定默认网关地址-->

}

4)确定host主机声明

host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址),这些主机的共同特点是要求每次获取的IP地址相同,以确保服务的稳定性。

host声明通过host关键字指定需要使用保留地址的客户机名称,并使用“hardware ethernet”参数指定该主机的MAC地址,使用“fixed-address”参数指定保留给该主机的IP地址。例如,若要为打印机prtsvr(MAC地址为00:0C:29:0D:BA:6B)分配固定的IP地址192168100101,可以修改dhcpdconf配置文件,参考以下内容在网段声明内添加host主机声明。

C:\Users\Administrator>getmac

物理地址            传输名称

=================== =======================================================

00-0C-29-0D-BA-6B  \Device\Tcpip_{92E3F48B-40F0-4A0D-9604-6386AAAE3233}<!--客户端获取MAC地址-->

[root@centos01 ~]# vim /etc/dhcp/dhcpdconf

host win7 {

hardware ethernet 00:0C:29:0D:BA:6B;<!--客户机的MAC地址-->

fixed-address 192168100101;<!--分配给客户机的IP地址-->

}

3、启动dhcpd服务

在启动dhcpd服务之前,应确认提供DHCP服务器的网络接口具有静态指定的固定IP地址,并且至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则将无法正常启动dhcpd服务。例如,DHCP服务器的IP地址为19216810010,用于为网段192。1681000/24内的其他客户机提供自动分配地址服务。

安装dhcp软件包以后,对应的系统服务脚本位于/usr/lib/systemd/system/dhcpdservice,可以使用systemd服务进行控制。例如,执行以下操作可以启动dhcpd服务,并检查UDP的67端口是否在监听,以确认DHCP服务器是否正常。

[root@centos01 ~]# systemctl start dhcpd<!--启动dhcp服务-->

[root@centos01 ~]# systemctl enable dhcpd<!--设置服务开机自动启动-->

[root@centos01 ~]# netstat -anptu | grep 67<!--监听DHCP服务端口号-->

udp        0      0 0000:67              0000:                          2102/dhcpd         

udp        0      0 0000:67              0000:                          1064/dnsmasq       

注意:需要关闭、重启dhcpd服务时,只要将上述操作命令中的“start”改为“stop”或“restart”即可。

二、使用DHCP客户端

1、windows客户端

ipconfig /renew<!--可以为主机重新获取新的IP地址-->

ipconfig /release<!--释放IP地址-->

tracert IP地址<!--可以测试从当前主机到目的主机经过的网络节点-->

route print<!--查看路由表-->

2、Linux客户端

在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”配置行,并重新加载配置文件或者重新启动network服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址:

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=dhcp

DEFROUTE=yes

NAME=ens32

DEVICE=ens32

ONBOOT=yes

[root@centos02 ~]# ifdown ens32 ; ifup ens32

[root@centos02 ~]# systemctl restart network

在Linux客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行“dhclient”命令,则dhclient将尝试为除回环接口lo以外的所有网络接口通过DHCP方式申请新的地址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合“-d”选项使其在前台运行,测试完毕后按Ctrl+C组合键终止。例如,执行“dhclient -d ens32”命令后,可以为网卡ens32自动获取新的IP地址,并显示获取过程。

[root@centos02 ~]# dhclient -d ens32

Internet Systems Consortium DHCP Client 425

Copyright 2004-2013 Internet Systems Consortium

All rights reserved

For info, please visit https://wwwiscorg/software/dhcp/

Listening on LPF/ens32/00:0c:29:97:5c:9f

Sending on  LPF/ens32/00:0c:29:97:5c:9f

Sending on  Socket/fallback

DHCPDISCOVER on ens32 to 255255255255 port 67 interval 4 (xid=0x5364e17f)

DHCPDISCOVER on ens32 to 255255255255 port 67 interval 6 (xid=0x5364e17f)

DHCPDISCOVER on ens32 to 255255255255 port 67 interval 14 (xid=0x5364e17f)<!--DHCP发现-->

DHCPREQUEST on ens32 to 255255255255 port 67 (xid=0x5364e17f)<!--DHCP请求-->

DHCPOFFER from 19216810010<!--DHCP提供-->

DHCPACK from 19216810010 (xid=0x5364e17f)<!--DHCP确认-->

bound to 192168100102 -- renewal in 229 seconds

<!--按Ctrl+C组合键终止-->

客户端需要通过dhclient命令释放获取的IP租约时,可以结合“-r”选项。例如,执行以下的“dhclient -r ens32”将会释放之前为网卡ens32获取的IP租约。此时再通过执行“ifconfig ens32”命令就看不到分配的IP地址了。

[root@centos02 ~]# dhclient -r ens32

CA是负责签发证书、认证证书、管理已颁发证书的机关。CA认证即电子认证服务是指为电子签名相关各方提供真实性、可靠性验证的活动。

证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。在SET交易中,CA不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。

扩展资料:

根据《电子认证服务管理办法》第五条 电子认证服务机构应当具备下列条件:

(一)具有独立的企业法人资格。

(二)具有与提供电子认证服务相适应的人员。从事电子认证服务的专业技术人员、运营管理人员、安全管理人员和客户服务人员不少于三十名,并且应当符合相应岗位技能要求。

(三)注册资本不低于人民币三千万元。

(四)具有固定的经营场所和满足电子认证服务要求的物理环境。

(五)具有符合国家有关安全标准的技术和设备。

(六)具有国家密码管理机构同意使用密码的证明文件。

(七)法律、行政法规规定的其他条件。

——CA认证

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何搭建一套Azure AD与ADFS集成身份的环境

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情