プラットフォーム SSO (プレビュー) を使用して macOS 上のAzure Files Microsoft Entra Kerberos 認証を有効にする

適用対象: ✔️ SMB ファイル共有

この記事では、macOS Platform Single Sign-On (PSSO) (プレビュー) を使用して、macOS デバイス上のAzure Files Microsoft Entra Kerberos 認証を構成する方法について説明します。 この構成を使用すると、Microsoft Entra参加している macOS デバイスは、ユーザーに資格情報の入力を求めることなく、クラウドベースの Kerberos チケット許可チケット (TGT) を使用して SMB Azure ファイル共有にシームレスにアクセスできます。

macOS Platform SSO では、Mac デバイスを Microsoft Entra ID と統合し、ユーザーはハードウェア バインド キー、スマート カード、またはMicrosoft Entra ID パスワードを使用して、Microsoft Entra ID資格情報でサインインできます。 プラットフォーム SSO プライマリ更新トークン (PRT) に加えて、Microsoft Entra IDは、PSSO の TGT マッピングを介してネイティブ macOS Kerberos スタックと共有されるクラウド Kerberos TGT を発行します。 オンプレミスのKerberos TGTは、クライアントが(例えばIntuneを通じて)オンプレミスのドメインコントローラーをクエリするように設定されている場合にも取得できます。 この構成により、ユーザーに対話型資格情報の入力を求めることなく、シームレスなシングル サインオンをAzure Filesできます。

Azure Filesの Kerberos 認証Microsoft Entraの詳細については、「 SMB アクセスの Azure Files ID ベースの認証オプションの概要を参照してください。

Prerequisites

プラットフォーム SSO を使用して macOS Azure Filesアクセスを構成する前に、次の前提条件を満たす必要があります。

macOS デバイスの要件

  • 最新の更新プログラムがインストールされた macOS Tahoe 26.5 以降。
  • Microsoft Intune ポータル サイト バージョン 5.2408.0 以降がデバイスにインストールされています。
  • macOS デバイスは、モバイル デバイス管理 (MDM) ソリューションに登録されている必要があります。
  • macOS Platform SSO は既に構成され、デバイスに展開されている必要があります。 プラットフォームSSOの設定をまだしていなければ、一般的な情報についてはプラットフォームSSO ドキュメント や、手順を進める前に Intuneの導入ガイド をご覧ください。

Azure Filesの要件

  • Microsoft Entra Azure ストレージ アカウントで Kerberos 認証を有効にする必要があります。 この機能を有効にしていない場合は、 Azure Files のハイブリッド ID とクラウド専用 ID に対する Kerberos 認証Microsoft Entraを有効にする方法に関する記事の手順に従ってください。
  • Microsoft Entra Kerberos を有効にすることで登録されるサービス プリンシパルには、管理者の同意を付与する必要があります。 手順については、「 新しいサービス プリンシパルに管理者の同意を付与する」を参照してください。
  • ストレージアカウントを表すMicrosoft Entraアプリでは、マルチファクター認証(MFA)を無効にする必要があります。 手順については、「ストレージ アカウントで多要素認証を無効にする」を参照してください。

アクセス許可とツールの要件

この記事で説明するアプリ登録更新スクリプトを実行するには、次のものが必要です。

  • PowerShell 5.1 または PowerShell 7.x。
  • Microsoft。Graph.Applications PowerShell モジュール。 このモジュールがインストールされていない場合は、Install-Module Microsoft.Graph.Applications -Scope CurrentUser を実行します。
  • Application Administrator または Global Administrator のいずれかの Microsoft Entra ロール(Application.ReadWrite.All Microsoft Graph API アクセス許可を持つ)。

アプリ登録識別子 URI を更新する

この手順は、ストレージ アカウントに既存のファイル共有がある場合にのみ必要です。 新しく作成されたファイル共有には適用されません。 ストレージ アカウントに既存のファイル共有がない場合は、この手順をスキップできます。

