<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iOS &#8211; privacyID3A</title>
	<atom:link href="https://www.privacyidea.org/tag/ios/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.privacyidea.org</link>
	<description>flexible, Open Source Multi Factor Authentication (2FA)</description>
	<lastBuildDate>Mon, 07 Dec 2020 08:18:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.privacyidea.org/wp-content/uploads/2016/06/cropped-only-logo-white-background-32x32.png</url>
	<title>iOS &#8211; privacyID3A</title>
	<link>https://www.privacyidea.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>privacyIDEA Authenticator iOS Testdrive</title>
		<link>https://www.privacyidea.org/privacyidea-authenticator-ios-testdrive/</link>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Mon, 16 Nov 2020 15:51:09 +0000</pubDate>
				<category><![CDATA[privacyIDEA Authenticator]]></category>
		<category><![CDATA[Whatsup]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Push Token]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=2214</guid>

					<description><![CDATA[We are about to release a new version of the privacyIDEA Authenticator. We moved to a new framework &#8220;Flutter&#8221;. It is supposed to ease the life of the developers and create more stability between the Android and the iOS app. The new version is supposed to provide better PUSH token functionality. It will also provide [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="292" src="https://www.privacyidea.org/wp-content/uploads/2020/11/push-poll-1024x292.png" alt="" class="wp-image-2215" srcset="https://www.privacyidea.org/wp-content/uploads/2020/11/push-poll-1024x292.png 1024w, https://www.privacyidea.org/wp-content/uploads/2020/11/push-poll-300x86.png 300w, https://www.privacyidea.org/wp-content/uploads/2020/11/push-poll-768x219.png 768w, https://www.privacyidea.org/wp-content/uploads/2020/11/push-poll.png 1069w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Polling for push notification makes authentication more robust.</figcaption></figure>



<p>We are about to release a new version of the privacyIDEA Authenticator. We moved to a new framework &#8220;Flutter&#8221;. It is supposed to ease the life of the developers and create more stability between the Android and the iOS app.</p>



<p>The new version is supposed to provide better PUSH token functionality. It will also provide the possibility to &#8220;poll&#8221; the PUSH notification &#8211; sounds strange, right? It can be. But this is necessary if for some reason the concatenated push services of Google and Apple <a rel="noreferrer noopener" href="https://community.privacyidea.org/t/setup-secure-authentication-with-ios-privacyidea-push-token/1310" target="_blank">do not work out as expected</a>. Then the smartphone will poll the privacyIDEA to check, if there is a challenge available.</p>



<p>privacyIDEA 3.4 is required in the backend for PUSH-poll to work.</p>



<p>A beta version of the new privacyIDEA Authenticator is available <strong>now</strong> via <s>Testdrive</s> Testflight. If you want to <a rel="noreferrer noopener" href="https://testflight.apple.com/join/hcpxWPt0" target="_blank">participate, register here</a>.</p>



<p>We are looking forward to your feedback.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Setup secure authentication with iOS privacyIDEA Push Token</title>
		<link>https://www.privacyidea.org/setup-secure-authentication-with-ios-privacyidea-push-token/</link>
					<comments>https://www.privacyidea.org/setup-secure-authentication-with-ios-privacyidea-push-token/#comments</comments>
		
		<dc:creator><![CDATA[Cornelius Kölbel]]></dc:creator>
		<pubDate>Wed, 12 Feb 2020 12:00:39 +0000</pubDate>
				<category><![CDATA[documentation]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Push Token]]></category>
		<guid isPermaLink="false">https://www.privacyidea.org/?p=1707</guid>

					<description><![CDATA[Use iPhone for 2FA with Push Notification against privacyIDEA.]]></description>
										<content:encoded><![CDATA[
<p>In a previous post we explained <a href="https://www.privacyidea.org/testing-privacyidea-push-token/">how you can setup Push authentication with privacyIDEA</a>. This gives you the basic configuration in privacyIDEA, sets up your Firebase project and works well with Android based smartphones.</p>



<p>However with iOS devices things are a bit more complicated and <em>additional</em> steps have to be taken. These <em>additional</em> steps are described in this blog post.</p>



<h2 class="wp-block-heading">Apple push apps &#8211; different than Android</h2>



<p>The Firebase service can not directly push to apple devices. Instead, the Firebase service pushes to the Apple Notification Service. While Android allows an app to be connected to different Firebase projects, an iOS app with it&#8217;s app identifier can only be connected to one Apple Push project. </p>



<p>What does this mean?</p>



<p>For the Android devices you created a Firebase project. Your <em>own</em> Firebase project. You configure the data in the privacyIDEA server and the information about the Firebase project is passed to the privacyIDEA Authenticator<strong><em> for Android </em></strong>during the rollout process. This means that a privacyIDEA installation running with organization A connects the push tokens to their own Firebase project and organization B will connect their push tokens to a totally different own Firebase project.</p>



<p>Unfortunately this is not possible with the Apple Notification Service. NetKnights, the company behind privacyIDEA, created one Apple Notification Service project. The secret push key of this project is connected to the app identifier &#8220;privacyidea.authenticator&#8221; of the  privacyIDEA Authenticator App for iOS. The privacyIDEA installation in organization A sends the push notification for an iOS device to the organization&#8217;s own Firebase project, but then the Firebase project will forward the notification to the general Apple Notification Service project. This second step will be the same for all Push notifications to iOS devices connected to any privacyIDEA installation on this planet. This <strong><em>probably </em></strong>arises from Apples cloud-centric idea, that <strong><em>probably </em></strong>an app will only receive notifications from <em> one central cloud</em> service.</p>



<p>However, during enrollment of the iOS privacyIDEA Authenticator the app sends a random device identifier to your privacyIDEA server. Your privacyIDEA installation then uses this random identifier to send the push notification to this very device. It seems unlikely for another privacyIDEA installation to guess the device identifier of a foreign Apple device. If an attacker was able to guess a random device identifier the attacker could send arbitrary notifications to the iOS device. But in addition the iOS privacyIDEA Authenticator is also registered to your <em>own</em> Firebase project. This means, that the attacker indeed could send an arbitrary notification but such notification would not be processed by the privacyIDEA Authenticator.</p>



<p>If you do not like this (which we would understand) you need to recompile the privacyIDEA Authenticator for iOS with your own <strong><em>Apple Notification Service project</em></strong>, with your own Apple developer account, your own certificate and push notification key and with your own app identifier. Just like all other privacyIDEA code, the <a href="https://github.com/privacyidea/privacyidea-authenticator-ios">privacyidea-authenticator-ios</a> is available on github.</p>



<p>NetKnights hopes to be able to provide customization services one day to create customer specific apps as part of a privacyIDEA Authenticator Enterprise Edition, to circumvent this problem.</p>



<p>After this lengthy disclaimer lets now connect Firebase with the Apple Notification Service especially with the privacyIDEA Authenticator.</p>



<p><strong>Note</strong>: This howto discloses the secret project key, which is needed so that Firebase can send messages to the Apple Notification Service. This means, that an attacker could &#8211; after successfully guessing a device identifier &#8211; potentially <em>spam</em> messages to devices connected to the privacyIDEA Apple Notification Service. However, the impact on login security is none, since all messages are digitally signed in both directions. Again: This downside is due to the cloud-centric design or the Apple Notification Service and can only be avoided by compiling your own Authenticator app and publishing it to the Apple app store.</p>



<p>But let&#8217;s do the iOS device, now!</p>



<h2 class="wp-block-heading">Add new Firebase App</h2>



<p>In the <a href="https://console.firebase.google.com/" target="_blank" rel="noreferrer noopener" aria-label="Firebase console (opens in a new tab)">Firebase console</a>, you need to create a new App in your Firebase project. Do so so click the button &#8220;+ Add app&#8221;.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="476" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-01-add-app-1024x476.png" alt="" class="wp-image-1715" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-01-add-app-1024x476.png 1024w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-01-add-app-300x140.png 300w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-01-add-app-768x357.png 768w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-01-add-app.png 1034w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>The new app you want to create, is an iOS app. So click the round button &#8220;iOS&#8221;.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1005" height="410" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-02-add-ios-app.png" alt="" class="wp-image-1716" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-02-add-ios-app.png 1005w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-02-add-ios-app-300x122.png 300w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-02-add-ios-app-768x313.png 768w" sizes="(max-width: 1005px) 100vw, 1005px" /></figure></div>



<p>In the app registration dialog you need to create an iOS bundle ID. Creating a nickname is optional. For the <a href="https://developer.apple.com/documentation/appstoreconnectapi/bundle_ids">bundle ID</a> you need to enter &#8220;privacyidea.authenticator&#8221;. Choose a nickname to your likings.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="558" height="549" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-03-register-app.png" alt="" class="wp-image-1717" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-03-register-app.png 558w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-03-register-app-300x295.png 300w" sizes="auto, (max-width: 558px) 100vw, 558px" /></figure></div>



<p>In the second step of the app registration you need to download the plist file. Save it for later, you need to enter the settings from within this file in your privacyIDEA policy.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="743" height="661" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-04-download-for-later.png" alt="" class="wp-image-1718" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-04-download-for-later.png 743w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-04-download-for-later-300x267.png 300w" sizes="auto, (max-width: 743px) 100vw, 743px" /></figure></div>



<p>In the third step you do not need to take any actions. You do not bother with the SDK, since the privacyIDEA Authenticator iOS app already exists!</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="732" height="787" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-05-no-need-to-take-any-achtion-here.png" alt="" class="wp-image-1719" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-05-no-need-to-take-any-achtion-here.png 732w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-05-no-need-to-take-any-achtion-here-279x300.png 279w" sizes="auto, (max-width: 732px) 100vw, 732px" /></figure></div>



<p>Also in the next step you do not need to take any action. Simply press &#8220;Next&#8221;.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="757" height="899" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-06-no-need-to-take-any-action-here.png" alt="" class="wp-image-1720" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-06-no-need-to-take-any-action-here.png 757w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-06-no-need-to-take-any-action-here-253x300.png 253w" sizes="auto, (max-width: 757px) 100vw, 757px" /></figure></div>



<p>Now you are done registering your iOS app and you can &#8220;Continue to console&#8221;.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="743" height="651" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-07-return-to-console.png" alt="" class="wp-image-1722" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-07-return-to-console.png 743w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-07-return-to-console-300x263.png 300w" sizes="auto, (max-width: 743px) 100vw, 743px" /></figure></div>



<h2 class="wp-block-heading">Adding the secret iOS Authentication key</h2>



<p>After you have told the Firebase service, that also iOS devices are going to connect to it, you now need to tell Firebase, how it can talk to the Apple Notification Service. For this you need the secret key we talked about at the <a rel="noopener noreferrer" href="#note" target="_blank">beginning</a> of this article. If you do not want to compile your own app and publish it in the app store, you unfortunately have to share the &#8220;secret&#8221; key with all other default installations of privacyIDEA. Download the <a rel="noreferrer noopener" href="https://privacyidea.org/wp-content/uploads/2020/02/AuthKey_2FZRBAT74S.p8" target="_blank">secret key file</a> to your computer and save it for later. </p>



<p>Still in the Firebase console, first go to the &#8220;Project settings&#8221; in the upper left corner</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="495" height="238" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-08-project-settings.png" alt="" class="wp-image-1723" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-08-project-settings.png 495w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-08-project-settings-300x144.png 300w" sizes="auto, (max-width: 495px) 100vw, 495px" /></figure></div>



<p>In the &#8220;Settings&#8221; go to the tab &#8220;Cloud Messaging&#8221;.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="495" height="270" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-cloud-messaging.png" alt="" class="wp-image-1724" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-cloud-messaging.png 495w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-cloud-messaging-300x164.png 300w" sizes="auto, (max-width: 495px) 100vw, 495px" /></figure></div>



<p>In &#8220;Cloud Messaging&#8221; you will find the &#8220;iOS app configuration&#8221;. There you can hit &#8220;Upload&#8221; to upload the secret key file. </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="999" height="409" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-upload-auth-key.png" alt="" class="wp-image-1725" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-upload-auth-key.png 999w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-upload-auth-key-300x123.png 300w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-09-upload-auth-key-768x314.png 768w" sizes="auto, (max-width: 999px) 100vw, 999px" /></figure></div>



<p>Now select the secret key file (AuthKey_2FZRBAT74S.p8) to upload it to the Firebase console.</p>



<p>Enter the Key ID (2FZRBAT74S) and Team ID (627QALYL3B) exactly as stated in the image below.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="669" height="551" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-10-select-key-file.png" alt="" class="wp-image-1726" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-10-select-key-file.png 669w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-10-select-key-file-300x247.png 300w" sizes="auto, (max-width: 669px) 100vw, 669px" /></figure></div>



<p>After hitting the &#8220;Upload&#8221; button you should be fine and your Firebase Push Service is connected to the Apple Notification Service for the privacyIDEA Authenticator iOS App.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="985" height="379" src="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-11-auth-key-successfully-uploaded.png" alt="" class="wp-image-1728" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-11-auth-key-successfully-uploaded.png 985w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-11-auth-key-successfully-uploaded-300x115.png 300w, https://www.privacyidea.org/wp-content/uploads/2020/02/ios-push-11-auth-key-successfully-uploaded-768x296.png 768w" sizes="auto, (max-width: 985px) 100vw, 985px" /></figure></div>



<h2 class="wp-block-heading">Configure iOS Authenticator in privacyIDEA</h2>



<p>Now open the plist file you saved earlier. Find the entries API_KEY and GOOGLE_APP_ID. It will look like this:</p>



<pre class="wp-block-code"><code>&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
&lt;plist version="1.0">
&lt;dict>
        ...
	&lt;key>API_KEY&lt;/key>
	&lt;string>example-key_value&lt;/string>
        ...
    	&lt;key>GOOGLE_APP_ID&lt;/key>
	&lt;string>1:example:ios:appid&lt;/string>
&lt;/dict>
&lt;/plist></code></pre>



<p>You need to enter the value &#8220;example-key_value&#8221; in <em>apikeyios</em> and the value &#8220;1:example:ios:appid&#8221; in <em>appidios</em>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="693" src="https://www.privacyidea.org/wp-content/uploads/2020/02/iOS-push-12-configure-privacyidea-1024x693.png" alt="" class="wp-image-1749" srcset="https://www.privacyidea.org/wp-content/uploads/2020/02/iOS-push-12-configure-privacyidea-1024x693.png 1024w, https://www.privacyidea.org/wp-content/uploads/2020/02/iOS-push-12-configure-privacyidea-300x203.png 300w, https://www.privacyidea.org/wp-content/uploads/2020/02/iOS-push-12-configure-privacyidea-768x520.png 768w, https://www.privacyidea.org/wp-content/uploads/2020/02/iOS-push-12-configure-privacyidea.png 1191w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Now you are ready to register iOS devices with your privacyIDEA Push setup and use your iPhones to authenticate via Push notification.</p>



<p>If you want to stay tuned for the enterprise edition, please consider <a href="https://netknights.it/en/unternehmen/kontakt/" target="_blank" rel="noreferrer noopener" aria-label="contacting the company NetKnights (opens in a new tab)">contacting the company NetKnights</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.privacyidea.org/setup-secure-authentication-with-ios-privacyidea-push-token/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
