Azure ad b2c 在Azure AD B2C自定义策略中,IdentityExperienceFrameworkApps如何在没有机密的情况下连接到AD

Azure ad b2c 在Azure AD B2C自定义策略中,IdentityExperienceFrameworkApps如何在没有机密的情况下连接到AD,azure-ad-b2c,Azure Ad B2c,也张贴到 在中,我们有文件LocalAccounts/TrustFrameworkExtensions.xml,其中包含: <TechnicalProfiles> <TechnicalProfile Id="login-NonInteractive"> <Metadata> <Item Key="client_id">ProxyIdentityExperienceFrameworkAppId</Item>

也张贴到

在中,我们有文件
LocalAccounts/TrustFrameworkExtensions.xml
,其中包含:

<TechnicalProfiles>
   <TechnicalProfile Id="login-NonInteractive">
    <Metadata>
      <Item Key="client_id">ProxyIdentityExperienceFrameworkAppId</Item>
      <Item Key="IdTokenAudience">IdentityExperienceFrameworkAppId</Item>
    </Metadata>
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="client_id" DefaultValue="ProxyIdentityExperienceFrameworkAppID" />
      <InputClaim ClaimTypeReferenceId="resource_id" PartnerClaimType="resource" DefaultValue="IdentityExperienceFrameworkAppID" />
    </InputClaims>
  </TechnicalProfile>
</TechnicalProfiles>

ProxyIdentityExperienceFrameworkAppId
IdentityExperienceFrameworkAppId
有人能解释为什么需要两个应用程序才能使这些自定义策略工作吗? IEF如何使用它们

此外,我在这些文件中没有看到任何机密或应用程序密钥被传递给IEF。IEF如何仅使用应用程序ID连接到AAD?

通过使用资源所有者密码凭据授予类型向Azure AD目录发送访问令牌请求来验证本地帐户:


https://login.microsoftonline.com/{tenant}/oauth2/token
与Azure AD目录的所有访问令牌请求一样,此访问请求必须包含客户端应用程序(即ProxyIdentityExperienceFramework应用程序)和资源应用程序(即IdentityExperienceFramework应用程序)的标识符


您不必为客户端应用程序指定密码,因为它是。

因此,我的理解是,本机应用程序ProxyIdentityExperienceFramework将使用用户凭据对AD进行身份验证,就像其他任何人都可以直接在其AD上注册的任何其他本机应用程序一样。是这样吗?如果是这样,则应该会导致身份验证令牌从AD发送回运行策略的引擎。如果是这种情况,这是存储在B2C_1A_TokenSigningKeyContainer中的吗?身份验证令牌由IEF引擎验证,其中包含的声明由
login NonInteractive
TP映射,然后将其丢弃。
B2C_1A_TokenSigningKeyContainer
密钥用于签署Azure AD B2C向依赖方应用程序颁发的ID和访问令牌。为了与B2C目录集成,B2C引擎正在进行自身身份验证(即作为名为“CPIM服务”的内部应用程序)然后使用Azure AD Graph API读取和写入目录数据。不,没有任何官方文档对此进行描述,AFAIK。当“CPIM服务”应用程序与您的目录数据交互时,它将以自己的身份进行交互,而不是以与“ProxyIdentityExperienceFramework”或“IdentityExperienceFramework”应用程序相关的身份进行交互。