无浏览器客户端的OIDC

时间:2020-03-16 18:56:26

标签: authentication oauth-2.0 authorization openid-connect openid-provider

我正在设计OIDC依赖方(SP),该方应与大多数流行的OIDC提供商(IDP)合作。我要求也允许非Web应用程序的客户端进行身份验证和授权。如果客户端中没有浏览器,建议使用OIDC吗?在这种情况下,最推荐使用哪种流量?大多数IDP是否支持这种流程(没有浏览器)?

2 个答案:

答案 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---------------------|        |
    |        |                                               |        |
    +--------+                                               +--------+