Okta Single Sign On for SharePoint 2013 - 如何从数据库中注入自定义声明

Okta Single Sign On for SharePoint 2013 - how to inject custom claims from database

场景:

我们在面向 SharePoint 2013 Extranet 的站点上使用 Okta 单点登录 (SSO)。当个人用户(电子邮件作为用户身份)授予站点权限时,它非常适合要求。

但是,作为基于声明的权限的一部分,我们需要根据委员会中的成员等级将自定义声明附加到用户身份。会员资格和排名信息存储在 SQL 数据库中。

作为 SSO 安装的一部分,Okta 提供了人员选择器 (SPClaimsProvider)。如果我使用 Okta 人员选择器,我无法控制通过 SPClaimsProvider 注入自定义声明。他们应该通过查询 SQL database/CRM.

的排名动态注入

问题:

我们是否应该卸载 Okta 人员选择器并编写 我们自己的 SPClaimsProvider 以附加自定义声明 (SPClaimsProvider)?

(或)

使用 Okta 人员选择器并开发自定义 System.Security.Claims.ClaimsAuthenticationManager 来注入声明

(或)

保持 Okta 人员选择器不变,编写一个新的 SPClaimsProvider 并与 Okta 人员选择器并行安装。

正在寻找指导。

最后一个选项工作正常。您可以创建和安装多个自定义声明提供程序;唯一的限制是每个 SPTrustedIdentityTokenIssuer 只能有一个默认的自定义声明提供程序。只需创建一个新的自定义声明提供程序,并让它仅通过覆盖 FillClaimsForEntity 方法来注入声明。这样做的具体细节在这里(注意:本文适用于 SharePoint 2010 和 2013):https://samlman.wordpress.com/2015/02/28/writing-a-custom-claims-provider-for-sharepoint-2010-part-1-claims-augmentation-and-registering-your-provider/