【问题标题】:How to implement SSO functionality on IOS using ADFS如何使用 ADFS 在 IOS 上实现 SSO 功能
【发布时间】:2019-01-01 06:13:10
【问题描述】:

我想使用ADFSIOS 上实现single sign-on 功能。 我做了一些研发并尝试了 MSAL iOS 库进行 ADFS 身份验证,但它对我不起作用。

我添加了客户端 ID、ADFS 身份验证的授权 URL,但它不适用于我。每次都给我Couldn't acquire token 错误。

我有不同的SSO URL,所以不要使用Microsoft azure server

我已尝试通过以下方式为 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 swift adfs msal


    【解决方案1】:

    这里我们不需要使用 MSAL iOS。有一个使用 Microsoft docs 的简单解决方案。按照链接:

    https://docs.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 方法中获取该代码,然后我们需要使用参数创建一个发布请求:

    grant_type:authorization_code
    code: xxxxx ( we got from get request)
    redirect_uri: appName://
    resource:http://xxxx/workflow
    

    就是这样。我们将获得 access_token,我们可以进一步使用它来获取 userProfile 等。

    希望这会有所帮助!

    【讨论】:

    • @Preetika Microsoft 文档链接建议为此使用 ADAL 库。如果我们创建一个类似的 URL,那么登录页面 UI 呢?
    • 这里我们正在使用 ADFS 登录。我们假设仅通过单点登录使用 ADFS 登录。该应用程序的其他登录方式与普通登录​​方式相同。
    • @Preetika 我也想要同样的场景,我们需要通过 ADFS 进行身份验证来登录。我的问题是上面形成的带有“client id”、“Redirect URI”和“resource”的“url string”是否会将用户带到移动应用程序中的新网页?
    • @OliverHanappi 所以我们只需要调用这两个 URL 而不使用 ADAL 库吗?是否有任何示例应用程序可供参考。
    • @subin272: 是的,我们将被重定向到这里提到的redirectURI,我们需要填写我们的信息,之后它将被重定向回应用程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2018-09-11
    相关资源
    最近更新 更多