Azure active directory 如何在Azure AD SAML中设置自定义声明值

Azure active directory 如何在Azure AD SAML中设置自定义声明值,azure-active-directory,saml-2.0,claims-based-identity,Azure Active Directory,Saml 2.0,Claims Based Identity,我正在为应用程序设置SAML SSO。我已经让它工作了,只是我无法为NameID声明返回合适的值。应用程序中现有的userid是firstname+last initial,因此它们与显示名称、电子邮件地址或Azure AD中的任何典型内容都不匹配。我可以使用转换来生成它,但可用的函数似乎无法满足我的需要 我也可以在Azure AD中手动输入用户ID,然后将声明映射到该字段,但我讨厌“滥用”现有字段(例如,将用户ID放入user.jobtitle或其他类似字段) 我也不想改变应用程序中每个人的用

我正在为应用程序设置SAML SSO。我已经让它工作了,只是我无法为NameID声明返回合适的值。应用程序中现有的userid是firstname+last initial,因此它们与显示名称、电子邮件地址或Azure AD中的任何典型内容都不匹配。我可以使用转换来生成它,但可用的函数似乎无法满足我的需要

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

我也不想改变应用程序中每个人的用户ID来匹配Azure中已经存在的东西

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

在此提前感谢您的帮助


Tom

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

您进入
企业应用程序>您的应用程序>基于SAML的登录>单击编辑


我知道有许多扩展属性可能用于此,但它们似乎都来自于on-prem-AD,我没有使用。这是严格意义上的云,我没有看到任何自定义字段。谢谢。是的,我找到了。但是,“user.givennam”(名字)不是此应用程序中用户的用户ID。此应用程序中的用户名为firstname+姓氏的第一个字母,例如,“Bob Smith”的用户名为“bobs”。我正试图找出如何从user.givenname和user.name构造该字段,或者使用正确的userid填充自定义广告字段,以便为声明返回该值。如果这是不可能的,我们将不得不更改每个用户的用户ID以匹配AD已经拥有的内容。在这种情况下,您必须进行声明转换。根据您的要求获取两个输入声明和相应的运算符,以生成最终理想的传出声明。Harry,您知道有一种转换可以让我生成user.givenname&Left(1,user.姓氏)?奇怪的是,有一些转换函数可以基于其他字符串获取子字符串,但我没有看到一个转换函数可以让我获取前n个字符。您的服务提供商(应用程序)中没有emailid和用户ID之间的映射是有原因的吗?“Bob Smith”、“Bob Saget”、“Bob Swan”是否具有与“bobs”相同的用户ID在您的应用程序中。这就是在属性中使用emailid作为标识符的原因。