Can*_*ell 5 native saml single-sign-on openid-connect
我正在尝试为两个网站实施SSO,目前正在调查SAML和OpenID Connect.但我需要使用相同的凭据来验证基于Swing的桌面客户端.
我已经了解了OpenID Connect的隐含流程,但它仍然需要打开浏览器.
似乎解决了这类问题的SAML增强型客户端或代理配置文件似乎没有被我尝试过的大多数idps实现.(只有Shibboleth支持它,而Shibboleth的文档并不那么好).
OpenID Connect 试图解决两方之间共享用户身份验证的问题:身份提供商 (OP) 和客户端。
OIDC 文档中没有明确说明这一点,但根据我的经验,OIDC 不会尝试解决如何跨不同平台(网络、移动/桌面)验证自己的用户的问题。
这是 OAuth 2.0“资源所有者密码凭据授予”极少数有效用例之一,其中客户端用用户凭据交换令牌。
在这里,您位于自己的系统内,您的移动/桌面应用程序不能被视为第三方,它只为用户提供一种可信的方式向您发送其凭据。
您可以确保应用程序不会存储它们,因为您可以控制代码库。
编辑:移动应用程序实例可以共享(除非您设法动态分配客户端 ID)无法保密的客户端 ID/秘密。它构成了一个非常薄的客户端身份验证层,试图确保请求确实来自您的移动/桌面应用程序:
POST /oauth/token HTTP/1.1
Authorization: Basic ${BASE64_ENCODED_CLIENTID_CLIENTSECRET}
grant_type=password&
username=${USERNAME}&
password=${PASSWORD}
Run Code Online (Sandbox Code Playgroud)
有些人不喜欢它指定如何对用户进行身份验证,并且某些公司可能拥有除用户名+密码之外的其他凭据,例如在使用两因素身份验证时。此外,有些人错误地使用了 ROPC 授权,因为它仅在组织内部有效,允许客户端请求您自己的用户凭据会破坏 SSO/授权协议的意义。
OIDC 仍然是 OAuth 2.0,这意味着您可以自由地实现自己的“用户凭据”流程,以从桌面/移动应用程序获取访问令牌 + ID 令牌。但这不属于 OIDC 的范围。
顺便说一句,SAML是在移动应用程序还没有真正出现的时候创建的:
SAML 2.0 于 2005 年 3 月被批准为 OASIS 标准
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |