【问题标题】:AADSTS700016: Application with identifier 'some_id' was not found in the directory 'some_another_id'AADSTS700016:在目录“some_another_id”中找不到标识符为“some_id”的应用程序
【发布时间】:2019-12-10 23:20:41
【问题描述】:

我需要一个带有自定义策略的联合身份验证(当用户通过身份验证时,我需要他在 b2c 用户中显示为联合身份,而不是其他人或我可以通过单个租户实现的其他东西),我之前在默认策略设置中拥有它azure 作为 OpenId 提供者,但没有找到如何在自定义策略中使用 OpenId 进行联邦身份验证,所以我使用 SAML 并低于我所拥有的。

我试过单租户,但这不是我需要的。问题也不在于签名密钥,因为我已经遇到了这个问题并解决了这个问题。我创建了自签名证书,先将其上传到 AAD 应用程序,然后再上传到 b2c 策略密钥。 我认为验证联合身份的应用程序不是问题,因为我使用默认策略。

    <TechnicalProfile Id="Office-SAML2">
      <DisplayName>Microsoft Office 365</DisplayName>
      <Description>Login with your ADFS account</Description>
      <Protocol Name="SAML2"/>
      <Metadata>
        <Item Key="WantsSignedRequests">false</Item>
        <Item Key="PartnerEntity">https://login.microsoftonline.com/<b2c tenant id>/federationmetadata/2007-06/federationmetadata.xml</Item>
        <Item Key="XmlSignatureAlgorithm">Sha256</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SamlCert"/>
        <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SamlCert"/>
      </CryptographicKeys>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userPrincipalName" />
        <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/>
        <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/>
        <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/>
        <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="https://sts.windows.net/<b2c tenant id>/" AlwaysUseDefaultValue="true" />
        <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
      </OutputClaims>
      <OutputClaimsTransformations>
        <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
        <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
        <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
        <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
      </OutputClaimsTransformations>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop"/>
    </TechnicalProfile>

我一直在通过这个参考做所有事情 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-custom-setup-adfs2016-idp

【问题讨论】:

    标签: azure-active-directory azure-ad-b2c saml saml-2.0 adfs


    【解决方案1】:

    我遇到了这个问题,因为我使用的是客户端密码部分中的 ID,而不是使用 Application (client) ID

    【讨论】:

    • 谢谢,你节省了我的时间,我犯了同样的错误,我使用证书中的 ID 列。
    • 感谢您拯救了我的一天。
    • 谢谢! (以防万一:您需要使用十六进制 id 而不是应用名称)
    【解决方案2】:

    我遇到这个错误的可能性如下:

    【讨论】:

      【解决方案3】:

      这里的问题是 AAD 应用程序注册的标识符 URI 与身份验证请求中请求的标识符不匹配。您可以通过以下方式解决此问题:

      1. 复制隐藏屏幕截图中的 URL
      2. 导航到要与之联合的 Azure AD 租户中的 Azure AD 刀片 3. 访问企业应用程序菜单,通过 ApplicationId(ClientId) 找到应用程序注册
      3. 打开Single Sign-On 菜单。
      4. 将错误中的 URL 粘贴到 Identifier (Entity ID) 选项中

      您还需要正确的Reply URL:
      https://contoso.b2clogin.com/te/contoso.onmicrosoft.com/&lt;policyd of Base&gt;/samlp/sso/assertionconsumer

      您最好使用 OpenId(它还允许多租户访问):
      https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom

      【讨论】:

        【解决方案4】:

        对我来说,问题是我的基本 SAML 配置菜单中的应用程序标识符(实体 ID)与应用程序提供商声明的不匹配。

        【讨论】:

          猜你喜欢
          • 2021-12-26
          • 2016-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-26
          • 2020-05-24
          • 1970-01-01
          相关资源
          最近更新 更多