问题标签 [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 投票
3 回答
3460 浏览

swift - 应用程序崩溃 - 未加载 AuthenticationServices 库

我正在尝试使用 AppAuth-iOS dev-logout 分支,并在模拟器 10.3.1 上进行了测试。当我尝试运行代码时,我遇到了这个崩溃:

dyld:库未加载:/System/Library/Frameworks/AuthenticationServices.framework/AuthenticationServices 原因:找不到图像

AuthenticationServices 仅出现在 iOS 12.0+ 中,因此这可能是导致崩溃的原因。

github问题链接:https ://github.com/openid/AppAuth-iOS/issues/350

感谢您的任何提示!

0 投票
1 回答
668 浏览

ios - 登录 SFAuthenticationSession 然后在 SFSafariViewController 中打开一个执行 SSO 的链接

我正在使用 AppAuth-iOS 进行 AD B2C 登录,AppAuth-iOS 使用 SFAuthenticationSession 在 iOS 11+ 上发出身份验证请求。我假设当我调用 SFSafariViewController 打开一个指向与 B2C 进行 SSO 的 web 应用程序的链接时,它会自动对用户进行身份验证。但是,这似乎不起作用。

它不应该工作吗?我做错了吗?

我尝试在我的项目中修改 AppAuth-iOS pod,并尝试在 webview 中打开身份验证请求并使用 webview 来打开链接.. 不起作用。另外,我读过关于 Safari 不共享 cookie 的实例,这也适用于 webview 吗?webview 是否使用 Safari 浏览器?我还阅读了与此问题相关的其他内容,但它们让我感到困惑,最后,对我来说,它们并没有结束。

这是来自 AppAuth-iOS 的 OIDExternalUserAgentIOS.m 的代码,用于将应用程序与 B2C 登录进行通信:

我使用此代码打开链接,

我希望 SSO 将在 SFAuthenticationSession 和 SFSafariViewController 之间工作。

非常感谢你。

0 投票
1 回答
1046 浏览

ios - AppAuth/OpenID-Connect:可以使用用户名和密码登录吗?

我想在 iOS 应用程序中通过 OpenID-Connect 实现登录。AppAuth-SDK 似乎是这样做的标准方式。下载一些示例后,我有点困惑。所有 AppAuth 示例和教程都使用用户输入用户名和密码的 WebView。我想制作一个本机登录屏幕,用户必须在其中输入用户名和密码。AppAuth甚至可以吗?我读了一些关于“资源所有者密码授权”和“客户端密码”的内容。那是我需要的吗?

如果有人能把我推向正确的方向,我将非常感激。

0 投票
0 回答
102 浏览

android - 我的移动应用程序 SaaS 单点登录流程是否正确?

我在一家 B2B SaaS 公司工作,该公司为拥有不同单点登录提供商的公司提供服务。我们正在使用 Open Id Connect 和 OAuth2.0 协议将 SSO 集成到移动和服务器端。

我只是在仔细检查我是否正确理解了流程,所以如果我错了,请纠正我:

预期流量为:

b2b SaaS 流程

  1. 用户打开移动应用程序并输入他们的电子邮件
  2. 使用租户发现,我们确定他们正在使用哪个 IDP(如果有)并使用 CustomTab 将他们重定向到登录页面(我们在 iOS 和 Android 上使用 AppAuth 库)
  3. 他们输入他们的凭证,这些凭证通过 PKCE 进入他们的 IDP
  4. AppAuth 收到一个 AuthToken,然后它与 PKCE 的 code_verification 一起使用以获取访问令牌。
  5. 移动应用程序获取访问令牌并将其与用户电子邮件一起在登录帖子中传递给我们的服务器。
  6. 服务器使用访问令牌与 IDP 进行反向对话,并通过获取用户的电子邮件地址来验证用户。
  7. 验证用户的电子邮件地址,然后我们生成我们的身份验证和跨站点伪造 cookie,这些 cookie 返回给客户端。

这一切都正确吗?

0 投票
0 回答
1116 浏览

ios - iOS 应用扩展中的访问令牌刷新

我们有一个与 Web 服务通信的 iOS 应用程序。

它使用 OAuth 身份验证(通过AppAuthaccess_tokenrefresh_token。当 shortaccess_token到期时,我们需要使用refresh_token.

我们现在正在添加一个 Today 扩展,并希望使该扩展也与 Web 服务进行通信。但是有一个问题——如何处理访问/刷新令牌对的更新?

似乎在 Today Extension 运行时主应用程序可能正在休眠,所以有时可能会出现我们想直接从 Today Extension 刷新 access_token 的情况。由于这会使refresh_token我们在主应用程序中拥有的另一个无效,因此来回同步令牌变得非常棘手。

是否有任何既定的方式来同步令牌刷新?或者也许我们应该以某种方式重新考虑我们的方法?

我们现在使用 Keychain 来存储和共享令牌,这部分效果很好。但是令牌的刷新和同步是我们很难弄清楚的。

0 投票
0 回答
164 浏览

ios - AppAuth podspec recursive weak_frameworks 未安装为弱

我有一个部署目标为 iOS 9.3 的应用程序。我正在使用 AppAuth 库 (appauth.io),并且在 podspec 中它引用了 Apples AuthenticationServices SDK。此 SDK 仅适用于 iOS 12+。因此,它与 .weak_framework 参考链接。

但是在运行“pod install”时,AuthenticationServices 框架会像任何其他参考一样根据需要嵌入 - 不像我预期的那样弱/可选。 在此处输入图像描述

因此,当应用在低于 iOS 12 的设备上运行时,应用会崩溃并显示以下消息:

根据苹果关于框架弱链接的文章(https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html#//apple_ref/doc/uid/20002378-BBCJICEC) ,这也应该在带有标志 -weak_framework 的“其他链接器标志”中可见。但这里确认该框架没有正确弱链接。 在此处输入图像描述

是否有人在低于 iOS 12 的设备或其他在 cocoapods 中使用 .weak_framework 的 SDK 上使用 AppAuth SDK 成功?

如何在递归 podspec 中使用 .weak_frameworks,以便将引用正确安装为 cocoapods 项目中的弱引用?

0 投票
1 回答
214 浏览

ios - AppAuth - 外部浏览器窗口不会打开?

我正在使用 AppAuth 库在我的应用程序中以目标 c 编写的自定义单点登录。

到目前为止,我已经设法让它快速工作,但是当我使用转换为目标 c 的相同代码时,浏览器没有打开。这是我到目前为止所拥有的(已经从这里包含的代码中删除了所有 url 和 id,所以不要介意这里的字符串是空的):

在应用委托中:

在视图控制器中:

这会打开一个警报,询问用户他/她是否要登录,如果我按继续,外部浏览器应该会打开自定义 SSO 页面。问题是按下继续后没有任何反应。

有任何想法吗?

0 投票
0 回答
206 浏览

android - SSO Okta 登录后未返回应用程序

我正在尝试为我的 android 应用程序配置SSO 身份验证。我在下面的链接上找到了一个教程,

https://codelabs.developers.google.com/codelabs/appauth-android-codelab/#0

它显示了基于 Google 的SSO示例。

我为此目的使用Okta ,我在Okta上创建了应用程序并复制了客户端 ID 并将 url 从它重定向到我的项目。

当我使用谷歌 URL(身份验证和令牌端点、客户端 ID、重定向 URL)时,它工作正常,即它重定向到谷歌登录页面,输入有效凭据后,它返回到我的应用程序。

在使用Okta URL(身份验证和令牌端点、客户端 ID、重定向 URL)时,它会将我正确重定向到 Okta 登录页面,但在输入有效凭据后,它不会返回到我的应用程序,即登录页面没有关闭。

下面是我用于SSO登录的代码,

请帮帮我。提前致谢。

0 投票
1 回答
647 浏览

react-native - 如何将 Expo AppAuth 模块与 IdentityServer4 一起使用

我正在尝试使用 Expo AppAuth 模块在本机反应中使用 IdentityServer4 进行身份验证。似乎无法正确设置 redirectUri。当我重定向到 identityServer 时,我收到“无效的重定向 uri”错误。

这是我在身份服务器上的客户

我对 AppAuth 的配置设置是

0 投票
1 回答
926 浏览

javascript - 如何为 ionic 3 应用程序显示 openid appauth 流的应用内浏览器?

我正在使用此库的授权代码流 - https://github.com/openid/appauth-js

一旦应用程序启动,我就有了它,这个端点称为https://link.com/.well-known/openid-configuration,然后我被重定向到身份服务器路径,并传入我的凭据。

问题是我不希望用户离开应用程序,我希望显示应用内浏览器。我不完全确定如何生成它。我将如何实现这个插件 - https://ionicframework.com/docs/v3/native/in-app-browser/

app.component.ts

auth.flow.ts