【问题标题】:how to set custom claim value in Azure AD SAML如何在 Azure AD SAML 中设置自定义声明值
【发布时间】:2021-06-30 08:19:45
【问题描述】:

我正在为应用程序设置 SAML SSO。除了我无法为 NameID 声明返回合适的值外,我让它正常工作。应用程序中的现有用户 ID 是名字 + 姓氏首字母,因此它们与显示名称、电子邮件地址或 Azure AD 中的任何典型内容不匹配。我可以使用转换来生成它,但可用的功能似乎无法满足我的需求。

我也可以在 Azure AD 中手动输入用户 ID,然后将声明映射到该字段,但我讨厌“滥用”现有字段(例如,将用户 ID 放入 user.jobtitle 等)。

我也不想更改应用程序中每个人的用户 ID 以匹配 Azure 中已经存在的内容。

我觉得我在这里遗漏了一些明显的东西,因为必须有很多应用程序不使用通用 Azure 属性作为其用户 ID。

在此先感谢您的帮助!

汤姆

【问题讨论】:

  • 我知道有许多扩展属性可能用于此目的,但它们似乎都来自我没有使用的本地 AD。这是严格意义上的云,我在那里看不到任何自定义字段。

标签: azure-active-directory saml-2.0 claims-based-identity


【解决方案1】:

您可以将活动目录中存在的属性和声明映射到您的应用字段。例如,如果user.givenname 存在于活动目录和您的应用程序中,字段名称为firstName,您可以通过在用户属性和声明的管理声明部分中进行映射来实现此目的。其他领域也可以这样做。

你进入Enterprise applications > Your App > SAML-based Sign-on > click on edit

【讨论】:

  • 谢谢。是的,我发现了。但是,“user.givennam”(名字)不是该应用程序中用户的用户 ID。此应用程序中的用户 ID 是名字 + 姓氏的第一个字母 - 例如“Bob Smith”的用户 ID 将是“bobs”。我试图弄清楚如何从 user.givenname 和 user.surname 构造它,或者使用正确的用户 ID 填充自定义 AD 字段,以便我可以为声明返回该值。如果这不可能,我们必须更改每个用户的用户 ID 以匹配 AD 已有的内容。
  • 在这种情况下,您必须进行索赔转换。根据您的要求采用两个输入声明和相应的运算符,以生成最终理想的传出声明。
  • Harry,你知道可以让我生成 user.givenname & Left(1,user.surname) 的转换吗?奇怪的是,有一些转换函数可以根据其他字符串获取子字符串,但我没有看到可以让我获取前 n 个字符的函数。
  • 您的服务提供商(应用程序)中没有 emailid 和 userid 之间的映射是否有原因?
  • “Bob Smith”、“Bob Saget”、“Bob Swan”在您的应用程序中是否具有相同的用户 ID“bobs”。这就是您在属性中使用 emailid 作为标识符的原因。
猜你喜欢
  • 1970-01-01
  • 2020-03-15
  • 2022-10-07
  • 2022-01-26
  • 1970-01-01
  • 2023-03-24
  • 2022-01-10
  • 2019-07-02
  • 2021-07-16
相关资源
最近更新 更多