问题标签 [appauth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1427 浏览

android - 如何在 AppAuth 中使用“普通”PKCE 代码质询方法?

默认情况下,AppAuth会针对身份验证请求发送S256 PKCE代码质询。如果我需要与只支持plain代码质询方式的服务器进行互操作,我该如何配置我的授权请求?

0 投票
2 回答
2953 浏览

android - 具有 onPageFinished() 和 onPageStart() 行为的自定义选项卡

我必须在使用带有 OAuth 功能的 webview 登录的应用程序中实现自定义选项卡。有没有办法将与 onPageStart() 和 onPageFinished() 相同的行为放入 Chrome 自定义选项卡?

0 投票
2 回答
5642 浏览

android - 在 AppAuth-Android 中注销

我有一个用 JAVA 开发的 Android 应用程序。对于这个应用程序,我使用IdentityServer4作为我的 STS,一切正常。但我在AppAuth 库中找不到任何注销的实现。谁可以帮我这个事?我真的需要在我的应用程序中使用注销选项,以便用户可以随时从应用程序中注销并重新登录。任何想法,样品将不胜感激。

0 投票
2 回答
1482 浏览

azure-active-directory - AppAuth 与 Azure AD B2C

我在 Azure AD 中配置了 B2C 服务,并将 Google 作为身份验证提供程序包含在内,但发现 Google 不允许通过嵌入式 Web 视图进行身份验证请求。然后我找到了 AppAuth,但我很难让示例 iOS 应用程序正常工作。

我遇到的问题与重定向 uri 有关。为原生应用程序使用 AAD 提供的重定向 uri 会导致 Safari Mobile 出现错误。我尝试添加一个自定义重定向 uri,该 uri 将重定向到我的 iOS 应用程序,但由于它不在 https url 方案中,因此无法在 azure 广告配置中进行验证。

是否可以将 AppAuth 与 Azure AD B2C 一起使用?有什么方法可以正确配置它还是需要在 MS 端进行更改?

编辑

我有 Azure AD B2C 设置和工作,包括 Google 帐户登录。这在网络浏览器中按预期工作,但是当我尝试使用嵌入式 web 视图从 iOS 登录 Google 时,我得到disallowed_useragent。研究这个我遇到了AppAuth库,我认为它是安全的首选解决方案,除了它由于重定向问题而不能与 B2C 一起使用,或者至少我还没有找到实现这项工作的方法。

我希望我需要能够在 B2C 中提供对我在 iOS 上的应用程序唯一的重定向 URL,以便 SFSafariViewController 可以重定向回我的应用程序。在 B2C 中使用 Web 配置似乎是正确的方法,但它需要使用 https 而不是自定义方案。

有没有办法为自定义重定向 URI 配置 B2C?

0 投票
1 回答
9552 浏览

android - 从 Chrome 自定义选项卡重定向到 Android 应用程序时“导航被阻止”

我正在“现代化”我们的登录小部件以使用 Chrome 自定义选项卡,因为Google 将在几个月后开始使用 Webviews 阻止 OAuth 请求

登录小部件与我们的身份服务配合使用,该服务支持经典的“用户名和密码”登录和社交登录,通过在 Google/Facebook/ 的授权代码流中播放 OAuth2“客户端”......因此来自 Google 的授权代码被传递到此身份服务,它反过来为我们的登录小部件提供访问令牌。

访问令牌通过客户端重定向传递回移动应用程序:

对于经典登录来说一切都很好:用户填写用户名和密码并提交,返回访问令牌,重定向到自定义 URI 方案会触发我的 RedirectReceiverActivity 的意图过滤器。

但是,对于社交登录,重定向时不会发生任何事情,除了 Android 监视器中的这一行:

需要说明的是:对于经典登录和社交登录,客户端重定向完全相同,但是在经典登录后允许,而在社交登录后则被阻止!而且,如果我向小部件添加一个按钮,该按钮在社交登录后执行完全相同的重定向,则再次允许它 - 只要用户单击它。

这让我感到困惑: - 为什么重定向有时被允许有时被阻止?- 除了要求用户在社交登录序列完成后单击按钮之外,有什么办法可以解决这个问题?

我尝试了我能想到的一切:使用“intent:”语法,模拟代码中的按钮单击,使用服务器端重定向,......但没有任何效果。此外,我使用 Google 身份验证示例研究了AppAuth 库,据我所知,我正在做同样的事情。

0 投票
2 回答
2327 浏览

android - 对身份服务器进行身份验证时,AppAuth oidc 无效状态错误

我已将身份服务器 3 配置为项目的 IdP,我们有 3 个客户端:MVC Web、IOS 和 Android。一切都对 MVC 应用程序有好处,使用混合流。

对于 IOS 和 Android,使用本机 oidc 客户端(AppAuth IOSAppAuth android)不起作用,即使我将流程配置为 PKCE 混合。

现在,当我尝试使用 Xamarin 在 android 上创建 POC 并使用 IdentityModel.oidcClient 时,一切都按预期工作,获取访问、刷新和 id 令牌。在为 IOS 和 android 使用 AppAuth 时,出现以下错误:

知道缺少什么吗?

我怀疑这两个本机 oidc 客户端没有要求客户端的共享机密,因此流已损坏。

0 投票
1 回答
1392 浏览

android - 重定向 URI 是否在本机移动应用程序的 OAuth 实施中提供安全性?

我正在 Android 上开发一个本机移动应用程序,它必须与具有 oAuth2.0 实现的服务器交互,并使用 Google AppAuth 库,如此所述。

1) 除了将授权码/访问令牌返回到我们的应用程序之外,重定向 URI 的目的是什么。由于要在授权请求中指定的重定向 URI 必须与在 Google API 控制台中注册的相同,它是否也是一种确保控制权仅返回到在谷歌注册的应用程序而不在其他地方注册的媒介?

