Tag: 谷歌 OAuth

如何在Visual Studio 2015中设置OAuth以使用Google身份验证

OAuth(开放授权)是一种开放标准,允许用户使用其从其他网站(例如Google)的登录凭据登录网站。 登录时会创建一个访问令牌。 创建一个Web应用程序项目或打开一个包含授权的现有项目。 启用S​​SL(安全套接字层) SSL用于建立加密 Web服务器和浏览器之间的链接。 在解决方案资源管理器中,单击您的项目,然后按F4键或从工具栏中打开“视图”,然后单击“属性窗口”,打开“项目属性”窗口。 请注意,这是与右键单击并选择“属性”时显示的窗口不同的窗口。 在“启用SSL”的行上,双击“假”将其切换为“真”。 现在,“ SSL URL”行上将有一个https URL。 复制SSL URL。 请注意,端口号与通常的http URL不同,后者在下面的行中列出。 在项目属性页面中设置https URL。 在解决方案资源管理器中,右键单击您的项目,然后选择“属性”以打开“属性”页面。 从左侧的选项中选择“网页”页面。 对于“项目URL”,将http URL替换为您在上述步骤中复制的https URL。 您还需要此URL进行Google配置。 生成安全证书 将[RequireHttps]属性添加到家庭控制器,以便所有请求都需要https。 运行您的应用程序。 如果您已经在应用程序上设置为在当前计算机上使用OAuth,则已经为本地主机安装了证书,因此请跳至下一步。 如果这是您首次设置要使用OAuth的应用,则会显示以下窗口。 单击是。 然后将显示以下安全警告消息。 再次单击是。 使用Google启用您的应用程序 启动谷歌浏览器,并通过以下网址转到开发者控制台:https://console.developers.google.com/ 在“ Google API”旁边的顶部栏中,单击下拉列表,然后选择“创建项目”。 输入您的项目名称,然后单击“创建”按钮。 Google将需要一分钟的时间来创建该项目,然后库页面将显示流行的API类型列表。 为此,请在“社交API”下选择“ Google + API”。 在出现的窗口顶部,单击“启用” 在左侧面板中,单击“凭据”,然后在出现的凭据窗口顶部,单击“ OAuth同意屏幕”,然后输入“显示给用户的产品名称”。 这是您的用户会识别为您的应用程序的名称。 您的电子邮件应该已经显示。 点击“保存”。 点击“创建凭据”,然后从凭据类型列表中选择“ OAuth客户端ID”。 (另外两个是API密钥和服务帐户密钥,这些指令未涵盖这些密钥。) 在“凭据”输入页面上,将“ Web应用程序”选择为“应用程序类型”。 […]

Okta身份验证第1部分

使用Okta,用户可以轻松地将身份验证和授权集成到本机iOS应用程序中。 两种类型的Okta身份验证。 Okta Mobile Connect(SAML) OpenID连接 Okta Mobile Connect为支持SAML(安全性断言标记语言)的本机移动应用程序启用SSO(单一登录)。 SSO(单点登录)的优点: 1.无需输入用户名和密码 2.无需记住和更新密码。 3.没有弱密码。 OpenID Connect扩展了OAuth 2.0协议。 OAuth 2.0通过作用域访问令牌提供API安全性,而OpenID Connect提供用户身份验证和SSO(单点登录)功能。 Okta身份验证API: Okta身份验证API用于通过创建和控制会话令牌来控制对本机应用程序的访问。 会话令牌是身份验证事务成功完成时发出的一次性令牌。 Okta中使用的会话令牌,而访问令牌,刷新令牌和用于访问第三方应用程序(例如您的应用程序)的客户端ID。 OAuth 2.0: OAuth 2.0协议用于以安全的方式授予对您的应用程序数据的授予访问权限。 OAuth 2.0具有以下4个重要角色: 服务器是“授权服务器”,它发出访问令牌。 Okta是授权服务器。 “资源所有者”,通常是应用程序的最终用户,授予使用访问令牌访问资源服务器的权限。 应用程序“客户端”从Okta请求访问令牌,然后将其传递到资源服务器。 “资源服务器”,它接受访问令牌,并且必须验证它是否有效。 资源服务器就是您的应用程序。 OAuth 2.0授权流程的工作方式如下: 客户端向资源所有者(用户)请求授权。 如果用户给予授权,则客户端将授权授予传递给授权服务器(Okta)。 如果授予有效,则授权服务器将返回访问令牌以及刷新令牌和ID令牌。 客户端使用访问令牌来访问资源服务器。 OpenID Connect: OpenID Connect是建立在OAuth 2.0之上的身份验证标准。 它添加了另一个称为ID令牌的令牌。 OpenID Connect的重要角色: “ OpenID提供程序”是颁发ID令牌的授权服务器。 Okta代表OpenID提供者。 “最终用户”,其信息包含在ID令牌中。 “信赖方”,即从Okta请求ID令牌的客户端应用程序。 “ […]

