我正在寻找类似于 AWS 会话标签中的自定义声明验证的 Azure 等效项?
{
"Sid": "AllowPassSessionTagsAndTransitive",
"Effect": "Allow",
"Action": "sts:TagSession",
"Principal": {"AWS": "arn:aws:iam::123456789012:user/test-session-tags"},
"Condition": {
"StringLike": {
"aws:RequestTag/Project": "*",
"aws:RequestTag/CostCenter": "*"
},
"StringEquals": {
"aws:RequestTag/Department": [
"Engineering",
"Marketing"
]
},
"ForAllValues:StringEquals": {
"sts:TransitiveTagKeys": [
"Project",
"Department"
]
}
}
}
背景: 我有一个包含自定义声明的 OIDC 令牌
{
"alg": "HS256",
"kid": "12345",
"typ": "JWT"
}.
{
"aud": "AUDIENCE_NAME"
"iss": "SOME_ISSUER",
...
"customClaim1": "foo",
"customClaim2": "bar",
}
我已经阅读了 Azure 的工作负载身份联合和条件访问文档,但似乎没有任何内容适合在提供 Azure 访问令牌之前检查 customClaim1 ==“foo” 的功能。
我想在 Azure 中添加一个信任策略,它可以执行类似的验证,就像 AWS 对会话标签所做的那样。如果自定义声明/会话标签符合特定条件,则授予对 OIDC 令牌的访问权限。 Google 也有类似的功能。
正如我在评论部分所说,Azure 没有与 AWS 会话标签直接等效的功能,但您可以使用 Azure AD 条件访问和令牌中的自定义声明来实现类似的功能。 可以将 Azure AD 条件访问策略配置为根据令牌中的自定义声明强制执行访问。您可以使用 Azure AD B2C 创建自定义策略,在授予访问权限之前验证令牌中的特定声明。
在 Azure AD B2C 中配置自定义策略以验证自定义声明的示例 -
<ClaimsTransformation Id="AssertCustomClaimEqualsFoo" TransformationMethod="AssertStringClaimIsEqualToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="customClaim1" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="valueToCompareTo" DataType="string" Value="foo" />
</InputParameters>
</ClaimsTransformation>