首先,我是ADFS主題的新手。目標是爲SPA Web應用程序提供單點登錄OAuth2身份驗證。請求域內ADFS的令牌和聲明
我們有兩個分別在兩個不同域(A,B)上運行的內部ADFS服務器(稱爲Server-A和Server-B)。 現在用戶可以來自任何域(A,B),他們可以登錄到我的應用程序。
這兩個ADFS服務器相互信任,並且Server-B的ADFS已作爲Claim Provider信任添加到Server的A的ADFS上,並且Server-A的ADFS已添加到Server-B的ADFS上作爲依賴方信任。 我的應用程序端點是Server-A的ADFS,而我的應用程序位於Server-A內部的IIS上。
現在當域A的任何用戶試圖登錄我的應用程序,那時候我得到了「access_token」和「Claims」兩者。
問題:當域B的任何用戶試圖登錄到時候,提示以下錯誤消息越來越 -
Error message while user of domain B trying to login.
Basically in this image step #7 getting failed.
我使用JavaScript代碼下面讓代碼和令牌
下面的代碼讓「作者化代碼」
function getAuthorizationCode() {
var _url = _adfs_server + "/adfs/oauth2/authorize?response_type=code&client_id=" + _client_id + "&redirect_uri=" + _redirect_url + "&resource=" + _resource;
window.location.href = _url; }
上面的代碼片斷 - 我收到‘’從‘重定向的URL’查詢字符串授權碼。而在這之後我打電話下面的代碼來獲得訪問令牌
function getAccessToken(code) { var redirect = decodeURIComponent(_redirect_url); var _data = { 'grant_type': 'authorization_code', 'client_id': _client_id, 'redirect_uri': redirect, 'code': code } $.ajax({ type: "POST", url: _adfs_server + "/adfs/oauth2/token", crossDomain: true, data: _data, success: function (response) { _token = 'Bearer ' + response.access_token; callWebAPI(); } }); }
於是兩個ADFS服務器之間的配置缺失或一些其他步驟需要做什麼?
我正在使用Window Server 2012 R2和ADFS 3.0。 – Sourin
但是我正在從ADFS服務器A獲取令牌和聲明。只有當域B的用戶嘗試登錄那個時候出現「發生了一些錯誤」的錯誤 - 位於上面的附件中。 – Sourin