如何在IOS上使用ADFS实现SSO功能

4
我希望在 IOS 上使用 ADFS 实现单点登录功能。我进行了一些研究,并尝试使用 MSAL iOS 库进行 ADFS 认证,但是它对我没有用。
我已经添加了客户端 ID、ADFS 认证的 Authority URL,但是它对我没有用。每次都会给我“无法获取令牌”的错误。
我有不同的 SSO URL,因此不使用 Microsoft Azure 服务器。
我已经尝试以下方式为 MSAL IOS 库添加我的凭证:
let kClientID = "xxxxxx-8929-4D60-B869-xxxxxxxx"

// These settings you don't need to edit unless you wish to attempt deeper scenarios with the app.
let kGraphURI = "https://graph.microsoft.com/v1.0/me/"
let kScopes: [String] = ["https://graph.microsoft.com/user.read"]
let kAuthority = "https://fs.example.com/adfs/oauth2"

有什么想法吗?

请问您能否分享一下您所遵循的代码/链接,以实现此功能?因为参考链接已失效。我还需要在IOS上使用ADFS实现SSO功能。 - Nikita Patil
1个回答

3
这里我们不需要使用MSAL iOS,有一个简单的解决方案可以使用Microsoft文档。请按照以下链接:https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/overview/ad-fs-scenarios-for-developers。我们只需要形成一个url字符串,如下所示:https://fs.xxx.com/adfs/oauth2/authorize?response_type=code&client_id=xxxx-xxxx-xxxx-xxxx-xxxxxxx&redirect_uri=appName://&resource=http://xxxx/workflow。这将生成一个代码,我们可以在App Delegate的openUrl方法中获取它,然后我们需要使用以下参数创建一个post请求:
grant_type:authorization_code
code: xxxxx ( we got from get request)
redirect_uri: appName://
resource:http://xxxx/workflow

就是这样。我们将获得访问令牌,以便进一步使用它来获取用户个人资料等。

希望这可以帮到您!


@Preetika,微软文档链接建议使用ADAL库来实现此功能。如果我们创建类似的URL,那么登录页面UI怎么办? - subin272
在这里,我们正在使用ADFS进行登录。我们假设只有单点登录才能使用ADFS进行登录。应用程序的其他登录将像普通登录一样。 - Preetika
@Preetika我也希望能达到同样的情况,即通过ADFS进行身份验证登录。我的问题是,上面通过"客户端ID"、"重定向URI"和"资源"形成的"url字符串"是否会将用户带到移动应用程序内的新网页? - subin272
@OliverHanappi 所以我们只需要调用这两个URL,而不使用ADAL库吗?有没有参考的示例应用程序。 - subin272
@subin272:是的,我们将被重定向到此处提到的redirectURI,在那里我们需要填写我们的信息,之后它将被重定向回应用程序。 - Preetika
你好,你提供的链接无法访问。请问能否再更新一下?链接为:https://learn.microsoft.com/en-us/windows-server/identity/ad-fs/overview/ad-fs-scenarios-for-developers - 无法访问。 - Nikita Patil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接