macOS クライアントが Platform SSO で Microsoft Entra Kerberos を使用して既存の Azure ファイル共有にアクセスするには、CIFS 識別子 URI を小文字の cifs に更新する必要があります。そうしないと、ファイル共有のマウントは失敗します。

Microsoft Entra Kerberos 認証に対してストレージ アカウントを有効にすると、CIFS/<storageaccount>.file.core.windows.net プレフィックスを含む識別子 URI を持つMicrosoft Entra アプリケーションが自動的に登録されます。 macOS では、Kerberos を使用して SMB ファイル共有をマウントするときに、 cifs プレフィックスを 小文字 にする必要があります。 識別子 URI に大文字の CIFS プレフィックスが含まれている場合、macOS クライアントは共有を認証してマウントできません。

識別子 URI を更新するには、Azure Files サンプル リポジトリに用意されている PowerShell スクリプトを使用します。 このスクリプトは、アプリ登録の識別子 URI を CIFS/<storageaccount>.file.core.windows.net から cifs/<storageaccount>.file.core.windows.netに更新します。 CSV ファイルを使用した単一アプリと一括更新の両方をサポートし、すべての変更の監査ログを作成します。

Tip

最初に -WhatIf パラメーターを使用してスクリプトを実行し、変更を適用せずにプレビューします。

1 つのアプリ登録を更新する

<app-registration-id>をストレージ アカウントのアプリ登録 ID に置き換えます。 この ID を見つけるには、Microsoft Entra ID>アプリの登録>All applications に移動し、ストレージ アカウント名を検索します。

.\updateappmanifestazurefiles.ps1 -AppId "<app-registration-id>"

監査ログを生成するには、 -OutputFile パラメーターを指定します。

.\updateappmanifestazurefiles.ps1 -AppId "<app-registration-id>" -OutputFile "C:\audit\output.csv"

複数のアプリ登録を更新する

更新する各ストレージ アカウントのアプリ登録 ID を含む AppId 列ヘッダーを含む CSV ファイルを作成します。 例えば次が挙げられます。

AppId
12345678-1234-1234-1234-123456789012
87654321-4321-4321-4321-210987654321

次に、 -CsvFilePath パラメーターを使用してスクリプトを実行します。

$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$outputFile = "C:\audit\production_update_$timestamp.csv"
.\updateappmanifestazurefiles.ps1 -CsvFilePath "C:\apps.csv" -OutputFile $outputFile

Note

このスクリプトでは、アプリを 50 のバッチで処理します。アプリ間の遅延は 100 ミリ秒、バッチ間では 2 秒の遅延です。 最大 20,000 個のアプリで動作します。 大規模な実行の場合は、最初に小さなサブセットでテストし、大規模に実行する前に監査ログを確認します。

識別子URIの更新を確認してください

スクリプトを実行した後、識別子 URI が正常に更新されたことを確認します。

  1. Azure ポータルで、Microsoft Entra ID を開きます。
  2. Manage で、アプリの登録>すべてのアプリケーション を選択します。
  3. ストレージ アカウント名を検索し、一致するアプリケーションを選択します。
  4. [ 管理] で、[マニフェスト] を選択 します
  5. 識別子 URI に小文字で cifs/<storageaccount>.file.core.windows.net が表示されていることを確認します。

macOS で Kerberos SSO MDM プロファイルを構成する

macOS でAzure Filesに対して Kerberos SSO を有効にするには、macOS を Microsoft Entra ID Cloud Kerberos 領域にポイントする Kerberos SSO MDM プロファイルをデプロイします。 ユーザーがKerberos経由でオンプレミスの Active Directoryリソースにアクセスする必要がある場合は、オンプレミスのAD領域用に別のプロファイルを展開してください。

Note

