Our app is based on wkwebview and now we want to support kerberos SSO. Is there a solution?
How to support kerberos SSO in app which is wkwebview based?
In general, requests issued by the web view should be considered as originating from your app, and thus Kerberos SSO should apply to them just like it’d apply to requests you issue via
NSURLSession
. Have you tried this already? If so, what did you see?
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"
Do you mean kerberos SSO is supported automatically by iOS without any code change in my app?
From this document(https://samuelyates.wordpress.com/2013/10/11/kerberos-single-sign-on-in-ios-7/), to config SSO, I need to create a configration profile includes the user principal name (that is, the Active Directory user account) and Kerberos realm settings, as well as configuring our app and/or Safari web URLs should be allowed to use SSO. And then install the config file into the device, after that, our app should support kerbers SSO, right?
Do you mean kerberos SSO is supported automatically by iOS without any code change in my app?
Yes.
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"
I created two kerberos sites in IIS and add them into below profile to verify kerberos sso. My finding is after I open site#1 in safari and sign in site by input username and password, when I open site#2 in safari, my expect is it should sign in automatically without pop up password dialog, but actually, let user input password dialog is shown again. Is my test method wrong? How can I verify kerberos SSO?
<!-- Customize any area that contains curly brackets {} -->
<!-- Random GUIDs can be generated here http://www.guidgenerator.com/ -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>SSO Settings</string>
<key>PayloadType</key>
<string>com.apple.sso</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>01278adf-9f52-4ec3-8ef5-ca8050bae986</string>
<key>PayloadIdentifier</key>
<string>com.company.sso</string>
<key>Name</key>
<string>company Domain</string>
<key>Kerberos</key>
<dict>
<key>Realm</key>
<string>COMPANY.COM</string>
<key>URLPrefixMatches</key>
<array>
<string>http://site1</string>
<string>http://site2/</string>
</array>
<key>AppIdentifierMatches</key>
<array>
<string>com.apple.mobilesafari</string>
</array>
</dict>
</dict>
</array>
<key>PayloadOrganization</key>
<string>company</string>
<key>PayloadDisplayName</key>
<string>Single Sign-On Profile</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>b1b13d65-06de-4550-bdb4-26763ca6d185</string>
<key>PayloadIdentifier</key>
<string>com.company.sso.profile</string>
<key>PayloadDescription</key>
<string>Enables Kerberos Authentication</string>
<key>PayloadType</key>
<string>Configuration</string>
</dict>
</plist>
I’m sorry but I can’t help you with Kerberos configuration issues. My experience with Kerberos is very limited, and it’s exclusively focused on the APIs involved. When dealing with high-level APIs —
WKWebView
,
NSURLSession
, and indeed
Safari
— there are no Kerberos-specific APIs you can call. If things are configured correctly, it should Just Work™, and if it doesn’t then either things are not configured correctly or you’ve hit a limitation of the system. Either way, this is something that you’ll have to talk to Apple Support about.
Share and Enjoy
—
Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"
how can I connect Apple support team?