Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookies 使用来自ADFS的OAuth2访问令牌对Web UI进行身份验证_Cookies_Sharepoint_Ionic Framework_Oauth_Adfs - Fatal编程技术网

Cookies 使用来自ADFS的OAuth2访问令牌对Web UI进行身份验证

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

在爱奥尼亚移动应用程序中,我们需要访问web API,以在爱奥尼亚网络视图(本质上是应用程序内部的浏览器)中显示web UI(两者都是SharePoint)。我们正在Windows Server 2012和OnPrem SharePoint 2013上使用OnPrem ADF。我们的工作如下:

1。在ADFS3中,添加依赖方信托和客户

2。从移动应用程序中,呼叫ADFS以获取OAuth访问令牌

首先,获取:

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。