请解释WebAuthenticationBroker
太多的间接层次,让我很困惑 在普通的OAuth中,最后一段通常需要使用授权令牌发回依赖方(又名服务器),授权令牌稍后将通过公钥解密 到目前为止,我看到的唯一例子是:请解释WebAuthenticationBroker,authentication,windows-runtime,oauth-2.0,winrt-xaml,restful-authentication,Authentication,Windows Runtime,Oauth 2.0,Winrt Xaml,Restful Authentication,太多的间接层次,让我很困惑 在普通的OAuth中,最后一段通常需要使用授权令牌发回依赖方(又名服务器),授权令牌稍后将通过公钥解密 到目前为止,我看到的唯一例子是: String FacebookURL = "https://www.facebook.com/dialog/oauth?client_id=" + FacebookClientID.Text + "&redirect_uri=" + Uri.EscapeUriString(FacebookCallbackUrl.Text)
String FacebookURL = "https://www.facebook.com/dialog/oauth?client_id=" + FacebookClientID.Text + "&redirect_uri=" + Uri.EscapeUriString(FacebookCallbackUrl.Text) + "&scope=read_stream&display=popup&response_type=token";
然而,代理似乎能够确定用户是否合法,而不必访问您自己的服务器。如下行所示:
if (WebAuthenticationResult.ResponseStatus == WebAuthenticationStatus.Success)
那怎么安全呢
如果重定向URI应该是指向我自己的服务的URI,那么我如何处理和响应请求?WebAuthenticationBroker只是自动化了一种常见技术,即在身份验证完成时查找要导航到的特定URL,并取消它以提取
访问令牌。这主要用于带有嵌入式浏览器的移动应用程序。没有涉及任何服务器(授权服务器除外)
OAuth2中有两个常用的身份验证流:
授权代码流
隐性赠款流动
在#1中,您有3个部分:您的服务器、授权服务器(如Facebook)和浏览器。在这个流程中,访问令牌在服务器和AS之间协商,浏览器是一个中介。(更多详细信息请参见)
在#2中,access_令牌
由浏览器(或嵌入本机应用程序的浏览器)和AS直接协商。任何地方都没有秘密存储(如流#1)。()
您的示例使用#2,如response_type=token
access\u令牌
通常以URL的形式返回:
http://{callback}/#access_token={the access token}
当浏览器尝试导航到此地址时,WebAuthenticationBroker
将中断导航并调用您的代码。然后,您将提取access\u令牌
,并执行应用程序对AS(或API)所做的任何操作
演示如何使用它(使用我们自己的AS,但您可以轻松地将其推广到任何AS)
注意:access\u令牌
通常是不透明的实体。没有加密、签名或其他任何东西。更现代的系统将返回一个Json Web令牌
,该令牌确实具有意义和内容,并且经过数字签名。在上面的示例中,您将看到除了access\u令牌
之外,还有一个id\u令牌
参数。那是JWT
WebAuthenticationBroker
只是自动化了一种常见技术,即在身份验证完成时查找要导航到的特定URL,并取消它以提取access\u令牌。这主要用于带有嵌入式浏览器的移动应用程序。没有涉及任何服务器(授权服务器除外)
OAuth2中有两个常用的身份验证流:
授权代码流
隐性赠款流动
在#1中,您有3个部分:您的服务器、授权服务器(如Facebook)和浏览器。在这个流程中,访问令牌在服务器和AS之间协商,浏览器是一个中介。(更多详细信息请参见)
在#2中,access_令牌
由浏览器(或嵌入本机应用程序的浏览器)和AS直接协商。任何地方都没有秘密存储(如流#1)。()
您的示例使用#2,如response_type=token
access\u令牌
通常以URL的形式返回:
http://{callback}/#access_token={the access token}
当浏览器尝试导航到此地址时,WebAuthenticationBroker
将中断导航并调用您的代码。然后,您将提取access\u令牌
,并执行应用程序对AS(或API)所做的任何操作
演示如何使用它(使用我们自己的AS,但您可以轻松地将其推广到任何AS)
注意:access\u令牌
通常是不透明的实体。没有加密、签名或其他任何东西。更现代的系统将返回一个Json Web令牌
,该令牌确实具有意义和内容,并且经过数字签名。在上面的示例中,您将看到除了access\u令牌
之外,还有一个id\u令牌
参数。那是JWT
谢谢我也得出了同样的结论。只有当你没有自己的服务时,才能得到代币。(又名。你的应用程序完全依赖于第三方服务)谢谢。我也得出了同样的结论。只有当你没有自己的服务时,才能得到代币。(又名。您的应用程序完全依赖于第三方服务)