gpt4 book ai didi

ios - 如何使用 AppAuth 从 iOS 应用程序向 Azure AD 进行身份验证?

转载 作者:行者123 更新时间:2023-12-04 15:50:46 33 4
gpt4 key购买 nike

我有这个使用谷歌作为 ID 提供者的例子:

https://github.com/jchnxu/TestOIDAppAuth-iOS

该示例在 Swift 中使用来自 iOS 的 AppAuth 库和 Open Id Connect。我没有使用 ADAL,因为它似乎不支持 Swift 3。

My iOS app bundle is:

webinnovation.no.Test

我在 ViewController.swift 中配置了以下常量:
let kIssuer = "https://accounts.google.com"
let kClientID = "<my id from Google>.apps.googleusercontent.com"
let kRedirectURI = "com.googleusercontent.apps. <my id from Google>:oauthredirect"

In plist.info: “com.googleusercontent.apps. <my id from Google>”

这与 Google ID 提供者的预期一样。我得到一个登录对话框,登录后它被正确关闭,并且应用程序正确获得了一个 token 。

但是,如何将其映射到 Azure AD?

我试过这样的组合:
let kIssuer = "https://login.microsoftonline.com/webinnovation.onmicrosoft.com"
let kClientID = "<my Application ID from Azure AD>"
let kRedirectURI = "no.webinnovation.Test://oauth/redirect"

In info.plist: "no.webinnovation.Test"

这种工作。我的 iOS 设备上显示 Azure AD 身份验证对话框,但在输入我的凭据后,该对话框没有正确关闭,并且应用程序没有返回任何 token 。流动的那种停止。如果我单击“完成”,Azure AD 对话框会消失,但 AppAuth 调用会返回错误并且用户未通过身份验证。

我怀疑有一些与重定向 URI 相关的问题,但我还没有找到正确的方法。

最佳答案

因此,即使这个问题是很久以前提出的,我也只是遇到了同样的问题并设法解决了它,所以我想记录一下如何解决。
该问题是由于 Azure AD 在重定向 URI 的末尾附加一个/(如果它尚未以/结尾)造成的。所以在这种情况下,重定向 URI 是 no.webinnovation.Test://oauth/redirect和 Azure AD 将回答类似 no.webinnovation.Test://oauth/redirect/?code=... .
AppAuth 验证重定向 URI 并确定它不一样,因为末尾附加了/。在这种情况下,它只是简单地中止登录流程并且不会调用完成 block 并出现错误,这是我所预料的。
所以解决方案是简单地添加/自己,即在这个例子中使用 no.webinnovation.Test://oauth/redirect/作为重定向 URI。

关于ios - 如何使用 AppAuth 从 iOS 应用程序向 Azure AD 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43923130/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com