iOS および macOS 用の Microsoft Authentication Library (MSAL) は、業界標準の OAuth2 と OpenID Connect を使用してアプリに認証をシームレスに統合するために使用できる認証 SDK です。 これにより、Microsoft ID を使用してユーザーまたはアプリにサインインできます。 これらの ID には、Microsoft Entra IDの職場および学校アカウント、個人用Microsoft アカウント、ソーシャル アカウント、顧客アカウントが含まれます。
iOS および macOS 用の MSAL を使用すると、Microsoft ID プラットフォームからセキュリティ トークンを取得して、ユーザーを認証し、アプリケーションのセキュリティで保護された Web API にアクセスできます。 このライブラリでは、シングル サインオン (SSO)、条件付きアクセス、ブローカー認証など、複数の認証シナリオがサポートされています。
MSAL でのネイティブ認証のサポート
MSAL iOS は、アプリケーションがモバイル アプリケーションでエンド ツー エンドのカスタマイズ可能なフローを使用してネイティブ エクスペリエンスを実装できるようにするネイティブ認証 API を提供します。 ネイティブ認証を使用すると、ユーザーは、アプリを離れることなく、豊富でネイティブなモバイルファーストのサインアップとサインインの過程を案内されます。 ネイティブ認証機能は、 顧客の外部 ID 上のモバイル アプリでのみ使用できます。 macOS はサポートされていません。 常に最も up-to-date バージョンの SDK を使用することをお勧めします。
iOS および macOS 用 MSAL の概念ドキュメントの概要
MSAL ドキュメントでは、一般的なパターン、エラー処理とデバッグのベスト プラクティス、追加のライブラリ機能 (ログ記録、テレメトリなど)、アクティブなバグや既知の軽減策に関する一般的な問題について説明します。 Microsoft Entra ID、Microsoft アカウントの使用に関するその他のヘルプが必要な場合は、Microsoft ID プラットフォームドキュメントを参照してください。Microsoft Graph API の詳細については、Microsoft Graphドキュメントを参照してください。MSAL iOS と macOS を効果的に使用してアプリケーションを保護するには、次の概念を理解することが重要です。
- iOS 用 MSAL と macOS の違いについて説明します
- アプリをMicrosoft Entraに登録する
- iOS および macOS 用の MSAL をインストールし、ライブラリを 使用するようにプロジェクトを構成する
- 保護された API にアクセスするためのトークンを取得する
アプリケーションで MSAL iOS と macOS を使用するには、Microsoft Entra管理センターにアプリケーションを登録し、プロジェクトを構成する必要があります。 SDK では、ブラウザーによる委任された認証エクスペリエンスとネイティブ認証エクスペリエンスの両方がサポートされているため、シナリオに基づいて、次のいずれかのクイックスタートの手順に従います。
ブラウザーで委任された認証シナリオについては、「クイック スタート」の「ユーザーをサインインさせ、iOS または macOS アプリからMicrosoft Graphを呼び出す」を参照してください。
iOS アプリでのネイティブ認証シナリオについては、Microsoft Entra 外部 IDサンプル ガイドの「iOS サンプル アプリの実行」を参照してください。
サポートされているバージョン
iOS - MSAL は iOS 14 以降をサポートしています。
macOS - MSAL では、macOS (OSX) 10.13 以降がサポートされています。
iOS 用 Microsoft Authentication Libraryと macOS の主な違い
このセクションでは、iOS と macOS のMicrosoft Authentication Library (MSAL) の機能の違いについて説明します。
Note
Mac では、MSAL は macOS アプリのみをサポートします。
全般的な相違点
macOS 用 MSAL は、iOS で使用できる機能のサブセットです。
macOS 用の MSAL では、次の機能はサポートされていません。
-
ASWebAuthenticationSession、SFAuthenticationSession、SFSafariViewControllerなど、さまざまなブラウザーの種類。 - Microsoft Authenticator アプリを使用したブローカー認証は、macOS ではサポートされていません。
同じ発行元のアプリ間でのキーチェーン共有は、macOS 10.14 以前では制限されています。 アクセス制御リストを使用して、キーチェーンを共有するアプリへのパスを指定します。 ユーザーに追加のキーチェーン プロンプトが表示される場合があります。
macOS 10.15 以降では、MSAL の動作は iOS と macOS で同じです。 MSAL では 、キーチェーン共有にキーチェーン アクセス グループ が使用されます。
条件付きアクセス認証
条件付きアクセスのシナリオでは、iOS 用の MSAL を使用する場合のユーザー プロンプトが少なくなります。 これは、iOS がブローカー アプリ (Microsoft Authenticator) を使用しているためです。これにより、場合によってはユーザーにプロンプトを表示する必要がなくなります。
プロジェクトの設定
macOS
- macOS でプロジェクトを設定するときは、アプリケーションが有効な開発証明書または運用証明書で署名されていることを確認します。 MSAL は未署名モードでも動作しますが、キャッシュの永続化に関しては動作が異なります。 アプリは、デバッグ目的でのみ署名なしで実行する必要があります。 署名されていないアプリを配布すると、次のようになります。
- 10.14 以前では、MSAL はアプリを再起動するたびにキーチェーン パスワードの入力をユーザーに求めます。
- 10.15 以降では、MSAL はユーザーにトークン取得ごとに資格情報の入力を求めます。
- macOS アプリでは、AppDelegate 呼び出しを実装する必要はありません。
iOS
- 認証ブローカー フローをサポートするようにプロジェクトを設定する追加の手順があります。 手順については、このチュートリアルで説明します。
- iOS プロジェクトでは、info.plist にカスタム スキームを登録する必要があります。 これは macOS では必要ありません。
Azure Active Directory認証ライブラリ (ADAL) からの移行
Objective-C 用の Azure Active Directory 認証ライブラリ (ADAL) は、2023 年 6 月 30 日から非推奨となりました。 ユーザーまたは組織が Azure Active Directory 認証ライブラリ (ADAL) を使用している場合は、アプリのセキュリティを危険にさらさないように MSAL に移行する必要があります。
Samples
SDK に関するヘルプを表示する
MSAL SDK に関する質問がある場合、ドキュメントでエラーが見つかった場合、または推奨事項が必要な場合は、詳細を含む Github の問題 を作成してください。