2) 由于我在移动应用程序中获取访问令牌和刷新令牌并将其保存在移动设备中(如 codelabs 示例所示),如果有人掌握了我的刷新令牌、客户端 ID 和重定向 URI 的这些详细信息怎么办。有人可以在他自己的设备上使用这些详细信息访问我的服务器吗?

0 投票
1 回答
2169 浏览

ios - 跨客户端 Google OAuth:在 iOS 上获取身份验证代码并在服务器上访问令牌

我正在尝试使用我的 iOS 应用和 Rails 网络应用设置 Google OAuth。我在 API 控制台中设置了 2 个单独的客户端(当然具有不同的客户端 ID,但具有相同的前缀)。一个用于 iOS 应用,另一个用于 Web 应用(也client_secret有访问令牌。

首先,这听起来是不是一件合理的事情,或者不可能像那样在客户之间拆分交易?

我的第一次尝试是只获取身份验证代码并执行交换,但由于missing_code_verifier invalid_grant错误而失败,因此我还将code_verifierAppAuth 用于获取身份验证代码的相同内容传递给我的服务器,并修复了该错误。首先,有必要把这个验证码传给服务器吗?似乎有点奇怪。

unauthorized_client但现在,它因错误而失败。我的网络应用程序发出这样的请求:

看类似的帖子:

看起来这redirect_uri可能是一个问题。我在 iOS 上的 AppAuth 配置将重定向 URI 设置为com.googleusercontent.apps.iOS_CLIENT_ID_HERE,并且Info.plistURL 方案也设置为。API 控制台中 Web 应用程序的“授权重定向 URI”部分有一堆 Web URL,我也将它们添加com.google...到其中。这个配置不正确吗?redirect_uri进行跨客户端身份验证时重要吗?

任何帮助是极大的赞赏!到目前为止,我所有的尝试和错误都没有结果:(

0 投票
2 回答
1316 浏览

ios - 在 Gmail API 中发送电子邮件 - 目标 C

我们正在开发一个涉及通过 Gmail API 发送电子邮件的 iOS 项目,但我们无法找到有关如何实际执行此操作的文档。

首先,我们还没有完全弄清楚身份验证。我们正在使用AppAuth来处理这个问题,到目前为止它工作得很好,但是我们不太确定如何在我们的代码中将它链接到 Gmail API。

其次,我们如何发送消息本身?我们已经格式化了内容和所有内容,我们只是无法弄清楚如何实际发送消息。我们要做的就是从用户自己的电子邮件帐户向指定的电子邮件地址发送一条简单的消息;没有附件或类似的东西。我们已经看到了几个 swift 示例,但是我们更喜欢使用 Objective C。关于我们如何做到这一点的任何想法?

更新:

在尝试了更多之后,我们找到了另一种连接到 Gmail 的方法。我们没有使用来自 Google API Objective C Client for REST 的类,而是尝试使用 HTTP POST 方法发送电子邮件。这似乎比处理我们之前遇到的所有错误要容易得多。我们现在唯一的问题是我们仍然不能完全发送消息。几乎所有我们都尝试过,API 只是创建一个空消息并将其放入我们的已发送邮箱;而已。这是我们现在所拥有的:

我们已经测试了编码部分,它正在制作一个正确的 base64 字符串,但是在那之后,某些东西的格式显然不正确。我们得到消息已成功创建的确认信息,但 API 所做的只是创建一个没有收件人、主题或正文的空电子邮件。关于我们可以做些什么来让它发挥作用的任何想法?

0 投票
1 回答
312 浏览

android - AuthState 构造函数中的 App-Auth Android 示例错误

我正在使用来自此 github 存储库的 AppAuth-Android 示例

我正在使用的 gradle 配置是

抛出的错误是针对以下几行:

该错误表明AuthState(AuthorizationServiceConfiguration)未定义构造函数。

该示例是否未针对库版本进行更新,或者是否存在任何其他错误。