Microsoft Entra ID Cloud Kerberos と オンプレミスの Active Directory 領域の両方を使用する場合は、Microsoft Entra ID Cloud Kerberos プロファイルの前にオンプレミスの Active Directory プロファイルをデプロイします。

Microsoft Entra ID Cloud Kerberos プロファイルを構成する

Microsoft Entra ID Cloud Kerberos MDM プロファイルを構成するには、次の設定を使用します。 すべてのプレースホルダー値を、テナントの正しい値に置き換えます。

設定キー 推奨値 Note
preferredKDCs kkdcp://login.microsoftonline.com/<tenantId>/kerberos <tenantId> を Microsoft Entra テナント ID に置き換えます。 この値は、Microsoft Entra 管理センター の Overview ページにあります。
PayloadOrganization あなたの組織名
Hosts .windows.net および windows.net
Realm KERBEROS.MICROSOFTONLINE.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>ExtensionData</key>
            <dict>
                <key>usePlatformSSOTGT</key>
                <true/>
                <key>performKerberosOnly</key>
                <true/>
                <key>preferredKDCs</key>
                <array>
                    <string>kkdcp://login.microsoftonline.com/<tenantId>/kerberos</string>
                </array>
            </dict>
            <key>ExtensionIdentifier</key>
            <string>com.apple.AppSSOKerberos.KerberosExtension</string>
            <key>Hosts</key>
            <array>
                <string>windows.net</string>
                <string>.windows.net</string>
            </array>
            <key>Realm</key>
            <string>KERBEROS.MICROSOFTONLINE.COM</string>
            <key>PayloadDisplayName</key>
            <string>Single Sign-On Extensions Payload for Microsoft Entra ID Cloud Kerberos</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.extensiblesso.00aa00aa-bb11-cc22-dd33-44ee44ee44ee</string>
            <key>PayloadType</key>
            <string>com.apple.extensiblesso</string>
            <key>PayloadUUID</key>
            <string>00aa00aa-bb11-cc22-dd33-44ee44ee44ee</string>
            <key>TeamIdentifier</key>
            <string>apple</string>
            <key>Type</key>
            <string>Credential</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string></string>
    <key>PayloadDisplayName</key>
    <string>Kerberos SSO Extension for macOS for Microsoft Entra ID Cloud Kerberos</string>
    <key>PayloadEnabled</key>
    <true/>
    <key>PayloadIdentifier</key>
    <string>11bb11bb-cc22-dd33-ee44-55ff55ff55ff</string>
    <key>PayloadOrganization</key>
    <string>Contoso</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>11bb11bb-cc22-dd33-ee44-55ff55ff55ff</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

環境の値を更新した後、 .mobileconfig ファイル拡張子 (たとえば、 cloud-kerberos.mobileconfig) のテキスト エディターを使用して、この構成を保存します。

Note

usePlatformSSOTGT キーを true に設定すると、Kerberos 拡張機能は同じ領域でプラットフォーム SSO から TGT を使用します。 performKerberosOnly キーを true に設定すると、拡張機能はパスワードの有効期限チェック、外部パスワード変更チェック、またはユーザーのホーム ディレクトリの取得を実行しません。 デプロイする Kerberos SSO プロファイルで両方のキーを構成します。

オンプレミスの Active Directory Kerberos プロファイルを構成する (省略可能)

ユーザーがオンプレミスの Active Directory リソースにアクセスするために Kerberos SSO も必要とする場合は、オンプレミス AD レルム用に別の MDM プロファイルを構成してください。 contoso.comContoso へのすべての参照を、実際の環境の正しい値に置き換えます。

