在ADFS中模仿Azure AD用户/租户声明

我有一个.Netnetworking应用程序,允许用户使用身份提供程序(Azure AD,Google和/或ADFS)连接帐户以允许单点login

在连接他们的帐户(或“登机”,无论…),每个提供商应返回以下值:

  1. 用户唯一标识用户唯一标识) (租户永远不会为用户更改的标识值(例如,如果其名称更改,值仍然不变)
  2. 租户唯一ID当人们使用多个客户群的应用程序时,我需要为每个客户的ID提供者/租户存储一个识别值
  3. 用户名称用户的友好名称(例如电子邮件地址),可用于向提供者显示其“姓名”(例如,如果使用Google或Azure AD,则为您的电子邮件地址)

到目前为止,我在Azure AD和Google中已经实现了这一点,但是我正在与ADFS苦苦挣扎。 由于我没有一个活的ADFS服务器,我正在使用虚拟机来查看如何设置上面的声明。

ADFS有可能build立一个依赖方,然后创build三个声称来填充上面的声明?

在通过ADFS索赔规则对话框进行工作时,我认为以下方面可能有效,但是缺乏经验知道它是否有效:

  1. 名称ID – 持久标识符
  2. 不确定 – 也许手动创build值“CompanyABC_Tenant123”
  3. UPN

第二项是否可以做到。 或者,有没有更好的办法来实现我所需要的? 我注意到,如果使用Azure AD Access Control,则上述三项自动填充,但假定在云中创buildID,而不是在本地。

首先,使用objectGUID – 请参阅: ADFS:objectGUID作为声明 。

对于第二个,可能有多个域,并在一个域内多个ADFS农场,并在一个农场内的多个ADFS实例。 所以理想情况下,一个静态的索赔就像

域/农场/机器名称

但是整个农场的索赔规则是一样的:

域/农场

第三,是使用UPN。