标签: adfs3.0

STS 不支持请求的身份验证方法

我们的 Java 应用程序与客户的 ADFS 3.0 服务器联合。通过 SAMLP 向 ADFS 服务器发送身份验证请求(SP 发起)后出现问题。它适用于 Intranet 用例,其中 Windows 身份验证在身份验证策略中的 ADFS 服务器上指定。SP 应用程序正在使用 ForgeRock 的 Fedlet 库,该库通过 SAML 身份验证请求强制发送 RequestedAuthnContext 属性:

samlp:RequestedAuthnContext xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                             Comparison="exact"
                             >
    <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
Run Code Online (Sandbox Code Playgroud)

我们最初也遇到了 Extranet 身份验证的问题,其中在 ADFS 上选择了表单身份验证。我们通过为我们的 RP 添加 Claim 自定义规则解决了这个问题:

exists([Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"]) => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", Value = "urn:oasis:names:tc:SAML:2.0:ac:classes:Password");
Run Code Online (Sandbox Code Playgroud)

现在我们堆满了 Intranet 用例。在 ADFS 方面,我们收到以下错误:

MSIS7102: Requested Authentication Method is not supported on the STS.
   at Microsoft.IdentityServer.Web.Authentication.GlobalAuthenticationPolicyEvaluator.EvaluatePolicy(IList`1 mappedRequestedAuthMethods, AccessLocation location, ProtocolContext context, HashSet`1 authMethodsInToken, Boolean& validAuthMethodsInToken)
   at Microsoft.IdentityServer.Web.Authentication.AuthenticationPolicyEvaluator.RetrieveFirstStageAuthenticationDomain(Boolean& …
Run Code Online (Sandbox Code Playgroud)

adfs windows-authentication saml saml-2.0 adfs3.0

3
推荐指数
1
解决办法
7782
查看次数

Spring Boot oauth2:如何设置授权请求中的资源参数让adfs开心?

我正在尝试设置一个 Spring Boot 应用程序,它使用 oauth2 和 Active Directory 联合身份验证服务作为身份验证提供程序。我从这里的教程开始......

https://spring.io/guides/tutorials/spring-boot-oauth2/

... 并让 facebook 示例工作。然后,我开始调整它以与 ADFS 一起使用。它接近工作,但 ADFS 期望与授权请求一起传递资源参数,我无法弄清楚如何设置它。这是我到目前为止在配置中的内容......

security:
    oauth2:
        client:
            clientId: spring-boot-test-client
            userAuthorizationUri: https://domain/adfs/oauth2/authorize
            access-token-uri: https://domain/adfs/oauth2/token
            tokenName: code
            authenticationScheme: query
            clientAuthenticationScheme: form
            grant-type: authorization_code
Run Code Online (Sandbox Code Playgroud)

当我单击登录链接时,它会重定向到https://domain/adfs/oauth2/authorize?client_id=spring-boot-test-client&redirect_uri=http://localhost:8080/login&response_type=code&state=rjzfyZ

我试过设置 security:oauth2:client:id、security:oauth2:client:resourceids 和 security:oauth2:resource:id,但这些似乎都不会影响第一次重定向。知道我应该设置什么来获取包含在第一次重定向中的资源吗?

spring-boot spring-security-oauth2 adfs3.0

3
推荐指数
1
解决办法
2466
查看次数

SAML 2.0声称不通过ADFS

我们有一个声明感知应用程序,并使用ADFS服务器来验证来自我们合作伙伴网络的用户.拥有自己的ADFS服务器的客户没有问题.他们的ADFS服务器以SAML 1.0格式向我们发送令牌,一切都很顺利.我们有一个客户端向我们的ADFS服务器发送未经请求的SAML 2.0帖子.信任关系有效,用户进入我们的系统,但没有任何索赔通过.我们得到的就是这个(来自我们的应用程序日志文件):

9/1/2015 7:35:44 PM: Claim type = http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod, value = urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
9/1/2015 7:35:44 PM: Claim type = http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant, value = 2015-09-01T23:35:40.194Z
Run Code Online (Sandbox Code Playgroud)

比较SAML令牌,格式是完全不同的.例如,SAML 1中有一个自定义声明,如下所示:

<saml:Attribute xmlns:a="http://schemas.xmlsoap.org/ws/2009/09/identity/claims" AttributeName="customerguid" AttributeNamespace="http://schemas.xmlsoap.org/ws/2005/05/identity/claims" a:OriginalIssuer="http://Absolut.vis-intel.net/adfs/services/trust">
<saml:AttributeValue>8835cf46-07a6-45f7-82d9-978905b5911f</saml:AttributeValue>
</saml:Attribute>
Run Code Online (Sandbox Code Playgroud)

但他们是这样的:

<saml2:Attribute Name="CustomerGuid">
<saml2:AttributeValue>b4f3dd70-ef42-4596-be76-3e3fa077d06e</saml2:AttributeValue>
</saml2:Attribute>
Run Code Online (Sandbox Code Playgroud)

我们想也许我们需要对索赔规则做些什么.他们看起来像这样:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/customerguid"]
 => issue(claim = c);
Run Code Online (Sandbox Code Playgroud)

我们添加了自定义声明类型,并尝试更改声明规则以使用它们来尝试抓取CustomerGuid,但这没有任何区别:

c:[Type == "CustomerGuid"] => issue(claim = c);
Run Code Online (Sandbox Code Playgroud)

寻找有关如何使这项工作的任何指针.

saml saml-2.0 adfs3.0

2
推荐指数
1
解决办法
2563
查看次数

信任存储在 c# 中“受信任的根证书颁发机构”中的 SSL 证书

语境:

我正在尝试使用 ADFS SSO 并按照本教程首先连接到 Azure AD:

http://www.cloudidentity.com/blog/2013/10/25/securing-a-web-api-with-adfs-on-ws2012-r2-got-even-easier/

那奏效了。

然后按照其他教程尝试使其连接到我们的 Win Server 2012 R2 上的 ADFS:

http://www.cloudidentity.com/blog/2013/10/25/securing-a-web-api-with-adfs-on-ws2012-r2-got-even-easier/

正如他们在第三个教程中所说:https : //msdn.microsoft.com/en-us/library/dn660967.aspx

我收到 SSL 证书错误:

在此处输入图片说明

问题:

我知道我可以绕过证书验证或在ServicePointManager.ServerCertificateValidationCallback 中放置特殊逻辑来解决这个问题,但是因为我在本地机器“受信任的根证书颁发机构”中导入了证书......:

  1. ... 为什么我的服务仍然抱怨证书?

  2. ...有没有办法告诉我的 C# 服务接受“受信任的根证书颁发机构”存储中的所有证书?

注意:我确实实现了ServicePointManager.ServerCertificateValidationCallback并且有效,但是由于我们将得到一大堆客户向我们发送他们的 ADFS 证书,我只想将他们的证书导入证书存储中,让我们的服务信任他们。

谢谢

c# ssl-certificate single-sign-on adfs3.0

1
推荐指数
1
解决办法
2678
查看次数

AWS Cognito:支持 SSO IdP 启动的工作流程

我有我的 UI 应用程序,它使用 AWS Cognito 进行用户身份验证。我们已成功将 SAML 身份提供程序集成到我们的 Cognito 用户池中。

现在我想使用 AD FS 支持 SSO。

以下是我可用于 ADFS 登录的 URL。

https://adfs.DOMAIN.com/adfs/ls/IdpInitiatedSignOn.aspx

我已阅读此AWS Doc以配置任何 aws 管理控制台。

但是我应该遵循哪些步骤来为 Cognito 启用此功能。

有什么帮助吗?

adfs single-sign-on adfs2.0 amazon-cognito adfs3.0

1
推荐指数
1
解决办法
3111
查看次数