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”。
谢谢你在这里帮助我!
解决方案
让我尝试解决这些问题。
在 ADFS 中,OIDC 应用程序和 WS-Fed/SAML RP 完全不同。你不能混搭。
jwt.io 有一个签名错误,因为它不知道 .well-known 端点来获取密钥。参考这个。
要获得额外的声明,您需要添加一个 API,因为这是声明规则的唯一位置。
要获取刷新令牌,您需要一个“offline_access”范围。
对于资源所有者密码,用户名和密码是单独的字段。参考这里。
随时提出更多问题。只是扩大你的问题。
此外,样品在这里。查看 LHS 上的菜单。
更新
“可以在每个依赖方的基础上修改 Web 内容”是什么意思?
回覆。jwt.io,读这个。
有关刷新令牌,请阅读此。ADFS 似乎没有遵循这里的规范。
推荐阅读
- wordpress - 将 customPost url 重定向到另一个 url
- python - ApiAI: 取 JSON 答案 KeyError: 'result'
- python - 如何将值传递给张量流图?
- c# - C# 将文本插入模板 WORD 文档
- reactjs - Redux Saga - 在 While 循环内调用
- java - jooq multiset order 结果集通过 multiset 上的条件
- ajax - 处理 FileContentResult 响应
- node.js - ReactJS 中的资源加载失败
- c++ - 如何使用迭代器比较两个列表?C++
- python - 根据特定的列值绘制条形图(图形对象 GO)不同的标记图案形状