将Office 365与基于SAML的自定义身份提供程序集成,然后再使用ADFS

时间:2015-08-20 06:45:32

标签: java azure single-sign-on office365 saml

我们目前正在使用基于Saml的身份提供商(Idp)生成SAML响应以允许SSO到Google应用。 我们希望使用java支持Office 365

我正在查看Office 365的所有文档,从我看到的,它使用SAML,但仅限于由ADFS(Active Directory联合身份验证服务)或任何其他联合身份验证服务提供。 是否可以将Office 365配置为使用我的Idp进行身份验证,而不依赖于ADFS和活动目录(AD)。 如果是,您能否详细说明如何配置相同。 我尝试使用powershell管理Office 365,但是当我尝试使用Connect-MsolService连接到Office 365后尝试执行此命令行开关转换后,它失败了。

我收到错误:

Convert-MsolDomainToFederated : Failed to connect to Active Directory Federation Services 2.0 on the local machine.Please try running Set-MsolADFSContext before running this command again.

这适用于任何人吗?请建议

我已推荐此msdn1msdn2个链接。

由于

1 个答案:

答案 0 :(得分:1)

您需要按照“在Office 365租户中配置域以进行联盟”下的说明进行操作{。{3}}。

因为你需要一个STS用于“活动”,而SAML就足以用于“被动”(除非你有新的符合ADAL标准的O365厚客户端 - 但这些对第三方供应商来说效果不佳)。如果您有STS for active,则需要MetadataExchangeUri。

您正在使用here进行Set-MsolDomainAuthentication:

Set-MsolDomainAuthentication -Authentication federated -DomainName <string> [-ActiveLogOnUri <string>] [-FederationBrandName <string>] [-IssuerUri <string>] [-LogOffUri <string>] [-MetadataExchangeUri <string>] [-PassiveLogOnUri <string>] [-SigningCertificate <string>]

正如我所说,如果你有可用的STS,你只需要“有效”。

他们在第一个链接上提供的示例相当不错,您最终会得到类似的结果:

$dom = "contoso.com" 
$BrandName - "Sample SAML 2.0 IDP" 
$LogOnUrl = "https://saml.contoso.com/samlLogonEndpoint" 
$LogOffUrl = "https://saml.contoso.com/SamlLogOffEndpoint" 
$stsUrl = "https://saml.contoso.com/PAOS" 
$MyURI = "urn:uri:MySamlp2IDP" 
$MySigningCert = @" --- YOUR CERT HERE ---" "@ 
$entityID = "http://saml.contoso.com" 
$Protocol = "SAMLP" 
Set-MsolDomainAuthentication ` -DomainName $dom -FederationBrandName $dom -Authentication Federated -PassiveLogOnUri $LogOnUrl -ActiveLogOnUri $stsUrl -SigningCertificate $MySigningCert -IssuerUri $entityID -LogOffUri $LogOffUrl -PreferredAuthenticationProtocol $Protocol