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

oauth - Identity Server 4 with appAuth - 如何在 IDS4 中为 appAuthResponse 设置附加参数

我们正在使用带有 Identity Server 4 的 React Native appAuth 库(https://github.com/FormidableLabs/react-native-app-auth),并尝试在响应中使用附加参数。原因是我们在 IDS4 登录页面上有一个语言选择器,我们希望将选择的语言发送回 Native 应用程序并让 appAuth 库接收它,因此应用程序可以相应地进行调整。我如何修改身份服务器来做到这一点

}

我试过使用 ICustomAuthorizeRequestValidator

但这不能作为身份服务器错误使用 "Error","MessageTemplate":"Invalid redirect_uri: {redirectUri}, expected {exceptRedirectUri}","Properties":{"redirectUri":"icisapp:/oauthredirect","exceptRedirectUri ":"icisapp:/oauthredirect?lang=zh"

有人有什么想法吗?

0 投票
1 回答
450 浏览

ios - 修改 AppAuth 警报

我正在使用 AppAuth (0.95) 在我的 IOS 应用程序上访问谷歌邮件。在重定向到谷歌登录之前,我收到一条带有此消息的警报。

'Appname' wants to use google.com to sign in. This allows the app and website to share information about you

'appname' 想使用 google.com 登录。

看起来Appname是应用程序包名称。是否可以将其更改为应用程序显示名称。还是根本没有警报?

0 投票
2 回答
237 浏览

ios - 尝试查询存储 NSData 的密钥时,Xamarin.iOS 钥匙串挂起

我有一个用于身份验证的现有企业部署应用程序OpenID Connect。一旦通过身份验证,AuthState为了安全起见,我将对象存储在 iOS 钥匙串中,并且以后能够仅使用 Face/Touch ID 登录用户(假设 AuthState 中的刷新令牌仍然有效)。该AuthState对象如下所示:

iOS 12.1更新之前一切正常

问题:安装 ios 12.1 更新后,仅在以发布模式运行时(在连接到 VS for Mac 调试器时在开发模式下调试时工作)查询存储此对象二进制NSData表示的钥匙串中的现有密钥挂起,最终应用程序是因超过 10 秒无响应而终止。AuthState

有没有人遇到过类似的问题?如果有人能阐明这里可能发生的事情或指出我正确的方向,那就太棒了。

附加信息:

我如何获得对象NSData的二进制表示AppAuth

我如何将其保存NSData到钥匙串中:

我如何查询现有数据keychain

我检查了设备日志中没有明显的错误。我错过的 iOS 12.1 中是否有显着影响这一点的变化?

更新:我将代码重构为仅将加密密钥密码存储在钥匙串中而不是整个 AuthState 对象中,并将序列化的 AuthState 加密存储到本地文件中。仍然看到相同的问题,在设备上的调试模式下,一切正常,从钥匙串中写入和读取都很好,当在同一设备上没有附加调试器的情况下运行时,相同的构建,写入正常,在成功验证 TouchID/FaceID 后读取挂起时,是Xamarin.iOS SDK 中是否有一个错误没有赶上导致此问题的最新 iOS 中的某些更改?

0 投票
3 回答
1850 浏览

android - 是什么阻止了其他应用窃取我的 Google OAuth 客户端 ID?

我创建了一个使用 AppAuth 通过 Google OAuth 进行身份验证的 Android 应用程序。在 Google Cloud Platform Console 中,我为我的应用创建了一个 Android OAuth 2.0 客户端 ID,并提供了应用包名称和签名证书指纹。一切正常。

我想验证只有我的应用程序可以使用该客户端 ID。所以我用不同的包名创建了第二个应用程序,并用不同的签名证书对其进行了签名。使用相同的客户端 ID,我仍然能够通过 Google 进行身份验证并访问 API。我不认为应该是这样。我正在查看 AppAuth 的源代码,它看起来不像在身份验证流程中使用过应用程序签名或包名称。它当然使用 PKCE,但我预计会发生更多。

因此,如果我可以毫不费力地窃取我自己的客户端 ID,那么如何阻止其他人从我的 APK 中提取我的客户端 ID 并将其用于身份验证?我用于重定向 URI 的自定义方案很容易根据我的包名称找出。因此,rouge 应用程序可以配置 AppAuth 以使用类似的重定向 URI 并捕获授权结果。而且由于 PKCE 仅用于验证授权请求和代码交换来自同一个地方,因此一个 rouge 应用程序会同时执行这两种操作,因此那里也没有真正的保护。

我可以将客户端 ID 类型切换为 Web 或其他,但这需要我使用客户端密码,如果将其嵌入应用程序中,这同样不安全。

我是否遗漏了什么,或者 Google OAuth 是否完全按照预期工作?

0 投票
1 回答
664 浏览

android - App Auth library Android 在请求令牌时抛出“找不到文件异常”

我正在使用 AppAuth 库进行 Oauth2 身份验证。 https://github.com/openid/AppAuth-Android

我正在使用谷歌的应用程序身份验证示例。 https://codelabs.developers.google.com/codelabs/appauth-android-codelab/#0

我根据我的 oauth 提供者修改了网址。我指定了一个有效的授权端点、客户端 ID、重定向 uri、令牌 uri、范围(openid、配置文件、电子邮件)、响应类型(代码)。我不知道是否有办法添加消费者秘密。我在示例代码中的任何地方都没有看到添加消费者机密的方法。当我运行应用程序时,我看到我们的 sso 页面,我能够登录,重定向发生。当获取令牌的请求被执行时,我得到一个异常。令牌请求失败。知道为什么会发生这种情况吗?令牌交换 url 是正确的,我不确定它为什么抱怨在该特定令牌 url 找不到文件。关于深入研究这个问题的任何指示?

0 投票
3 回答
4974 浏览

ios - SFAuthenticationSession 如何在 Safari 中存储会话相关的 cookie

tl;博士阅读最后一段。

我正在使用 AppAuth ( https://github.com/openid/AppAuth-iOS ) 库来处理基于 OpenID 的用户身份验证,我想通过我的应用程序为其提供 SSO 体验。我的应用程序的部署目标是 iOS 11,这意味着 AppAuth 内部使用SFAuthenticationSession. 我正在使用授权流程,这意味着通过SFAuthenticationSession. 当用户填写并提交凭证SFAuthenticationSession时,使用 url 调用完成(如果成功),code可以从中解析授权。通过授权code,令牌 POST 请求通过URLSession独立发出SFAuthenticationSession并被access_token检索。

整个流程是成功的,包括检索access_token,但是当我离开应用程序并在 Safari 中打开服务提供商提供的用户个人资料网页时,用户没有登录。我用谷歌帐户测试了相同的流程(https:// accounts.google.com)和 SSO 工作正常,例如,当我在 Safari 中打开https://mail.google.com时,我已登录。所以我怀疑我的服务提供商做错了什么。也许他们没有为我提供正确的范围?但在联系他们之前,我想排除我的任何过错。现在我最直接的想法是会话相关的 cookie 不会以某种方式存储在 Safari 中。我的问题由此而来。

我的问题。令牌 POST 请求是独立于SFAuthenticationSession(不同的用户代理)发出的,那么如果不通过,任何与会话相关的 cookie 如何存储在设备(Safari)上SFAuthenticationSession?有没有办法在代码中调试 cookie 存储?

0 投票
1 回答
420 浏览

xamarin - 如何在 Android 中为 AppAuth 库实现意图?

我正在使用 IdentityServer4 实现 Xamarin AppAuth 库。在自定义选项卡中授权后,我无法实现重定向回应用程序。授权请求如下图:

这是 AndroidManifest.xml 中的配置:

在我处理请求和用户登录后,重定向 url 应用在自定义选项卡中,屏幕保持不变,没有重定向回本机应用程序。

您能否给我一些线索以使重定向回本机应用程序正常工作?

提前致谢。

更新

GitHub 存储库:https ://github.com/OldrichTodt/AppAuthExample/blob/master/README.md

登录代码是从 MainPage.xaml.cs 中的 Xamarin 应用程序调用的完整代码:

0 投票
1 回答
393 浏览

javascript - Apple 的 javascript MusicKit API 在电子应用程序中授权

我想制作一个使用Apple 的 MusicKitjs API的电子应用程序。但是,授权功能会打开另一个窗口。这会导致电子出现问题,因为每个窗口都是沙盒。身份验证似乎不是 OAuth,它排除了AppAuth-JS 之类的工具。

关于如何在电子中实现非 OAuth API 身份验证的任何想法?

0 投票
2 回答
3894 浏览

android - Azure AD B2C 登录 - “包含阻止加载的脚本错误”

我遵循了将 Azure AD B2C 集成到 Android 应用程序中的这个示例应用程序,并替换了我的 Azure AD B2C 租户的配置参数,但是我收到错误“包含阻止加载它的脚本错误”

这是它生成的 URL,是错误的还是什么?我是新手,所以我不太了解:(

login.microsoftonline.com/signintest.onmicrosoft.com/oauth2/v2.0/authorize?p=b2c_1_signin&redirect_uri=ran%3dom%lett%3ers%idk%why&client_id=clientid&response_type=code&state=_JhayuFI4QGD1bjElOHnvg&scope=openid&code_challenge=uiXfg8c9XEFiHFRvjjVSAbCiRNJf5CeXDFXXN0qlj_U&code_challenge_method=S226

我遇到了类似的 Stackoverflow 问题,但我不知道他所说的“应使用 Azure 门户的 Azure AD B2C 刀片创建 Azure AD B2C 应用程序”是什么意思

我试图找出我自己的意思,但我没有找到任何东西。这是什么意思?

0 投票
1 回答
246 浏览

android - 用于与除 AppAuth 之外的 OAuth 2.0 通信的 Android 客户端 SDK

我在我的应用程序中使用 Android-AppAuth 进行 AD B2C 登录,与 iOS-AppAuth 不同的是,在 Android-AppAuth 中发出授权请求时不包含 nonce 值。

我想问一下是否有像 Appauth 这样的 Android SDK,但授权请求中包含 nonce 值。

如果没有,是否可以手动将 nonce 值发送到 AppAuth 授权请求?