我正在设计OIDC依赖方(SP),该方应与大多数流行的OIDC提供商(IDP)合作。我要求也允许非Web应用程序的客户端进行身份验证和授权。如果客户端中没有浏览器,建议使用OIDC吗?在这种情况下,最推荐使用哪种流量?大多数IDP是否支持这种流程(没有浏览器)?
答案 0 :(得分:0)
许多OpenID Connect提供程序都使用某种形式的“ Device Flow”
这是一个示例https://auth0.com/blog/oauth-device-flow-no-hassle-authentication-as-seen-on-tv/
Google for Device Flow,您可以找到很多。
答案 1 :(得分:0)
有一个针对客户端启动的Backchanel身份验证(CIBA)流(https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html)的规范草案。
这可以在没有浏览器的设备上运行。本质上,客户端发出身份验证请求,并且OpenID Provider(OP)使用身份验证设备(AD)(通常是智能手机)进行身份验证。
用户通过身份验证后,客户端可以通过轮询,ping或推送方式接收令牌。
从文档中看,流程如下...
CIBA轮询模式如下图所示:
+--------+ +--------+
| | | |
| |<---(1) CIBA Request-------------------------->| |
| | | |
| | +--------+ | |
| | | | | |
| Client | | AD |<--(2) User interactions---------->| OP |
| | | | | |
| | +--------+ | |
| | | |
| |----(3a) CIBA Polling Request----------------->| |
| |<---(3b) CIBA Polling Response-----------------| |
| | ... | |
| |----(3a) CIBA Polling Request----------------->| |
| |<---(3b) CIBA Polling Response-----------------| |
| | | |
+--------+ +--------+
CIBA Ping模式如下图所示:
+--------+ +--------+
| | | |
| |<---(1) CIBA Request-------------------------->| |
| | | |
| | +--------+ | |
| | | | | |
| Client | | AD |<--(2) User interactions---------->| OP |
| | | | | |
| | +--------+ | |
| | | |
| |<---(3) CIBA Ping Callback---------------------| |
| | | |
| |----(4a) CIBA Token Request------------------->| |
| |<---(4b) CIBA Token Response-------------------| |
+--------+ +--------+
CIBA推送模式如下图所示:
+--------+ +--------+
| | | |
| |<---(1) CIBA Request-------------------------->| |
| | | |
| | +--------+ | |
| | | | | |
| Client | | AD |<--(2) User interactions---------->| OP |
| | | | | |
| | +--------+ | |
| | | |
| |<---(3) CIBA Push Callback---------------------| |
| | | |
+--------+ +--------+