Azure ad b2c 如何从id\u token\u提示中提取多个值到特定声明中?

Azure ad b2c 如何从id\u token\u提示中提取多个值到特定声明中?,azure-ad-b2c,azure-ad-b2c-custom-policy,Azure Ad B2c,Azure Ad B2c Custom Policy,我有一个id_token_提示,其中包含来自的令牌。基于令牌中的角色,我愿意将其用作受信任方。下面是一个JWT令牌示例: { "iss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", "iat": 1610050840, "nbf": 1610050840, "exp": 1610054740,

我有一个id_token_提示,其中包含来自的令牌。基于令牌中的角色,我愿意将其用作受信任方。下面是一个JWT令牌示例:

{
  "iss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/",
  "iat": 1610050840,
  "nbf": 1610050840,
  "exp": 1610054740,
  "aio": "E2JgYPi646//0000000000000000000=",
  "app_displayname": "my_app_displayname",
  "appid": "00000000-0000-0000-0000-000000000000",
  "appidacr": "1",
  "idp": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/",
  "idtyp": "app",
  "oid": "00000000-73e4-46ae-b464-000000000000",
  "rh": "0.AAAAiKphxJIQoUmmKLTdWWDB80kfo3ST3nNJgG0000000000000.",
  "roles": [
    "Mail.Send",
    "Policy.ReadWrite.TrustFramework"
  ],
  "sub": "00000000-73e4-46ae-b464-000000000000",
  "tenant_region_scope": "EU",
  "tid": "00000000-0000-0000-0000-000000000000",
  "uti": "jDVAsZtcd0ezvvkFN00000",
  "ver": "1.0",
  "xms_tcdt": 1599800000
}

正如您在这里看到的,我有一个字段roles,其中包含一个角色数组。我试图将此数组解析为特定的声明,如IsPolicyReadWriteRole和IsMailSendRole。但是,我找不到入门包上的任何示例,也找不到如何做到这一点的示例。我不需要这些声明本身,我只是计划在编排步骤中将它们作为先决条件使用。

您可以使用此处提到的说明和示例从id\u token\u提示中提取声明-

然后可以使用getsingleitemfromstringcollection声明转换来获取声明值。

然后可以使用claimExist或claimEquals谓词来测试该值

id\u令牌\u提示验证技术配置文件如下所示

<ClaimsProvider>
      <DisplayName>Trustframework Policy Engine TechnicalProfiles</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="TpEngine_IdTokenHint_ExtractClaims">
          <DisplayName>Trustframework Policy Engine ID Token Hint Setup Technical Profile</DisplayName>
          <Protocol Name="None" />
          <Metadata>
            <Item Key="METADATA">https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration</Item>
          </Metadata>
        </TechnicalProfile>        
      </TechnicalProfiles>
    </ClaimsProvider>

信任框架策略引擎技术文件
Trustframework策略引擎ID令牌提示设置技术配置文件
https://login.microsoftonline.com/{tenant}/.众所周知的/openid配置

谢谢!那绝对是我想要的。但是,graph令牌在b2c端没有通过验证,因此我无法真正使用它们=(我为您添加了一个示例id\u令牌\u提示提取配置文件,此技术配置文件将验证graph/AAD令牌