使用 google 工作区验证 Azure SAML 的域

Verify domain for Azure SAML with google workspace

我正在尝试将用户从 Google 工作区配置到 Azure AD,并让我的用户使用他们的公司 google 帐户登录到 Azure 门户。我已将我的自定义域添加到 Azure AD,并在 Google 端配置了集成。但是,在配置工作时,当用户尝试登录 Azure 时,他们需要输入密码,而不是被重定向到 google 以使用他们的工作区帐户。

阅读文档后,我已将 TXT 记录设置为使用 google 指示的 SSO url 作为 DirectFedAuthUrl 属性。我已经通过不同的工具验证它确实设置为 https://accounts.google.com/o/saml2/idp?idpid=xxxx。现在,我尝试使用我的自定义域在 Azure AD 中设置 SAML 它 returns 一个直接联合策略未通过某些要求的错误,并将我定向到文档。我做错了什么?

如何验证我的自定义域以使其与 Azure SAML 一起使用?

• 请检查为发送用户进行身份验证并从 google 接收令牌而输入的身份验证 URL 是否与 google 的目标域相匹配,这样当用户尝试访问天蓝色的应用程序,它们被正确重定向到 google IdP。

• 此外,请检查您添加的自定义域是否已在 Azure AD 中验证,并且您的域未通过 Azure AD 管理,因为如果是这种情况,Azure 会阻止 SAML/WS-Fed Azure AD 验证域的 IdP 联合支持本机 Azure AD 托管域功能。

• 确保您的唯一自定义域仅在 Azure AD 中向一个租户注册,因为当前不支持通过同一租户与多个域联合。此外,检查您在设置联合时为 Azure AD 中使用的自定义域更新的 DNS TXT 记录是否正确设置,即,应为您在 google 套件中设置的域更新 TXT 记录如果它与 Azure AD 中使用的自定义域不同,请按如下方式设置 TXT 记录:-

'fabrikam.com。文本格式 DirectFedAuthUrl=https://fabrikamconglomerate.com/adfs '

在这种情况下,'fabrikam.com'是注册的域名,但身份验证中的域名URL与注册的域名不匹配,因此您需要将TXT记录更新为在您的 public DNS 注册表中。此外,Microsoft 已在其官方文档中声明上述步骤存在一个已知问题,他们正在积极努力尽早解决该问题,因为将 DNS 文本记录添加到联合 IdP 的域不会取消身份验证。

请在下方link找到更多信息:-

https://docs.microsoft.com/en-us/azure/active-directory/external-identities/direct-federation

这不是答案,而是更多的提示:尝试使用 powershell 获取有关 SAML 设置为何不起作用的更多诊断信息。 MS Doc 中的一些示例 powershell。

https://docs.microsoft.com/en-us/azure/active-directory/external-identities/direct-federation#to-configure-samlws-fed-idp-federation-in-azure-ad-using-powershell

因此,例如在下面,我收到的消息比在门户中要好得多。门户刚刚说“无法添加提供商”或类似内容。

PS C:\WINDOWS\system32> New-AzureADExternalDomainFederation -ExternalDomainName $domainName  -FederationSettings $federationSettings -verbose
New-AzureADExternalDomainFederation : Error occurred while executing NewExternalDomainFederation
Code: Request_BadRequest
Message: PassiveLogOnUri is not supported as it does not match the external domain: MYTESTDOMAIN.com or it is not from one of the supported third party identity providers. To verify the PassiveLogOnUri, please add the PassiveLogOnUri in the DNS TXT record like this
    DirectFedAuthUrl=https://MYTESTB2CTENANT.b2clogin.com/MYTESTB2CTENANT.onmicrosoft.com/B2C_1A_SAMLIdPsignup_signin/samlp/sso/login. 

paramName: passiveLogOnUri, paramValue:
    https://MYTESTB2CTENANT.b2clogin.com/MYTESTB2CTENANT.onmicrosoft.com/B2C_1A_SAMLIdPsignup_signin/samlp/sso/login, objectType: System.String
    RequestId: <some guid>
    DateTimeStamp: Wed, 06 Oct 2021 05:21:27 GMT
    Details: PropertyName  - passiveLogOnUri, PropertyErrorCode  - PassiveLogOnUriNotSupported
    HttpStatusCode: BadRequest
    HttpStatusDescription: Bad Request
    HttpResponseStatus: Completed
    At line:1 char:1
    + New-AzureADExternalDomainFederation -ExternalDomainName $domainName   ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [New-AzureADExternalDomainFederation], ApiException
        + FullyQualifiedErrorId : Microsoft.Open.AzureADBeta.Client.ApiException,Microsoft.Open.AzureADBeta.PowerShell.NewExternalDomainFederation

感谢错误消息,我被引导按照指示更新 DNS 记录,这确实允许我注册 SAML IDP(在我的例子中是 Azure B2C)。

旁注:尽管现在可以成功注册,但作为 SAML IDP 的 B2C 实际上还没有为我工作,我想我的问题可能是这样的:

我想我的下一个选择是:

如果身份验证 URL 是 https://fabrikam.com or https://sts.fabrikam.com/adfs(同一域中的主机),则不需要更改 DNS。

但这需要一个 Azure Front Door,我现在不想设置它 https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-domain?pivots=b2c-custom-policy