MAIL01)上通过"两个 IIS 站点 + 两套虚拟目录"实现内外分流https://mail01.digitalsee.co/owa(经钉钉网关对外发布,走 SAML/ADFS)http://mail-internal.digitalsee.co/owa(直连 Exchange,FBA)Get-ExchangeServer | ft Name,AdminDisplayVersion
Get-Service adfssrv | Select Name,StatusGet-OwaVirtualDirectory | Select Identity,InternalUrl,ExternalUrl,AdfsAuthentication,FormsAuthentication,WindowsAuthentication | ft
Get-EcpVirtualDirectory | Select Identity,InternalUrl,ExternalUrl,AdfsAuthentication,FormsAuthentication,WindowsAuthentication | ft
Get-OrganizationConfig | Select AdfsIssuer,AdfsAudienceUris,AdfsSignCertificateThumbprints | flmail01.digitalsee.co → 钉钉网关公网地址(已有)mail-internal.digitalsee.co → MAIL01 内网 IPAdd-Content $env:SystemRoot\System32\drivers\etc\hosts "`r`n192.168.50.101`tmail-internal.digitalsee.co"
ipconfig /flushdnsAdd-DnsServerResourceRecordA -Name "mail-internal" -ZoneName "digitalsee.co" -IPv4Address 192.168.50.101 -CreatePtrMAIL01 计算机帐户包含内网入口所需的 HTTP SPN:setspn -S HTTP/mail-internal.digitalsee.co MAIL01$
:: 如需确认
setspn -L MAIL01$%windir%\system32\inetsrv\appcmd add site /name:"OWA-Internal" /bindings:http/*:80:mail-internal.digitalsee.co /physicalPath:"C:\\inetpub\\wwwroot"New-OwaVirtualDirectory -WebSiteName "OWA-Internal" -InternalUrl http://mail-internal.digitalsee.co/owa -ExternalUrl http://mail-internal.digitalsee.co/owa
New-EcpVirtualDirectory -WebSiteName "OWA-Internal" -InternalUrl http://mail-internal.digitalsee.co/ecp -ExternalUrl http://mail-internal.digitalsee.co/ecp注意:如果之前在 IIS 手工建过 owa/ecp,需先删除再由上述命令创建,否则Get-OwaVirtualDirectory查不到。
Set-OwaVirtualDirectory -Identity "MAIL01\owa (OWA-Internal)" -AdfsAuthentication:$false -FormsAuthentication:$true -WindowsAuthentication:$true -BasicAuthentication:$false
Set-EcpVirtualDirectory -Identity "MAIL01\ecp (OWA-Internal)" -AdfsAuthentication:$false -FormsAuthentication:$true -WindowsAuthentication:$false -BasicAuthentication:$falseSet-OwaVirtualDirectory -Identity "MAIL01\owa (Default Web Site)" -AdfsAuthentication:$true -FormsAuthentication:$false -WindowsAuthentication:$false -BasicAuthentication:$false
Set-EcpVirtualDirectory -Identity "MAIL01\ecp (Default Web Site)" -AdfsAuthentication:$true -FormsAuthentication:$false -WindowsAuthentication:$false -BasicAuthentication:$falsenet stop was /y
net start w3svc# 设置 ADFS 发行者(Issuer)
Set-OrganizationConfig -AdfsIssuer "https://ad09.digitalsee.co/adfs/ls/"
# 设置受众 URI(Audience)
Set-OrganizationConfig -AdfsAudienceUris @(
"https://mail01.digitalsee.co/owa/", "https://mail01.digitalsee.co/owa",
"https://mail01.digitalsee.co/ecp/", "https://mail01.digitalsee.co/ecp"
)
# 设置 ADFS 签名证书指纹(从 ADFS 服务器获取)
$adfsCert = Get-AdfsCertificate -CertificateType "Token-Signing"
Set-OrganizationConfig -AdfsSignCertificateThumbprints $adfsCert.ThumbprintSet-OrganizationConfig -AdfsAudienceUris @(
"https://mail01.digitalsee.co/owa/", "https://mail01.digitalsee.co/owa",
"https://mail01.digitalsee.co/ecp/", "https://mail01.digitalsee.co/ecp",
"https://mail.digitalsee.co/owa/", "https://mail.digitalsee.co/owa",
"https://mail.digitalsee.co/ecp/", "https://mail.digitalsee.co/ecp"
)Get-OwaVirtualDirectory | Select Identity,InternalUrl,AdfsAuthentication,FormsAuthentication,WindowsAuthentication | ft
Get-EcpVirtualDirectory | Select Identity,InternalUrl,AdfsAuthentication,FormsAuthentication,WindowsAuthentication | ft# 内网入口应返回 302 到 /owa/auth/logon.aspx(表单)
Invoke-WebRequest http://mail-internal.digitalsee.co/owa/ -UseBasicParsing -MaximumRedirection 0
# 外网入口应 302 到 ADFS/IDaaS 登录页
Invoke-WebRequest https://mail01.digitalsee.co/owa/ -UseBasicParsing -MaximumRedirection 0owa/ecp 目录 Exchange 不识别,需用 Exchange 命令 New-OwaVirtualDirectory/ New-EcpVirtualDirectory 创建Get-Website 等 IIS 命令报找不到提供程序:请在"Windows PowerShell(管理员)"下安装并导入 WebAdministration,或使用 appcmdRemove-OwaVirtualDirectory -Identity "MAIL01\\owa (OWA-Internal)"
Remove-EcpVirtualDirectory -Identity "MAIL01\\ecp (OWA-Internal)"
%windir%\system32\inetsrv\appcmd delete site "OWA-Internal"
net stop was /y; net start w3svcSet-OwaVirtualDirectory -Identity "MAIL01\owa (Default Web Site)" -AdfsAuthentication:$false -FormsAuthentication:$true -WindowsAuthentication:$false
Set-EcpVirtualDirectory -Identity "MAIL01\ecp (Default Web Site)" -AdfsAuthentication:$false -FormsAuthentication:$true -WindowsAuthentication:$false
net stop was /y; net start w3svc