【问题标题】:Several question on Oauth2 on ADFS Server 2016ADFS Server 2016 上关于 Oauth2 的几个问题
【发布时间】:2020-09-13 19:37:13
【问题描述】:

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

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

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

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

当发布我们的 ADFS 发行的令牌时,例如jwt.io 我收到“签名验证”错误。我们该如何解决?

我们希望为访问令牌设置受众,以便应用程序可以使用受众而不是使用 appid 来验证它们是否可以使用令牌。我们可以修改受众吗?

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

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

感谢您在这里帮助我!

【问题讨论】:

    标签: oauth-2.0 openid-connect adfs adfs4.0


    【解决方案1】:

    让我尝试解决这些问题。

    在 ADFS 中,OIDC 应用程序和 WS-Fed / SAML RP 完全不同。你不能混搭。

    jwt.io 有一个签名错误,因为它不知道 .well-known 端点来获取密钥。参考this

    要获得额外的声明,您需要添加一个 API,因为这是声明规则的唯一位置。

    要获取刷新令牌,您需要“offline_access”范围。

    对于资源所有者密码,用户名和密码是单独的字段。参考here

    欢迎提出更多问题。只需扩展您的问题。

    另外,样品here。查看 LHS 上的菜单。

    更新

    您所说的“可以根据依赖方修改网页内容”是什么意思?

    回复。 jwt.io,阅读this

    对于刷新令牌,请阅读 this。 ADFS 似乎没有遵循这里的规范。

    【讨论】:

    • 我了解 SAML / WS-Fed / OIDC 是不同的,但 ADFS 可以根据它们的标识符来识别它们。而且我可以基于每个依赖方(= 每个标识符)修改 Web 内容,但我似乎只能为 WS-Fed / SAML 而不是 OIDC 标识符这样做
    • URL https:///adfs/.well-known/openid-configuration 可以从互联网上浏览,但是 jwt.io 怎么知道从哪里获取这个文件呢?
    • 我无法修改“服务器应用程序”(客户端 ID/机密)的声明发布规则。我只能为“网络应用程序”修改那些。这将如何运作?
    • 当尝试使用 'scope=openid offline_access' 获取刷新令牌时,我仍然只收到访问令牌和 id 令牌,没有刷新令牌。此外,我在 ADFS 的范围描述列表中没有看到范围“offline_access”。
    • 为了在“客户端凭据授予流程”中使用 AD 用户名和密码登录,我使用了“grant_type”“密码”并指定了用户名和密码,就像这里提到的一样: docs.microsoft.com/en-us/windows-server/identity/ad-fs/overview/… (&username=myusername@contoso.com &password=SuperS3cret&grant_type=password),但这不起作用。
    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2011-05-12
    • 2011-08-24
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多