问题标签 [adfs4.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
265 浏览

adfs - 为 ADFS SSO 登录页面实施自定义 HTML、CSS 和 JS

我已经ADFS 4.0在企业 Intranet 上使用 实现了Windows Server 2016,但我对 Microsoft 提供的登录页面的外观不满意。我已经通过使用自定义了一些元素PowerShell,但我真正想做的是将我使用bootstrap前端框架构建的自定义登录页面并将其实现为ADFS登录页面。

这可能ADFS 3.0吗?这似乎并不像我想的那样直截了当。

0 投票
1 回答
1682 浏览

c# - 如何在 MVC 应用程序上进行 ADFS 身份验证后向 ClaimsPrincipal 添加其他声明

我们有一个使用 ADFS 4 身份验证的 MVC 5 Web 应用程序。在完成身份验证后,我正在尝试找到可以将其他声明添加到 ClaimsPrincipal的最佳位置。

有没有我可以访问的事件,例如 OnAuthenticated?如何访问此类活动?

这是我可以访问事件后打算使用的内容:

编辑: 这是我的App_Data\Startup.Auth.cs文件的样子:

0 投票
1 回答
392 浏览

active-directory - 如何根据 employeeId 属性和 OU 成员资格在 ADFS 4 中添加自定义声明

我们需要根据 Active Directory 员工 ID 属性和 OU 成员身份的组合将 ADFS 4.0 的声明传递给依赖方。我想最佳实践可能是使用安全组成员身份,但在我们的案例中,组的设置并不完全正确,因此需要。

例如,如果OU=SAXTechs,DC=london,DC=fabrikam,DC=comOU 中存在员工 ID 为 VX224400(employeeId AD 属性设置为 VX224400)的人员,则应将声明“LondonSAXTechs”添加到传递给 RP的角色声明列表中。

换句话说,以下内容应在 RP 方的声明列表中:

http://schemas.microsoft.com/ws/2008/06/identity/claims/role | 伦敦SAXTechs

不完全确定如何使用声明规则语言来做到这一点。任何帮助表示赞赏。

0 投票
1 回答
1267 浏览

oauth-2.0 - ADFS 客户端凭据授予流与应用程序组中的多个客户端

设置:
我们有一个应用程序需要借助 ADFS 对 API 进行身份验证。为此,似乎适合使用 Client Credentials Grant Flow;
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/overview/ad-fs-openid-connect-oauth-flows-scenarios#client-credentials-grant-flow

因此,在 ADFS 中,我使用以下设置创建了一个新的应用程序组,其中包含一个服务器应用程序和一个 Web API,

服务器应用:

  • 客户编号:client1
  • 客户秘密:(一些指导)

网络接口:

  • 依赖方:client1
  • 访问控制策略:允许所有人
  • 客户端权限 --> 客户端应用程序:client1
  • 允许的范围:openid profile allatclaim

然后我通过 https://.../adfs/oauth2/token 请求一个令牌

我按预期收到了带有 aud 和 appid 的 JWT 令牌:

问题:
当我想添加另一个客户端与 API 一起使用时,问题就出现了。所以我将设置更改为,

服务器应用程序 1:

  • 客户编号:client1
  • 客户秘密:(一些指导)

服务器应用程序 2:

  • 客户编号:client2
  • 客户秘密:(一些指导)

网络接口:

  • 依赖方:client1、client2
  • 访问控制策略:允许所有人
  • 客户端权限 --> 客户端应用程序:client1,client2
  • 允许的范围:openid profile allatclaim

然后,当我使用 client2(client_id 和 client_secret)的凭据请求 JWT 令牌时,我得到:

如果我使用client1也是一样的。我尝试在 Web API 中添加不同的依赖方,它似乎总是将 JWT 中的 aud 设置为列表中的第一个 RP(字母顺序)。例如,如果我还在 Web API 中添加 123 作为 RP,那么对于 client1 和 client2,“aud”将变为“microsoft:identityserver:123”。

如果我改为删除所有依赖方并将 url 添加到我的 api 中,则 JWT 令牌中的 aud 将变为“urn:microsoft:userinfo”。

根据我的阅读,JWT 令牌中的 aud 字段应包含将处理 JWT 令牌的所有委托人。见https://www.rfc-editor.org/rfc/rfc7519#section-4.1.3

问题:
应该如何设置我的应用程序组才能拥有多个客户端?
ADFS 可以发送多个受众而不是只发送第一个受众吗?
还是我使用了错误的方法?

亲切的问候,杰斯珀

0 投票
0 回答
76 浏览

adfs4.0 - 旧客户端机密在 Set-AdfsServerApplication 上使用 AD FS 的 ChangeClientSecret 保持活动状态多久?

在 AD FS 2016 中,当使用 PowerShell 命令创建新的客户端密码时Set-AdfsServerApplication -ChangeClientSecret,旧密码会保持活动状态多长时间?

Set-AdfsServerApplication命令的文档没有说明它的活动时间。

-ChangeClientSecret注意:和之间的区别在于-ResetClientSecret旧密钥在使用时会保持一段时间-ChangeClientSecret。而旧秘密在-ResetClientSecret使用时立即失效。

0 投票
2 回答
521 浏览

openid-connect - 为 OpenID Connect RP 跳过 ADFS 中的 Home Realm Discovery 页面

为 ADFS 身份验证跳过 Home Realm Discovery 页面

上面的帖子应该涵盖我的情况。但它仍然没有答案。我可以使用homeRealmwhr参数跳过注册 RP 的 HRD 页面。因此,使用已注册的 Relay Paries 一切正常。但与此同时,我们有几个具有 OpenId Connect 身份验证流程的应用程序。而且我不完全了解如何调整 ADFS 以跳过这些应用程序的 Home Realm Discovery 页面。它们包含在应用程序组中。我们可以使用Get-AdfsServerApplication查看它们的列表。

是否真的没有 ADFS 设置允许具有 OpenID Connect 的客户端通过 Home Realm Discovery Page 转发,因为这是为 Azure 完成的:HRD Policy

更新:它应该涵盖第三方服务应该添加到联邦,其请求无法控制的情况。

0 投票
1 回答
281 浏览

single-sign-on - ADFS 证书到期通知作业

我有超过 20 个使用 ADFS SSO 身份验证的应用程序。去年令牌签名证书过期,我经历了整个天空正在坠落 - 追逐第 3 方供应商来安排元数据文件的刷新,以尝试尽可能无缝地过渡到新证书。我已经在下次到期前 3 个多月添加了日历提醒,但我想多做一点准备,并有一个工作/脚本在证书到期 90 多天时运行并向我发送电子邮件。有谁知道或有一个脚本可以做到这一点?另外,有没有一种方法可以为每个 RPT 签名证书做同样的事情?我目前大部分(如果不是全部)都设置为自动更新,但如果可能的话,我还是希望收到通知。

0 投票
1 回答
114 浏览

owin - 注销请求导致错误

我将 ADFS 2016 用于 OAuth2/OIDC。在某些情况下,我在事件查看器中看到以下错误 (551):

知道导致此错误的原因是什么吗?

0 投票
2 回答
301 浏览

openid - ADFS 2019 登录页面未重定向到我的应用程序

我可以使用这样的简单 URL:

https://accounts.google.com/o/oauth2/v2/auth?client_id=myid.apps.googleusercontent.com&response_type=code&scope=openid%20profile%20email&redirect_uri=http://localhost

登录到谷歌帐户后,它会正确重定向我,但我无法使用 ADFS 2019 https://server.mylocal.local/adfs/ls/idpinitiatedsignon实现这一点 它只是打印“您已登录”。在屏幕上。我已经在 ADFS 控制台中使用“ http://localhost ”重定向地址设置了一个 Web 应用程序。

0 投票
1 回答
1092 浏览

oauth-2.0 - ADFS Server 2016 上关于 Oauth2 的几个问题

我已经习惯使用 ADFS 很长时间了,最​​近我被要求在 ADFS 上使用 Oauth2 进行概念验证。通过术语挣扎,我设法设置了大多数东西,但我仍然有一些未解决的问题。希望有人可以阐明这些...

对于 SAML / WS-Fed 依赖方,可以使用 Set-AdfsRelyingPartyWebContent 设置自定义 Web 内容。这对于在应用程序组中创建的 web api 依赖方也可能吗?

使用客户端凭据授予流程时,是否可以向使用 client_id / client_secret(ADFS 术语中的服务器应用程序)身份验证的客户端添加声明?

即使在 web api 应用程序上设置了“IssueOAuthRefreshTokensTo”“AllDevices”,我仍然没有收到刷新令牌。我在这里想念什么?

在例如 jwt.io 上发布我们的 ADFS 颁发的令牌时,我收到“签名验证”错误。我们如何解决这个问题?

我们想为访问令牌设置一个受众,因此应用程序可以使用受众而不是使用 appid 来验证它们是否可以使用令牌。我们可以修改观众吗?

add-adfsclient 有什么作用?它是否创建了一个 client_id,然后可以将其链接到依赖方(使用 Grant-AdfsApplicationPermission),从而为现有的依赖方启用 OAuth2?

在为服务器应用程序配置广告用户主体并将“密码”用作授权类型和客户端凭据授权流程时,我似乎找不到正确的语法,因为 ADFS 总是给出错误“MSIS9622:客户端身份验证失败。请验证为客户端身份验证提供的凭据是否有效。'。我对用户名使用了语法“user@fqdn”。

谢谢你在这里帮助我!