Ihre iOS-Anwendung kann ein digitales Zertifikat für den Zugriff auf Ressourcen in ArcGIS for Server verwenden, die mit Public Key-Infrastruktur (PKI) gesichert sind. In solch einem Szenario wird für jeden Benutzer, der autorisiert ist, auf die gesicherten Ressourcen zuzugreifen, ein digitales Zertifikat (auch als Client-Zertifikat bezeichnet) bereitgestellt, anhand dessen die Identität des Benutzers beim Herstellen einer Verbindung mit dem Server bestätigt werden kann. Diese Zertifikatdatei liegt im pkcs#12-Format vor und weist in der Regel die Erweiterung .p12 oder .pfx auf.
Um das Zertifikat auf dem iOS-Gerät eines Benutzers zu installieren, damit es von der App verwendet werden kann, machen Sie das Zertifikat lediglich auf dem Gerät des Benutzers verfügbar und importieren das Zertifikat programmgesteuert in die Schlüsselbund-Gruppe Ihrer App.
Hinzufügen von PKI beim Erstellen der App
Das Em4Mstr-Framework stellt eine API zum Importieren des digitalen Zertifikats in die App bereit. Um das Zertifikat programmgesteuert in die Schlüsselbund-Gruppe Ihrer Karte zu importieren, müssen Sie Änderungen in Xcode vornehmen.
- Wählen Sie die Projektdatei in Xcode Project Navigator aus.
- Wählen Sie im rechten Fenster das Ziel MicroStrategyMobileIPad aus.
- Klicken Sie mit der rechten Maustaste auf Info_IPad.plist.
- Klicken Sie auf Open As und auf Source Code.
- Führen Sie im rechten Fenster den Bildlauf bis zum Ende der Datei durch.
- Fügen Sie den folgenden XML-Code (vom ersten <key>-Tag zum letzten </array>-Tag) kurz vor dem schließenden </dict>-Tag am Ende der Datei hinzu. Das Ende der Datei sollte folgendermaßen angezeigt werden.
Hinweis:
Diese Änderungen registrieren Ihre App, um eine benutzerdefinierte .px12-Dateierweiterung zu verarbeiten. Wenn Sie eine andere benutzerdefinierte Dateierweiterung verwendet haben, ersetzen Sie px12 durch Ihre Dateierweiterung im XML-Code. Wie unter Bereitstellen des Zertifikats auf dem Gerät des Benutzers erläutert, können Sie weder eine .p12- noch eine .pfx-Erweiterung verwenden.
<key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeIconFiles</key> <array/> <key>CFBundleTypeName</key> <string>Certificate file</string> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSHandlerRank</key> <string>Owner</string> <key>LSItemContentTypes</key> <array> <string>com.esri.px12</string> </array> </dict> </array> <key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.data</string> </array> <key>UTTypeIdentifier</key> <string>com.esri.px12</string> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <array> <string>px12</string> </array> </dict> </dict> </array>
- Wählen Sie die richtige "Custom Class" im "Identity Inspector" wie folgt aus:
- Klicken Sie in Xcode Project Navigator auf MainWindow-iPad.xib.
- Klicken Sie im rechten Fenster unter Objects auf MSTRMobile App Delegate.
- Klicken Sie im Fenster Utilities auf die Registerkarte Identity Inspector mit dem Titel Custom Class, und geben Sie Em4MstrAppDelegate für das Klassenfeld ein.
Hinweis:
- Stellen Sie sicher, dass die Ansicht "Identity Inspector" geöffnet ist. Wählen Sie aus dem Menü Xcode View > Utilities > Show Identity Inspector aus.
- Wenn Sie über eine eigene AppDelegate-Klasse verfügen, die von MSIAppDelegateImpl übernommen wird, ändern Sie Ihre AppDelegate-Klasse, damit sie von Em4MstrAppDelegate übernommen wird. Die Em4MstrAppDelegate-Klasse wird in der <Em4Mstr/Em4MstrAppDelegate.h>-Header-Datei deklariert und von der MSIAppDelegateImpl-Klasse übernommen.
- Fahren Sie mit der Erstellung und Bereitstellung Ihrer App fort. Weitere Informationen finden Sie unter Kompilieren der mobilen App.
Bereitstellen des Zertifikats auf dem Gerät des Benutzers
Der erste Schritt bei der Installation des Zertifikats besteht darin, es auf dem Gerät des Benutzers verfügbar zu machen. Bevor Sie das Zertifikat per E-Mail-Anlage an den Benutzer senden, müssen Sie dessen Dateierweiterung von .p12 oder .pfx ändern. Andernfalls versucht das iOS-System, das Zertifikat in den Standardschlüsselbund zu importieren, wenn der Benutzer versucht, die Anlage zu öffnen. Da benutzerdefinierte iOS-Apps keinen Zugriff auf den Standardschlüsselbund haben, muss eine benutzerdefinierte Dateierweiterung auf das Zertifikat angewendet werden.
- Stellen Sie sicher, dass E-Mail auf dem Gerät des Benutzers konfiguriert ist.
- Benennen Sie die Zertifikatdatei um, um eine benutzerdefinierte Dateierweiterung zu verwenden, z. B. .px12.
- Senden Sie das umbenannte Zertifikat per E-Mail-Anlage an den Benutzer.
- Weisen Sie den Benutzer an, die an die E-Mail angefügte Client-Zertifikatdatei auszuwählen und Ihr benutzerdefiniertes App-Symbol auszuwählen. Dadurch wird die App gestartet und die Zertifikatdatei an die App übergeben.
Die App verwendet dieses PKI-Zertifikat nun, um sich mit Ihrem PKI-Portal-Server zu authentifizieren.