Cookies 使用来自ADFS的OAuth2访问令牌对Web UI进行身份验证
在爱奥尼亚移动应用程序中,我们需要访问web API和,以在爱奥尼亚网络视图(本质上是应用程序内部的浏览器)中显示web UI(两者都是SharePoint)。我们正在Windows Server 2012和OnPrem SharePoint 2013上使用OnPrem ADF。我们的工作如下: 1。在ADFS3中,添加依赖方信托和客户 2。从移动应用程序中,呼叫ADFS以获取OAuth访问令牌 首先,获取:Cookies 使用来自ADFS的OAuth2访问令牌对Web UI进行身份验证,cookies,sharepoint,ionic-framework,oauth,adfs,Cookies,Sharepoint,Ionic Framework,Oauth,Adfs,在爱奥尼亚移动应用程序中,我们需要访问web API和,以在爱奥尼亚网络视图(本质上是应用程序内部的浏览器)中显示web UI(两者都是SharePoint)。我们正在Windows Server 2012和OnPrem SharePoint 2013上使用OnPrem ADF。我们的工作如下: 1。在ADFS3中,添加依赖方信托和客户 2。从移动应用程序中,呼叫ADFS以获取OAuth访问令牌 首先,获取: https://myadfsdomain/adfs/oauth/authorize
https://myadfsdomain/adfs/oauth/authorize
?response_type=code
&client_id=MYCLIENTID
&redirect_uri=https://myserver/callback
&resource=MYRelyingPartyId
然后发布响应代码,例如:
$http({method: "post",
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
url: "https://myadfsdomain/adfs/oauth2/token",
data: "client_id=MYCLIENTID&code=" + responseCode + "&redirect_uri=https://myserver/callback&grant_type=authorization_code" })
另见
我们现在有了OAuth2访问令牌
3。使用该令牌调用SharePoint API
GET /the-api-method
Host: example.com
Authorization: Bearer <access_token>
GET/api方法
主持人:example.com
授权:承载人),以便应用程序中的web视图可以向经过身份验证的用户显示SharePoint网页,而无需用户再次登录
据介绍,OAuth2 for ADFS3(Windows Server 2012)只在调用web API时才起作用,而在调用web UI时不起作用。对吗
作为Windows Server 2016上的ADFS,现在是否可以在Server 2016中将ADFS OAuth用于web UI?如果是,访问令牌是如何交换为cookie的?是-ADFS 3.0仅处理机密客户端(即web API)的授权代码授予
在ADFS 4.0中,您支持OpenID Connect。这将打开web站点场景。这将为您提供一个令牌,然后您可以使用该令牌访问web API
看一看。这使用了Azure广告,但原理是一样的。的确如此。这个例子与我的场景有所不同——AFAICT,例子中的web应用使用OAuth和OpenID从web服务器向AD进行身份验证,然后以典型的方式发布自己的cookie。在我的例子中,身份验证是在移动应用程序中完成的,然后我需要将访问令牌传递给web服务器以获取cookie。研究OWIN,看看它是否有帮助…Daniel Flippence你让它工作了吗?“问题是,如何使用该访问令牌访问Web UI?是否可以将其交换为SharePoint Web UI cookie(FedAuth?),以便放置在应用程序中的Web视图可以向经过身份验证的用户显示SharePoint网页,而无需用户再次登录?”@Ianakin,在我们的例子中,由于Ionic的设计方式,web UI和web API最终使用了相同的cookie,因此我们可以在不需要使用OAuth的情况下同时显示UI和调用API。