是否有它適合與ID連接到使用一個標準的HTTP認證方案?我心目中的場景如下:HTTP認證報頭的OpenID授權碼
HTTP服務需要用戶的身份驗證。其中一種可能的身份驗證方法是使用來自第三方OpenID提供商的聯合身份。該服務作爲機密客戶端向第三方OpenID提供商註冊,並擁有client_id和客戶機密鑰。
WWW-Authenticate: OpenIDConnect realm="MyService", client_id="1234-5678", authorization_url="https://provider/authorize"
客戶端將聯繫授權:
當用戶試圖訪問HTTP服務,該服務器具有401 Unauthorized
,以及有關如何發起與OpenID提供的認證請求一個WWW-Authenticate
報頭信息包含響應端點,進行身份驗證,然後獲得授權碼。該代碼隨後經由Authorization
頭的後續請求到服務指定,例如:
GET/HTTP/1.1
Authorization: OpenIDConnect client_id="1234-5678", code="AAABAAA..."
該服務將使用的代碼來從OpenID提供獲得ID令牌和與所述客戶端建立一個鑑權會話,例如通過設置一個cookie或返回一組新的憑證用於後續請求。
的OpenIDConnect
方案是我彌補了這個例子。我試圖尋找一種標準的方式來做類似的事情,而缺乏結果讓我有以下可能的答案:
- 我還沒有足夠努力的搜索。
- 我想要做的是誤導和錯誤。
- 每個人實現自己的定製身份驗證方案用於此目的
感謝。由於OpenID Connect基於OAuth 2.0,因此我認爲OAuth 1.0方案不適合用於我的目的。我認爲'承載者'是不合適的,原因有兩個:(1)它是OAuth 2.0訪問令牌,而我最終需要的是一個id_token(正如你指出的那樣,我對認證感興趣而不是授權)。 (2)我需要發送授權碼,而不是令牌。正如OIDC Core規範中所述,我正在有效地尋找一種可用於將授權代碼從用戶代理傳輸到機密客戶端的方案。 –
但無論如何,由於您鏈接到的註冊表不包含適合我的確切用例的任何內容,我想答案是沒有定義任何標準方案。 –
@UlrikRasmussen也許[本指南](http://openid.net/specs/openid-connect-basic-1_0.html)對你有幫助?(注意[這部分](http://openid.net/specs/openid-connect-basic-1_0.html#TokenRequest))但是你是對的:沒有專門爲OpenID Connect預留的認證方案。 – DaSourcerer