WebGate失败后,如何配置SharePoint 2019与Oracle OAM 12c的SAML 2.0 SSO?
核心问题解析
报错Invalid issuer or missing claim本质指向两个关键问题:一是SharePoint未将OAM的SAML实体ID(Issuer)加入可信列表;二是OAM颁发的SAML令牌中缺少SharePoint认证必需的核心声明,或声明映射规则不匹配。
一、配置SharePoint信任OAM的SAML Issuer
1. 获取OAM元数据
从OAM管理控制台导出SAML 2.0身份提供商(IdP)的元数据XML,提取<md:EntityDescriptor>标签的entityID属性值——这就是OAM的Issuer标识,后续配置需完全匹配(含大小写、特殊字符)。
2. 导入OAM签名证书
将OAM用于签署SAML令牌的证书(可从元数据中提取或直接从OAM导出)导入SharePoint服务器的本地计算机-受信任根证书颁发机构存储。
3. 用PowerShell创建可信身份提供商
在SharePoint管理Shell中执行以下命令(替换占位符为实际环境值):
# 导入OAM签名证书 $cert = Get-PfxCertificate -FilePath "C:\Certificates\OAM_Signing_Cert.pfx" # 创建可信身份提供商 $ti = New-SPTrustedIdentityTokenIssuer -Name "OAM SAML IdP" ` -Identifier "https://oam.yourdomain.com/oamfed" ` # 替换为OAM的Entity ID -SigningCertificate $cert ` -ClaimsMappings @(New-SPClaimMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" -IncomingClaimTypeDisplayName "Name ID" -LocalClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname") ` -Realm "https://sharepoint.yourdomain.com" ` # SharePoint的信任域(Realm) -SignInUrl "https://oam.yourdomain.com/oamfed/idp/samlv20" ` # OAM的SAML 2.0 SSO端点 -IdentifierClaim "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"
二、声明映射配置
1. OAM端声明配置
在OAM的SAML IdP配置中,确保向SharePoint发送以下核心声明:
- NameID:映射到用户的Windows登录名(如AD的
sAMAccountName)或UPN,声明格式选择urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified或urn:oasis:names:tc:SAML:2.0:nameid-format:transient。 - 可选角色声明:若需基于权限控制,映射到OAM中的用户角色,声明类型为
http://schemas.microsoft.com/ws/2008/06/identity/claims/role。
2. SharePoint端声明映射
若需扩展声明规则,可通过以下命令添加额外映射(示例为UPN声明):
# 为已创建的可信身份提供商添加UPN声明映射 Add-SPClaimMapping -Identity $ti -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -IncomingClaimTypeDisplayName "UPN" -LocalClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
三、关键验证项
- Issuer一致性:OAM元数据中的
entityID必须与SharePointNew-SPTrustedIdentityTokenIssuer命令的-Identifier参数完全一致,任何字符差异都会触发Invalid issuer错误。 - 证书信任:OAM的签名证书必须在SharePoint服务器的受信任根存储中,且未过期、无篡改。
- HTTPS有效性:OAM的SSO端点、元数据端点及SharePoint站点均需配置有效HTTPS证书,无证书链信任问题。
自定义声明提供程序需求
仅当OAM发送的声明类型为SharePoint默认SAML声明提供程序不支持的自定义类型时,才需要开发自定义声明提供程序。常规场景下,通过默认的Saml20ClaimProvider配合正确的声明映射即可满足需求,无需自定义开发。
排错步骤
- 用Fiddler捕获SAML响应,检查
<saml:Issuer>值是否与SharePoint信任的Identifier一致,同时验证<saml:AttributeStatement>中是否包含所需声明。 - 查看SharePoint ULS日志(路径:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\LOGS),搜索Invalid issuer或missing claim关键字,获取具体错误细节。 - 在SharePoint服务器上直接访问OAM元数据URL,验证网络连通性与证书信任。
内容的提问来源于stack exchange,提问作者mohamed gameel
相关产品推荐
相关产品推荐

