Как реализовать функциональность единого входа в IOS с использованием ADFS - PullRequest
0 голосов
/ 01 января 2019

Я хочу реализовать функциональность single sign-on на IOS, используя ADFS.Я провел некоторые исследования и разработки и попробовал библиотеку MSAL iOS для аутентификации ADFS, но она не работает для меня.

Я добавил идентификатор клиента, URL авторизации для аутентификации ADFS, но он не работает для меня.Каждый раз, когда я получаю 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"

Есть идеи?

1 Ответ

0 голосов
/ 02 января 2019

Здесь нам не нужно использовать MSAL iOS.Существует простое решение с использованием документов Microsoft.По ссылке:

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

Это сгенерирует код, который мы сможем получить в методе openUrl в App Delegate, а затем нам нужно будет создать почтовый запрос с параметрами:

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

Вот и все.Мы получим маркер access_token, который мы можем использовать для получения userProfile и т. Д.

Надеюсь, это поможет!

...