带有ORY Hydra,Vapor 3和iOS 12的OAuth2

在本教程中,我们尝试为您提供有关如何使用iOS应用,Vapor API和Hydra作为OAuth2服务器来实现OAuth2授权代码流的广泛理解。 教程系列 第1部分:ORY Hydra授权服务器的介绍和设置(您在这里) 第2部分:Vapor后端中的用户管理 第3部分:将Vapor后端设置为ORY Hydra的身份提供者 第4部分:使用AppAuth在iOS上设置OAuth2授权 您至少需要Mac才能构建iOS应用。 这对于调试Vapor后端也很有帮助。 您需要安装Docker(https://www.docker.com/get-started) 您应该对OID2授权代码与OpenID Connect的工作原理有基本的了解。 有很多资源,例如,您可以查看DigitalOcean的介绍。 请注意,本教程将仅在您的本地计算机上设置所有内容,并且被认为不适合生产。 例如,我们会将客户端机密存储在iOS应用程序中,您绝对不要这样做。 如果有需求,我们可能会在本教程的其他部分中着重于使整个设置生产就绪。 我们正在开发一个涉及安全性的产品,因此,依靠最佳实践用户身份验证绝对是必经之路。 设置OAuth2通常很麻烦。 ORY Hydra减轻了您实现自己的OAuth2服务器的负担,但仍要求/允许您使用自己的身份提供者。 这使我们感到困惑,哪些身份验证流程的哪些部分需要作为身份提供者的一部分在我们的后端中实现,哪些部分由Hydra提供。 在本教程中,我们将尝试更清楚地说明在开发使用Vapor后端和Hydra作为OAuth2服务器的iOS应用时,每个部件要承担什么责任。 这是我们完成后应用程序的外观: iOS应用 iOS应用程序本质上将非常简单,并且仅具有两个本机屏幕:登录提示屏幕和成功屏幕,向您显示您已成功验证用户身份。 我们将使用AppAuth在应用程序内部处理OAuth令牌。 蒸气后端 蒸气后端将包含用户管理,并且还将作为身份和同意提供者来提供HTML登录和注册屏幕。 同意步骤将自动跳过,因为像这样的第一方应用程序不需要此步骤。 我们可以假设一个想要在我们平台上登录的用户也想要为其数据授予访问权限。 ORY九头蛇 Hydra是一个开放源代码的OAuth2服务器,它通过将用户身份验证(登录,注册)委派给身份提供者(在本例中为Vapor后端)来管理授权流程。 如果成功,它将发出访问令牌,刷新令牌和ID令牌,这些令牌可用于验证后端访问受限数据(即用户个人资料)的请求。 这可能已经令人困惑,所以让我们通过分解设置所需的内容来更好地理解它: iOS应用程序需要了解Hydra服务器的身份验证和令牌终结点(公共API),但是它们完全由AppAuth库管理。 Vapor后端需要有权访问Hydra服务器的管理端点(管理API)以发起和接受登录和同意请求。 Hydra需要知道您的Vapor后端上的登录(或注册)端点和同意端点,以便将身份验证委派给您的身份提供者。 您在Hydra中创建的客户端还需要一个回调URL,以便Hydra在身份验证过程完成后知道重定向到的位置(这是一个自定义URL方案,链接到iOS应用)。 流程示例 让我们看一下用户想要注册帐户时应该发生的交互流程: 请注意,星号前缀的“实体名称”不是实际的类型,仅用于在不同阶段引用同一段代码/数据(例如“ * AuthCallback”,“ * RegistrationInput”等)。 这些图主要作为概述,您可以在本教程系列的整个课程中继续学习。 需要花很多时间,但是请记住,我们只需要实现非虚线字段并设置蓝色的Hydra部分。 在本教程的其余部分中,我们将重点关注后者。 希望您现在对我们将在此处构建的内容有了更好的了解。 现在是时候深入研究实际的实现了。 好吧……不是真的。 由于Hydra已经实现,因此只需使用一些参数启动它,并且您需要为应用程序创建一个客户端。 启动Hydra实例 […]

Okta身份验证第2部分

选择OAuth 2.0流程: 本部分可帮助您基于以下几点选择OAuth流程。 您需要的令牌类型。 您正在构建的客户端应用程序的类型。 您的应用程序需要ID令牌吗? 根据下表,您可以选择所需的OAuth流程。 您要建立什么样的客户? 下面的流程图可以快速帮助您确定要使用的OAuth流。 对于本机应用程序,Okta使用带有证明密钥的授权代码流进行代码交换(PKCE)。 带有PKCE流的授权码: 对于本机/移动应用程序,客户端机密无法存储在应用程序中,因为它很容易被公开。 因此,本机应用程序应使用代码交换证明密钥(PKCE),该密钥作为秘密使用,以确保授权代码流的安全。 验证码流程相似,不同之处在于它包含各种流程中的PKCE元素。 PKCE身份验证代码流要求您的应用程序生成一个称为“代码验证程序”的加密随机密钥。 从验证程序创建一个“代码质询”,并将其与授权码请求一起传递。 在访问令牌请求中发送了授权代码后,代码验证程序将作为请求的一部分发送。 授权服务器使用哈希算法重新计算代码挑战,并比较两个代码挑战和验证者匹配,以了解客户端发送的两个请求。 带有PKCE的授权代码流是标准代码流,在开头有一个额外的步骤,在结尾有一个额外的验证。 从总体上讲,该流程包含以下步骤: 您的应用程序将生成一个代码验证器,然后是一个代码质询。 您的应用程序将浏览器与生成的代码质询一起定向到Okta登录页面,然后用户进行身份验证。 Okta使用授权代码重定向回您的本机应用程序。 您的应用程序将此代码以及代码验证器发送到Okta。 Okta返回访问和ID令牌,以及可选的刷新令牌。 您的应用程序现在可以代表用户使用这些令牌来调用资源服务器(例如API)。 第3部分我将用示例解释OpenID Connect。 🙂 而已。 😃😃😃感谢您的阅读。 如果您想在社交媒体上关注我,这里有一些链接。 Linkedin , twitter , github 。 您可以 在这里 查看我的上一篇文章 。

oauth 2.0 webview ios sdk

我正在构build一个ios SDK并实现oauthstream。 基本上我需要做到以下几点: 用户点击一个button。 看到一个webviewpopup。 他们在webview中签名/注册,授予访问帐户的权限。 webview将它们redirect回url中的代码。 我需要以某种方式使用该代码进行api调用来获取他们的访问令牌。 我怎么能在objective-c上面做到这一点? 这意味着如何使用我的网站注册/签名stream向他们显示webview,并使用redirect的url中的代码访问访问令牌? 我知道如何做webview,但我不知道如何让代码来使用api调用。

从响应string中提取令牌

如何从响应string中提取令牌? (我不知道令牌的长度,所以我不能在这里使用NSRange) oauth_callback_confirmed=true&oauth_token=72157632316931441 -fadcd6ef70cbd06c&oauth_token_secret=a7e7b046a8960559 当前的代码是(它给出令牌和string的其余部分): NSRange access_token_range = [operation.responseString rangeOfString:@"oauth_token="]; if (access_token_range.length > 0) { int from_index = access_token_range.location + access_token_range.length; NSString *access_token = [operation.responseString substringFromIndex:from_index]; NSLog(@"access_token: %@", access_token); }

主线程上的OAuthSwift请求callback

我用我的iOS应用程序使用swift 2.0写OAuthSwift(v 0.5.1)。 我使用Grand Central Dispatch在后台线程中运行一些代码。 这段代码使用OAuthSwift向服务器发出请求。 但是请求的callback在主线程上运行。 有没有一种方法可以在发送请求的同一线程上接收callback? dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)){ //Here run in background thread var client = OAuthSwiftClient(consumerKey: xxx, consumerSecret: yyyy) client.get(url, parameters:[:], headers: header_array, success:{(data, response)-> Void in //Success code here run on main thread }) { (error) -> Void in //Error code here } }

OAuthGetRequestToken:signature_invalid错误

我尝试使用谷歌数据API,并遇到困难在OAuthGetRequestToken。 我遵循指令: requestToken 我使用GET并在URL之后添加查询参数。 我以这种方式为签名创build基本string:按字母顺序sorting的GET&request url&query参数(不带oauth_signature) 在我使用HMAC-SHA1时,我使用“消费者机密”值来创build签名。 最后,我使用url +查询参数,浏览器总是返回:signature_invalid base_string:GET&https%3A%2 ****** 我发现base_string与我的代码中的一样。 我不知道问题在哪里,请求帮助。 下面是我的代码:(hmac_sha1是正确的,因为我使用Oauth的样本数据来testing) #import "ContactTestViewController.h" #import "ASIHTTPRequest.h" #import <CommonCrypto/CommonHMAC.h> #import <CommonCrypto/CommonCryptor.h> #import "Base64.h" #import "NSStringAdditions.h" #import "NSData+Base64.h" #define kAllContacts @"https://www.google.com/m8/feeds/contacts/default/full" #define kOauthGetRequestToken @"https://www.google.com/accounts/OAuthGetRequestToken" #define kOauthConsumerKey @"oauth_consumer_key=***.net" #define kOauthConsumerSecret @"****/*****" #define kOauthNonce @"oauth_nonce=457261624861626265724761686176" #define kOauthSigMethod @"oauth_signature_method=HMAC-SHA1" #define kOauthSignature @"oauth_signature=" #define kOauthTimeStamp @"oauth_timestamp=" #define kOauthScope @"scope=https://www.google.com/m8/feeds/contacts/default/full" […]

IOS linkedin集成(发送连接请求,search人员)

我正在使用linkedin OAuth sdk。 我有oauthfunction工作,我的iPhone应用程序能够成功login到LinkedIn。 我想实现这两件事情。 我想要使​​用JSON协议search人员。 我想发送连接请求人,我从search得到。 请尽快提供帮助。 build议我示例代码,如果有的话。 提前致谢。

是否有必要使用谷歌应用程序帐户来使用Google+域API?

我正在尝试通过以下API调用获取用户的圈子信息 xhr.open("GET", "https://www.googleapis.com/plusDomains/v1/people/me/circles?alt=json&access_token=" + googleAuth.getAccessToken()); 它给出了响应文本 {"error":{"errors":[{"domain":"global","reason":"forbidden","message":"Forbidden"}],"code":403,"message":"Forbidden"}} 我已经启用谷歌+域的API