設定キー 推奨値 Note
Hosts .contoso.com および contoso.com オンプレミスのドメインまたはフォレスト名に置き換えます。 ドメイン名の前に、前の . 文字をそのまま使用します。
Realm CONTOSO.COM オンプレミスの領域名に置き換えます。 すべて大文字にする必要があります。
PayloadOrganization あなたの組織名
<?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>ExtensionData</key>
            <dict>
                <key>allowPasswordChange</key>
                <true/>
                <key>allowPlatformSSOAuthFallback</key>
                <true/>
                <key>performKerberosOnly</key>
                <true/>
                <key>pwReqComplexity</key>
                <true/>
                <key>syncLocalPassword</key>
                <false/>
                <key>usePlatformSSOTGT</key>
                <true/>
            </dict>
            <key>ExtensionIdentifier</key>
            <string>com.apple.AppSSOKerberos.KerberosExtension</string>
            <key>Hosts</key>
            <array>
                <string>.contoso.com</string>
                <string>contoso.com</string>
            </array>
            <key>Realm</key>
            <string>CONTOSO.COM</string>
            <key>PayloadDisplayName</key>
            <string>Single Sign-On Extensions Payload for On-Premises</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.extensiblesso.1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5</string>
            <key>PayloadType</key>
            <string>com.apple.extensiblesso</string>
            <key>PayloadUUID</key>
            <string>1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5</string>
            <key>TeamIdentifier</key>
            <string>apple</string>
            <key>Type</key>
            <string>Credential</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string></string>
    <key>PayloadDisplayName</key>
    <string>Kerberos SSO Extension for macOS for On-Premises</string>
    <key>PayloadEnabled</key>
    <true/>
    <key>PayloadIdentifier</key>
    <string>2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6</string>
    <key>PayloadOrganization</key>
    <string>Contoso</string>
    <key>PayloadRemovalDisallowed</key>
    <true/>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>2bbbbbb2-3cc3-4dd4-5ee5-6ffffffffff6</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

環境の値を更新した後、 .mobileconfig ファイル拡張子 (たとえば、 on-prem-kerberos.mobileconfig) のテキスト エディターを使用して、この構成を保存します。

Microsoft Intuneを使用してプロファイルを展開する

INTUNE を MDM ソリューションとして使用する場合は、次の手順に従って各プロファイルを展開します。 デプロイする必要がある各 .mobileconfig ファイルの手順を繰り返します。

  1. Microsoft Intune 管理センターにサインインします。
  2. [デバイス]> -[構成]> -[作成]> -[新しいポリシー]を選択します。
  3. 次のプロパティを入力します:
    • プラットフォーム: macOS を選択します。
    • プロファイルの種類: [テンプレート] を選択します。
  4. カスタム テンプレートを選択し、[作成]を選択します。
  5. Basics で、ポリシーのわかりやすい名前 (macOS - Azure Files Cloud Kerberos SSO など) と、オプションの説明を入力します。 次へを選択します。
  6. カスタム構成プロファイル名ボックスに名前を入力します。
  7. [デプロイ チャネル] で、[デバイス チャネル] を選択します。
  8. フォルダー アイコンを選択し、前に保存してカスタマイズした .mobileconfig ファイルをアップロードします。
  9. 次へを選択します。
  10. [スコープ タグ] で、該当するスコープ タグを割り当ててから、[次へ] を選択します。
  11. [ 割り当て] で、プロファイルを受け取るユーザーまたはユーザー グループを選択します。 プラットフォーム SSO ポリシーはユーザー ベースです。デバイスにポリシーを割り当てないでください。
  12. [ 次へ] を選択し、設定を確認して、[ 作成] を選択します。

設定は、各デバイスが次に構成の更新を確認する際に適用されます。

共有レベルのアクセス許可を割り当てる

Azureファイル共有ごとに、アクセスが必要なユーザーまたはグループに共有レベルのアクセス許可を割り当てます。 共有レベルのアクセス許可が設定されると、個々のファイルやディレクトリに設定された Windows ACL によって、きめ細かなアクセス制御が行われます。

共有レベルのアクセス許可を設定するには、「ID に共有レベルのアクセス許可を割り当てる」の手順に従います。

macOS で Azure ファイル共有をマウントする

Kerberos SSO プロファイルをデプロイしてアプリの登録を更新すると、macOS ユーザーは Finder から Azure ファイル共有をマウントできます。

  1. Finder を開きます。

  2. [移動] メニューから [サーバーに接続] を選択するか、Command キーを押しながら K キーを押します。

  3. [ サーバー アドレス] フィールドに、ファイル共有の SMB URL を入力します。 Windows UNC パスを SMB URL に変換するには、\\smb:// に置き換え、各 \/ に置き換えます。 例えば次が挙げられます。

    smb://<storageaccountname>.file.core.windows.net/<sharename>
    
  4. 接続を選択します。

構成が正しい場合、共有はユーザーに資格情報の入力を求めずにマウントされます。

Kerberos認証のテストと検証

構成が完了したら、Kerberos チケットが発行され、ファイル共有アクセスが期待どおりに動作することを確認します。

Kerberos チケットの発行を確認する

macOS クライアントでターミナル を開き 、次のコマンドを実行します。

app-sso platform -s

Microsoft Entra ID Cloud Kerberos 領域の Kerberos チケットが出力に含まれていることを確認します。これは、ticketKeyPath 値が tgt_cloud で示されます。 オンプレミスの AD Kerberos プロファイルもデプロイしている場合は、ticketKeyPathtgt_ad に設定されている 2 つ目のチケットも存在しているはずです。

ポート 445 が開かれていることを確認します。

nc -vz exampleaccount.file.core.windows.net 445

ファイル共有アクセスの確認

前のセクションの手順を使ってFinderからAzureファイル共有をマウントしてみてください。 この共有は、ユーザー名や資格情報などの入力を求めずにマウントされます。 資格情報プロンプトが表示された場合は、 トラブルシューティングのセクションを参照してください。

Troubleshoot

ファイル共有をマウントするときにユーザーに資格情報の入力を求めるメッセージが表示される

Azure ファイル共有に接続するときにユーザーに資格情報の入力を求められた場合は、次の条件を確認します。

  • アプリ登録識別子 URI が CIFS/ から cifs/ (小文字) に更新されます。 「 アプリ登録識別子URIの更新 」および 「識別子URIの更新を確認しましょう」をご覧ください。
  • macOS デバイスには有効なクラウド Kerberos TGT があり、ターミナルで app-sso platform -s を実行して確認されます。
  • Kerberos SSO MDM プロファイルがデバイスに適用されます。
  • 管理者の同意は、Microsoft Entra IDのAzure Files アプリの登録に付与されます。
  • ユーザーは、Azure ファイル共有に対する共有レベルのアクセス許可を持っています。
  • ストレージ アカウントを表すMicrosoft Entra アプリで MFA が無効になっています。

スクリプト エラー

エラー Resolution
AppIdCsvFilePath指定もしません これらのパラメーターの 1 つだけを指定します。
CSV ファイルが無効です ファイルが存在し、UTF-8 でエンコードされ、AppId の列ヘッダーがあり、重複するエントリが含まれていないことを確認してください。
Microsoft Graph API エラー Application.ReadWrite.All アクセス許可とアプリケーション管理者ロールまたはグローバル管理者ロールがあることを確認します。
無効なアプリ登録 ID アプリ登録 ID がテナントに存在し、アクセス可能であることを確認します。 Disconnect-MgGraphを使用してキャッシュされた資格情報をクリアし、必要に応じて再認証します。

既知の問題

Kerberos SSO 機能拡張メニュー エクストラ

プラットフォーム SSO を使用して Kerberos SSO サポートをデプロイすると、メニュー バーに macOS Kerberos SSO 拡張機能のメニュー バーが追加で表示されます。 Kerberos SSO を機能させるために、ユーザーはメニュー バーと対話する必要はありません。 SSO 機能は、メニュー バーの追加で "サインインしていません" と報告された場合でも正しく動作します。メニュー バーを無視するようにユーザーに指示できます。