の検索結果 :

×


「ご返信ありがとうございます。すぐにご連絡させていただきます。」

「問題が発生しました。もう一度クエリを送信してください。」

概要


ケルベロスプロトコル:

ケルベロスは 暗号ベースの認証プロトコル アプリケーションへのアクセスを保護します。 このプロトコルは、安全でないネットワーク上で安全な認証を提供するように設計されています。 Kerberos の背後にある重要なアイデアは、パスワードがインターネット経由で送信されるのを防ぎながらユーザーを認証することです。


ミニオレンジのアイコン

Kerberos/NTLM シングル サインオン (SSO)

投稿者:miniOrange

もっと詳しく知る

ケルベロス用語:

ケルベロス: Kerberos は、シングル サインオン (SSO) の概念をサポートする認証プロトコルです。 HTTP の場合、Kerberos のサポートは通常、「SPNEGO」認証メカニズムという用語を使用して提供されます。

ケルベロスレルム: 認証用の管理ドメインは、レルムという用語で示されます。 その目的は、認証サーバーがユーザー、ホスト、またはサービスを認証できる場合の制限を定義することです。 これは、認証を行うためにユーザーとサービスが同じレルムのメンバーである必要があることを意味するものではありません。XNUMX つのオブジェクトが異なるレルムに属しているにもかかわらず、信頼接続を介して接続されている場合でも、認証は行われます。

メイン: Kerberos システムでは、Kerberos プリンシパルは、Kerberos が Kerberos 対応サービスにアクセスするためのチケットを発行できる個別の ID を表します。 「/」区切り文字は、プリンシパル名を構成するさまざまなコンポーネントを区切るために使用されます。 「@」文字を使用すると、レルムを名前の最後の要素として識別できます。 レルムが指定されていない場合、プリンシパルは krb5.conf ファイルに設定されているデフォルトのレルムに属していると想定されます。

クライアント/ユーザー: ユーザーに代わってサービスにアクセスするプロセス。 レルム内には複数のクライアントまたはユーザーが存在する可能性があります。

サービス: ユーザーがアクセスしたいもの。

SSO: シングル サインオンとは、ユーザーが一度ログインするだけで、ユーザー認証を完了した後、さまざまなサービスにアクセスできるようにする手順です。 プライマリ サービスにログインした後、ユーザーが許可を与えたすべてのサービスへの認証が必要になります。 SSO には多くの利点があります。その XNUMX つは、パスワードやその他の認証システムを使用して ID を繰り返し検証する面倒なプロセスを回避できることです。

GSSAPI: プログラムは、アプリケーション プログラミング インターフェイス (API) である Generic Security Service Application Program Interface(GSSAPI) を通じてセキュリティ サービスにアクセスできます。 IETF 標準は GSSAPI です。 それ自体ではセキュリティは提供されません。 代わりに、GSSAPI 実装はセキュリティ サービス プロバイダーによって提供されます。 実装の詳細を上位レベルのアプリケーションから隠す、不透明なメッセージ (トークン) の交換は、GSSAPI アプリケーションの際立った特性です。

スプネゴ: クライアント サーバー ソフトウェアは、「spen-go」と呼ばれることが多い、シンプルで保護された GSSAPI ネゴシエーション メカニズムを使用して、セキュリティ テクノロジの選択をネゴシエートします。 クライアント アプリケーションがリモート サーバーにログインする必要があるが、どちらの側も他方がサポートしている認証プロトコルが不明な場合は、SPNEGO が使用されます。 擬似メカニズムは、プロトコルを使用して利用可能な共通 GSSAPI メカニズムを識別し、XNUMX つを選択し、その後のすべてのセキュリティ アクションをその選択したメカニズムに割り当てます。

KDC: キー配布センターは、チケットと一時セッション キーを提供するネットワーク サービスです。 またはそのサービスのインスタンス、またはそのサービスが実行されるホスト。 KDC は、最初のチケット要求とチケット認可要求の両方を処理します。 初期チケット部分は、認証サーバー (またはサービス) と呼ばれることもあります。 チケット認可チケット部分は、チケット認可サーバー (またはサービス) と呼ばれることもあります。


NTLM認証プロトコル

Active Directory ドメイン上のリソースへのクライアントのアクセスは、Windows NT LAN Manager (NTLM) として知られるチャレンジ/レスポンス認証プロトコルを使用して認証できます。 クライアントがドメイン関連サービスへのアクセスを要求すると、サービスはクライアントにチャレンジを送信し、認証トークンを使用して数学的演算を実行し、その結果をサービスに提供するように指示します。 結果はサービスによって検証されることも、ドメイン コントローラー (DC) によって検証されることもあります。 DC またはサービスがクライアントの応答が正確であることを確認した場合、サービスはクライアントへのアクセスを許可します。
NTLM は、ユーザーがログイン中に基礎となる認証要素を XNUMX 回だけ入力できるため、一種のシングル サインオン (SSO) です。


NTLM 認証プロトコルのシングル サインオン (SSO) フロー
  •   交渉_メッセージ クライアントからサーバーに送信される NTLM ネゴシエート メッセージを定義します。 このメッセージにより、クライアントはサポートされている NTLM オプションをサーバーに指定できます。
  •   チャレンジ_メッセージ サーバーからクライアントに送信される NTLM チャレンジ メッセージを定義します。このメッセージは、サーバーがクライアントに自身の身元を証明するようチャレンジするために使用されます。
  •   認証_メッセージ CHALLENGE_MESSAGE がクライアントによって処理された後に、クライアントからサーバーに送信される NTLM 認証メッセージを定義します。

Windows 認証では、クライアントとサーバーの構成に応じて、Kerberos 認証プロトコルまたは NTLM 認証プロトコルのいずれかを使用します。

Kerberos 認証プロトコル


Kerberos と呼ばれるコンピュータ ネットワーク セキュリティ プロトコルは、インターネットなどの信頼できないネットワークを介した XNUMX つ以上の信頼できるホスト間のサービス要求を認証します。
  • メッセージ A: クライアント/ユーザーの秘密キーを使用して暗号化されたクライアント/TGS セッション キー。
  • メッセージ B: Ticket-Granting-TGS の秘密鍵を使用して暗号化されたチケット。
  • メッセージ C: メッセージ B の TGT と要求されたサービスの ID で構成されます。
  • メッセージ D: クライアント/TGS セッション キーを使用して暗号化された認証子。
  • メッセージ E: サービスの秘密キーを使用して暗号化されたクライアントからサーバーへのチケット。
  • メッセージ F: クライアント/サーバー セッション キーはクライアント/TGS セッション キーで暗号化されます。
  • メッセージ G: 新しいオーセンティケータ。クライアント ID、タイムスタンプが含まれ、クライアント/サーバー セッション キーを使用して暗号化されます。
  • メッセージ H: クライアント/サーバー セッション キーを使用して暗号化された、クライアントのオーセンティケーターで見つかったタイムスタンプ。

Ubuntu/Debian 上の Kerberos SSO


受験資格:

  1. Active Directory のサービス アカウント/ユーザー アカウント。
  2. アカウントのパスワードは次のように設定されている必要があります。 期限切れではありません。

ミニオレンジのアイコン

Kerberos/NTLM シングル サインオン (SSO)

投稿者:miniOrange

もっと詳しく知る

ステップ 1: AD ドメイン コントローラーで Keytab ファイルを作成します。

  • AD ドメイン コントローラーでコマンド プロンプトを管理者モードで開き、次のコマンドを実行して Keytab ファイルを作成します。
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    注: 確保 Example.COM 大文字にする必要があります。 SPN を持つユーザーがすでに存在する場合は、そのユーザーを使用して新しいユーザーを作成します。 Kerberos 原則では大文字と小文字が区別されます。 keytab コマンドを実行する前に、大文字と小文字の違いを確認してください。

  • コマンドのコンポーネントは次のとおりです。
  • サーバーのホスト名: これは、サーバー上でホストされているサイトのホスト名です。
    例.COM: これは、Active Directory ドメイン名です。
    ユーザー名: これは、Active Directory のサービス アカウントです。
    パスワード: 上記で使用したサービスアカウントのパスワードです。
    パス: キータブ ファイルを保存するローカルの場所へのパス。 (C:\Temp\spn.keytab)

注: 上記のコマンドは keytab ファイルを作成します。 WordPress サイトがホストされているクライアント サーバーに配置する必要があります。 Apache を実行しているユーザーは、このファイルへの完全なアクセス権を持っている必要があります。 ユーザーには keytab ファイルに対する権限が必要です。


  • [Active Directory ユーザーとコンピュータ] を開き、上部のメニューから [表示] >> [高度な機能] を選択します。
  • サービス アカウントを開いて属性エディター タブに移動し、servicePrincipalName を参照して SPN エントリを確認します。
  • 「委任」タブに移動します。
  • [任意のサービスへの委任に関してこのユーザーを信頼する (Kerberos のみ)] を選択します。
  • Windows Active Directory の Kerberos サービス SSO 委任
  • 「適用」をクリックします。

  • コピー キータブ ファイルを AD ドメイン コントローラーから Apache でホストされている Web サーバーに送信します。
  • Kerberos キータブ ファイルにアクセス許可を与えます。
  • chmod 644 etc/apache2/spn.keytab

ステップ 2: Web サーバーに Kerberos クライアント ライブラリをインストールします。

  • 端末で次のコマンドを使用して、Kerberos クライアント ライブラリをインストールします。
  • sudo apt-get install krb5-user

ステップ 3: Apache のモジュールをインストールします。

注: Ubuntu/Debian の最新リリースでは、 mod_auth_kerb は廃止され、次のものに置き換えられました mod_auth_gssapi.

1: Apache 用の mod_auth_kerb モジュールをインストールします。
  • 次のコマンドを使用して、Apache の auth_kerb モジュールを debian ベースのシステムにインストールします。
  • sudo apt-get install libapache2-mod-auth-kerb
  • auth_kerb モジュールをインストールしたら、次のコマンドを使用して有効にする必要があります。
  • a2enmod auth_kerb
  • 有効にした後、Apache を再起動して有効にします。

Or


2: Apache 用の mod-auth-gssapi モジュールをインストールします。
  • 次のコマンドを使用して、Apache の libapache2-mod-auth-gssapi モジュールを debian ベースのシステムにインストールします。
  • sudo apt-get -y install libapache2-mod-auth-gssapi

ステップ 4: Kerberos 構成ファイルで Active Directory ドメインを構成します。

  • を開いて編集します krb5.conf ファイルにソフトウェアを指定する必要があります。
    krb5.conf ファイルへのパス Linux は C:/etc/krb5.conf です そしてその他のために UNIX ベースのシステムは c:/etc/krb5/krb5.conf です。
  • 次の設定スニペットを krb5.conf 前述のセクションの下にあるファイル:
  • [libdefaults]
    default_realm = EXAMPLE.COM
    # ...
    # ...
    [realms]
    EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    注: 置き換える 広告ドメインコントローラーのIP/DNS IP/DNS アドレスを使用してください。 確保する Example.COM 大文字にする必要があります。
    置き換える Example.COM Active Directory ドメイン名を使用します。
    また、AD ドメイン コントローラーのポート 88 がこのサーバーからアクセスできることを確認してください。

  • ファイルを保存します。

ステップ 5: サイト ディレクトリの Kerberos SSO を構成する

  • 以下に保存されている強制された仮想ホスト構成ファイルを編集します。 /etc/apache2/sites-enabled ディレクトリ または、000-default.conf という名前のデフォルトの仮想ホスト ファイル

  • 注: 使用する Apache モジュールに応じて、ディレクトリに次のセクションを追加します。 例えば: 「mod_auth_kerb」 or 「mod_auth_gssapi」.

  1. サイトのディレクトリに次のセクションを追加します。 mod_auth_kerb。
  2. <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  3. サイトのディレクトリに次のセクションを追加します。 mod_auth_gssapi。
  4. <IfModule !mod_auth_gssapi.c>
        LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
    </IfModule>
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiAllowedMech krb5
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        BrowserMatch Windows gssapi-no-negotiate
        Require valid-user
    </Directory>

    注: 確保 Example.COM 大文字にする必要があります。
    上記の構成のコンポーネントは次のとおりです。

    例.COM: これは、krb5.conf で構成されている Active Directory ドメインです。
    キータブへのパス: このサーバー上のキータブへのアクセス可能なパス。 (etc/spn.keytab)
  • この構成後、変更を有効にするために Apache を再起動する必要があります。

設定が完了したら、 ここをクリック Kerberos SSO 用にブラウザを設定します。

Kerberos/NTLM SSO 構成をテストするには、次のようにします。 ここをクリック。

エラーのトラブルシューティングを行うには、 ここをクリック。

RHEL/CentOS 上の Kerberos SSO

サービス アカウントの前提条件:

  1. アカウントのパスワードは次のように設定されている必要があります。 期限切れではありません。
  2. アカウントは委任に対して信頼される必要があります。

サービス アカウントをお持ちでない場合は、[Active Directory ユーザーとコンピューター] で新しいユーザー アカウント (サービス アカウント) を作成します。 このオブジェクトに SPN エントリが割り当てられていないことを確認してください (servicePrincipalName 属性は空である必要があります)。


ミニオレンジのアイコン

Kerberos/NTLM シングル サインオン (SSO)

投稿者:miniOrange

もっと詳しく知る

ステップ 1: AD ドメイン コントローラーで Keytab ファイルを作成します。

  • AD ドメイン コントローラーでコマンド プロンプトを管理者モードで開き、次のコマンドを実行して Keytab ファイルを作成します。
  • ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
    -pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab

    注意: 確保 Example.COM 大文字にする必要があります。 Kerberos 原則では大文字と小文字が区別されます。 keytab コマンドを実行する前に、大文字と小文字の違いを確認してください。

  • コマンドのコンポーネントは次のとおりです。
サーバーのホスト名: これは、サーバー上でホストされているサイトのホスト名です。
例.COM: これは、Active Directory ドメイン名です。
ユーザー名: これは、Active Directory のサービス アカウントです。
パスワード: 上記で使用したサービスアカウントのパスワードです。
パス: キータブ ファイルを保存するローカルの場所へのパス。 (C:\Temp\spn.keytab)

注: 上記のコマンドは keytab ファイルを作成します。 WordPress サイトがホストされているクライアント サーバーに配置する必要があります。 Apache を実行しているユーザーは、このファイルへの完全なアクセス権を持っている必要があります。ユーザーは、keytab ファイルへのアクセス許可を持っている必要があります。



  • コピー キータブ ファイルを AD ドメイン コントローラーから Apache でホストされている Web サーバーに送信します。
  • Kerberos キータブ ファイルにアクセス許可を与えます。
  • chmod 644 etc/httpd/spn.keytab

ステップ 2: Web サーバーに Kerberos クライアント ライブラリをインストールします。

  • 端末で次のコマンドを使用して、Kerberos クライアント ライブラリをインストールします。
  • yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session

    注: CentOS の最新リリースでは、 mod_auth_kerb は廃止され、次のものに置き換えられました mod_auth_gssapi.


ステップ 3: Apache のモジュールをインストールします。

    1: Apache 用の mod_auth_kerb モジュールをインストールします。
  • 次のコマンドを使用して、Apache の auth_kerb モジュールを Red Hat ベースのシステムにインストールします。 (RHEL の最新リリースの場合は、mod-auth-gssapi モジュールを使用します)
  • yum install mod_auth_kerb

Or


    2: Apache 用の mod-auth-gssapi モジュールをインストールします。
  • 次のコマンドを使用して、Apache の libapache2-mod-auth-gssapi モジュールを debian ベースのシステムにインストールします。
  • sudo apt-get -y install libapache2-mod-auth-gssapi

ステップ 4: Kerberos 構成ファイルで Active Directory ドメインを構成します。

  • を開いて編集します krb5.conf ファイルにソフトウェアを指定する必要があります。
    krb5.conf ファイルへのパス RHEL は C:/etc/krb5.conf です。
  • 次の設定スニペットを krb5.conf 前述のセクションの下にあるファイル:
  • に移動します [libdefaults] セクションに以下を追加します。
  • default_realm = EXAMPLE.COM
    dns_lookup_realm = true
    dns_lookup_kdc = true
  • に移動します [レルム] セクションを作成し、以下を追加します。
  • EXAMPLE.COM = {
    kdc = <DNS entries pointing to your primary domain controller>: Port
    admin_server = <DNS entries pointing to your primary domain controller>: Port
    }
  • に移動します [ドメイン_レルム] セクションを作成し、以下を追加します。
  • .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

    注: 置き換える 広告ドメインコントローラーのIP/DNS IP/DNS アドレスを使用してください。 確保する Example.COM 大文字にする必要があります。
    置き換える Example.COM Active Directory ドメイン名を使用します。
    また、AD ドメイン コントローラーのポート 88 がこのサーバーからアクセスできることを確認してください。

  • ファイルを保存します。

ステップ 5: サイト ディレクトリの Kerberos SSO を構成する

  • 強制されたホスト構成ファイルを編集する /etc/httpd/conf/httpd.conf
  • サイトのディレクトリに次のセクションを追加します。 mod_auth_kerb.
  • <Directory "/placeholder">
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.COM
        KrbServiceName HTTP/<Server Host Name>
        Krb5Keytab <PATH TO KEYTAB>
        KrbMethodNegotiate on
        KrbMethodK5Passwd on
        require valid-user
    </Directory>

    Or


  • サイトのディレクトリに次のセクションを追加します。 mod_auth_gssapi.
  • LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
    <Directory "/placeholder">
        AuthType GSSAPI
        AuthName "Kerberos auth"
        GssapiBasicAuth On
        GssapiCredStore keytab:<PATH TO KEYTAB>
        GssapiLocalName On
        Require valid-user
    </Directory>

    上記の構成のコンポーネントは次のとおりです。

    キータブへのパス このサーバー上のキータブへのアクセス可能なパス。 (etc/apache2/spn.keytab)
    "/プレースホルダー" ドキュメントルートへのパス
  • この構成後、変更を有効にするために Apache を再起動する必要があります。

設定が完了したら、 ここをクリック Kerberos SSO 用にブラウザを設定します。

Kerberos/NTLM SSO 構成をテストするには、次のようにします。 ここをクリック。

エラーのトラブルシューティングを行うには、 ここをクリック。

IIS サーバーでの Windows 認証による SSO


  • コマンドプロンプトを管理者モードで開きます。
  • 次のコマンドを実行して、サービス アカウントのサービス プリンシパル名 (SPN) を追加します。
  • 注: Web サイトが http://machinename および http://machinename.domain.com で応答する必要があるとします。 これらのアドレスをサービス アカウントの SPN 属性で指定する必要があります。

    Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

    例: C:\Users\Administrator> setspn -S HTTP/マシン名.ドメイン.com サービスアカウント

    注: ここでの「machinename.domain.com」はコンピュータ名です。 AD サービスを実行している Windows サーバー上で解決可能であることを確認してください。


  • 次のコマンドを実行して、これが正しく設定されているかどうかを確認します。
  • setspn -l domain or service_account

    例: C:\Users\Administrator> setspn -l サービスアカウント または C:\Users\Administrator> setspn -l ドメイン名

    Windows IIS サーバーで Kerberos SSO 認証用のサービス プリンシパル名 (SPN) エントリを設定する
  • 結果にはリストが表示されます http/マシン名.ドメイン.com

  • [Active Directory ユーザーとコンピュータ] を開き、上部のメニューから [Active Directory ユーザーとコンピュータ] を選択します。 表示 >> 高度な機能。
  • サービスアカウントを開いて、 属性エディタ タブで、 servicePrincipalName を使用して SPN エントリを確認します。
  • に移動します 代表団 タブには何も表示されないことに注意してください。
  • 選択 任意のサービスへの委任に関してこのユーザーを信頼します (Kerberos のみ)。
  • RHEL、CentOS、Ubuntu、Fedora システムの Kerberos シングル サインオンのための Kerberos サービス委任
  • クリック 申し込む.
  • Video Cloud Studioで IISマネージャ Windows 認証を有効にする Web サイトをクリックします。
  • ダブルクリック 認証.
  • Kerberos SSO を有効にするためにサイトの Windows 認証設定を構成する Windows IIS マネージャー
  • [認証] セクションでは、デフォルトで匿名認証のみが有効になっていることがわかります。 IIS は常に匿名認証を実行しようとするため、匿名認証を無効にし、Windows 認証を有効にします。
  • 構成されたアプリケーションで Kerberos SSO の Windows IIS マネージャーから Windows 認証を有効にします。
  • Windows 認証を右クリックし、プロバイダーをクリックします。
  • インターネット インフォメーション サービス IIS マネージャー Windows 認証プロバイダー リスト
  • 次のウィンドウが表示されます。 プロバイダー リストのリストの先頭に「交渉」があることを確認してください。
  • Windows IIS マネージャーにより、Windows 認証プロバイダーが Kerberos プロトコルを使用して SSO をシングル サインオンできるようになります

    注: デフォルトでは、Negotiate と NTLM の XNUMX つのプロバイダーが使用可能です。 Negotiate は、最初の認証方法として Kerberos を使用するコンテナーであり、認証が失敗した場合は NTLM が使用されます。 したがって、Negotiate がプロバイダーのリストの最初に来る必要があります。


  • ソフトウェアの制限をクリック Ok ウィンドウを閉じます。
  • 作成した SPN アカウントから IIS アプリケーション プールを起動するように構成するには、[アプリケーション プール] をクリックして [アプリケーション プール] ウィンドウを開きます。
  • ドメインを右クリックし、リストから「詳細設定」をクリックします。
  • Kerberos SSO を有効にするための Windows インターネット インフォメーション サービス (IIS) マネージャー アプリケーション プール サイトの詳細設定
  • [詳細設定] ウィンドウの [プロセス モデル] で、[ID] をクリックします。
  • Windows IIS マネージャー アプリケーション プールの詳細設定から ID を構成して Kerberos SSO を有効にする
  • [アプリケーション プール ID] で、[カスタム アカウント] を選択し、[設定] ボタンをクリックして ID を設定します。
  • ApplicationPoolIdentity から次のように変更します。 \ 。
  • 例:ドメイン.com\サービス_アカウント

    Windows 上の Kerberos SSO は、IIS マネージャーのアプリケーション プール ID 設定からカスタム アカウントを構成します
  • 構成エディターに移動します。
  • Windows IIS マネージャー構成エディターに移動して、Web サイトで Kerberos / NTLM 認証を有効にします。
  • ドロップダウンから、system.webServer > セキュリティ > 認証 > windowsAuthentication を選択します。
  • useAppPoolCredentials を構成して Windows IIS サーバーの Kerberos 認証を構成します
  • useAppPoolCredentials を True に変更します。 useKernelMode を False に設定します。
  • 注: useAppPoolCredentials を True に設定すると、IIS がドメイン アカウントを使用してクライアントからの Kerberos チケットを復号化できるようになります。

  • クリック 適用されます。
  • IISサーバーを再起動します。

  • Fiddler を使用して HTTP トラフィックを監視することで、Web サイトで Kerberos 認証が使用されていることを確認できます。
  • フィドラーを起動し、ブラウザを起動して目的の Web サイトにアクセスします。 ウィンドウの左側にある Web サイトへのアクセスの行を見つけます。 ウィンドウの右側から「検査」タブを選択します。 「認可ヘッダー (ネゴシエート) には Kerberos チケットが含まれているようです。」という行から、IIS Web サイトでの認証に Kerberos が使用されていることは明らかです。

    Kerberos チケットは、Kerberos SSO プロセス中の認証ヘッダーに含まれます

設定が完了したら、 ここをクリック Kerberos SSO 用にブラウザを設定します。

Kerberos/NTLM SSO 構成をテストするには、次のようにします。 ここをクリック。

エラーのトラブルシューティングを行うには、 ここをクリック。

Windows Xampp サーバー上の Apache による SSO


  • コマンドプロンプトを管理者モードで開きます。
  • 次のコマンドを実行して、サービス アカウントのサービス プリンシパル名 (SPN) を追加します。
  • Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

    例: C:\Users\Administrator> setspn -S HTTP/マシン名.ドメイン.com サービスアカウント

    注: ここでの「machinename.domain.com」はコンピューター名です。 AD サービスを実行している Windows サーバー上で解決可能であることを確認してください。

  • 次のコマンドを実行して、これが正しく設定されているかどうかを確認します。
  • setspn -l domain\service_account
  • 結果にはリストが表示されます http/マシン名.ドメイン.com
  • [Active Directory ユーザーとコンピュータ] を開き、上部のメニューから [Active Directory ユーザーとコンピュータ] を選択します。 表示 >> 高度な機能。
  • サービスアカウントを開いて、 属性エディタ タブで、 servicePrincipalName を使用して SPN エントリを確認します。
  • に移動します 代表団 タブには何も表示されないことに注意してください。
  • 選択 任意のサービスへの委任に関してこのユーザーを信頼します (Kerberos のみ)。
  • IISサーバーでのWindows認証用のKerberos
  • クリック 申し込む.

  • ここをクリック apache モジュールをダウンロードします。
  • コピー mod_authnz_sspi.so から Apache24 > モジュール フォルダーを作成し、モジュール (C:\xampp\apache\modules) ディレクトリに配置します。
  • コピー ssipkgs.exe からのファイル Apache24 -> bin フォルダーを作成し、Web サーバー上の Xampp Apache フォルダー (....\xampp\apache\bin) の bin フォルダーに配置します。
  • httpd.conf (....\xampp\apache\conf) を開き、次のコード行を LoadModule セクションに配置します。
  • LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • 次のモジュールのコメントが解除されていることを確認してください。
  • LoadModule authn_core_module modules/mod_authn_core.so
    LoadModule authz_core_module modules/mod_authz_core.so

  • また、LDAP 拡張機能を必ず有効にしてください。
  • Video Cloud Studioで httpd.conf (....\xampp\apache\conf\httpd.conf) からのファイル。
    に移動し、#Require all Grants の後に以下の行を貼り付けます。
  • <Directory "...../xampp/htdocs">
    ......
    ......
    #Require all granted
    AllowOverride None Options None
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    Require valid-user
    </Directory>

  • Apache サーバーを再起動します。

設定が完了したら、 ここをクリック Kerberos SSO 用にブラウザを設定します。

Kerberos/NTLM SSO 構成をテストするには、次のようにします。 ここをクリック。

エラーのトラブルシューティングを行うには、 ここをクリック。

Kerberos SSO 用にブラウザを構成する


クライアント側の構成により、それぞれのブラウザーが SPNEGO を使用してブラウザーの Kerberos 認証をネゴシエートできるようになります。 エンド ユーザーのシステム上のブラウザが Kerberos 認証をサポートするように構成されていることを確認する必要があります。


すべてのブラウザの一般的な Kerberos SSO 構成


  • 「コントロールパネル」に移動し、「 ネットワークとインターネット >> インターネット オプション。
  • これにより、「インターネットのプロパティ」ウィンドウが開きます。 クリック セキュリティ >> ローカル イントラネット >> サイト。
  • インターネット オプション設定を使用してブラウザを Kerberos 認証用に構成する

  • その後、をクリックします 詳細ボタン。
  • Chrome および Internet Explorer のインターネット オプションから Kerberos SSO の詳細設定を構成する

  • この Web サイトをゾーンに追加します セクションに、SSO でログインする Web サイトの URL を追加します。
  • Kerberos SSO のインターネット オプションからイントラネット ゾーンの Web サイトを構成する
  • クリック [ツール] > [インターネット オプション] > [セキュリティ] > [ローカル イントラネット] > [カスタム レベル]。
  • 「ユーザー認証」オプションまで下にスクロールし、選択します。 イントラネット ゾーンでのみ自動ログオンします。
  • Kerberos 認証プロトコルを使用したイントラネット ゾーンへの自動ログオン
  • ソフトウェアの制限をクリック Ok ボタンをクリックしてブラウザを再起動します。


上記の設定を完了すると、Internet Explorer、Google Chrome、Apple Safari のブラウザ設定を行う必要はありません。


1。 インターネットエクスプローラ
2。 Google Chromeの
3。 Mozilla Firefoxの
4 アップルサファリ


インターネットエクスプローラ

デフォルトでは、一般的なブラウザ構成設定が適用され、Internet Explorer にはそれ以上の追加設定は必要ありません。



Google Chrome

デフォルトでは、一般的なブラウザ構成設定が適用され、Google Chrome にはそれ以上の追加設定は必要ありません。



Mozilla Firefox

  • Mozilla Firefox ブラウザを開いて次のように入力します。 約:設定 アドレスバーに。
  • 検索する network.negotiate-auth.trusted-uris 設定名を入力し、 をクリックします。 編集。 Kerberos HTTP SPNEGO によって保護されている Web サーバーのホスト名またはドメインを入力します。 複数のドメインとホスト名をカンマで区切って指定します。
  • Mozilla Firefox を Kerberos SSO (シングル サインオン) 用に構成する
  • 検索する network.automatic-ntlm-auth.trusted-uris 設定名を入力し、「編集」をクリックします。 Kerberos HTTP SPNEGO によって保護される Web サーバーのホスト名またはドメインを入力します。 複数のドメインとホスト名をカンマで区切って指定します。
  • Mozilla Firefox の Kerberos 認証設定を構成する
  • クリック OK そしてブラウザを再起動してください。


アップルのSafari

  • Windows 上の Safari は、追加の設定を行わなくても SPNEGO をサポートします。 SPENGO のサブメカニズムとしてケルベロスと NTLM の両方をサポートします。

Kerberos/NTLM SSO 構成をテストする


時間同期

Kerberos プロトコルでは、クライアントとサーバーの時間が一致している必要があります。クライアントのシステム クロックがサーバーのシステム クロックと一致しない場合、認証は失敗します。 システム クロックを同期する最も簡単な方法は、ネットワーク タイム プロトコル (NTP) サーバーを使用することです。


コマンドで確認します。

keytab と Kerberos の構成を確認するには、次のコマンドを実行します。

  1. クリスト
  2. klist コマンドは、Kerberos 資格情報キャッシュまたはキー テーブルの内容を表示します。 このコマンドを使用すると、有効なチケットを取得したかどうかを確認できます。

  3. klist -t -k etc/apache2/spn.keytab
  4. etc/apache2/spn.keytab キーテーブル内のすべてのエントリをタイムスタンプとともにリストします。

  5. klist -ek /etc/apache2/spn.keytab
  6. セッションキーとチケットの暗号化タイプを表示し、キーテーブル内のエントリをリストします。

  7. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/webserver.yourdomain.com@YOURDOMAIN.COM
  8. keytab ファイルを使用して Kerberos 認証を検証します。

  9. kdestroy -A
  10. Linux でこのコマンドを使用すると、ローカル マシン上の Kerberos トークンをリセットできます。 このコマンドは、以前の Kerberos チケットを破棄します。

  11. klistのパージ
  12. Windows でこのコマンドを使用すると、ローカル マシン上の Kerberos トークンをリセットできます。 このコマンドは、以前の Kerberos チケットを破棄します。


テスト構成。

  • SSO 設定をテストするには、WordPress ルート ディレクトリに test.php ファイルを作成します。
    以下の行を入力します。
  • <?php
    var_dump($_SERVER);
    ?>
  • ファイルを保存し、Web ブラウザでアクセスします。 が表示されます。 $_SERVER コンテンツ。
  • 検索する 「REMOTE_USER」 現在ログインしているユーザー名が含まれている必要があります。
  • 注: 構成を確認した後、test.php ファイルを削除してください。 貴重な情報が含まれているので。


複数のドメインにわたる Kerberos 認証


  • 各ドメインに個別のキータブを作成し、それらを ktutil ツールとマージします。
  • ktutil
    ktutil: read_kt <keytab_filename_1>
    ktutil: read_kt <keytab_filename_2>
    ktutil: read_kt <keytab_filename_3>
    ktutil: write_kt spn.keytab
    ktutil: quit

  • 以下のコマンドでマージを確認します。
  • klist -k spn.keytab
  • krb5.conf を構成します。
    krb5.conf ファイルには、5 つ以上の Kerberos レルムの KDC および管理サーバー、現在のレルムのデフォルト値、Kerberos レルムへのホスト名のマッピングなどの Kerberos 構成情報が含まれています。 複数のドメインの場合、認証が機能するためには、krbXNUMX.conf ファイルをさまざまなドメイン/ドメイン レルムに関する情報で更新する必要があります。

トラブルシューティング


最も一般的なエラー メッセージは次のとおりです。

    kinit: Pre-authentication failed: Invalid argument while getting initial credentials
  • rc4 暗号化タイプは、AD 環境では依然として頻繁に使用されていますが、RHEL-8.3 ではすでにデフォルトで無効になっています。 以下の例を参照して、キータブ ファイルに暗号化タイプを追加できます。
  • 例:
    ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
  • ケルベロスは時間に非常に敏感です。 Active Directory と Web サーバーのホスト上のクロックが同一であることを確認します。 ドメイン コントローラーの XNUMX つを、クライアント コンピューターの NTP サーバーとして機能するように設定します。

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied)
  • /etc/apache2/spn.keytab に対するファイル システムのアクセス許可が間違っています。つまり、Web サーバーの Linux ユーザーが読み取ることができません。
  • ファイル システムのアクセス許可を変更するには、次のコマンドを使用します。 chmod 644 /etc/apache2/spn.keytab

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).
  • /etc/apache2/spn.keytab にサービス プリンシパル (おそらく HTTP/webserver.yourdomain.com@YOURDOMAIN.COM) がありません。

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
  • Web サイトが IE の「ローカル イントラネット」ゾーンに存在しないか、IE が正しく構成されていません。「認証で Kerberos の代わりに NTLM が使用される」を参照してください。

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).
  • etc/apache2/spn.keytab の kvno またはマシンのパスワードが間違っています。 正しい情報を使用してキータブを再作成します。
  • ワークステーション上のローカル Kerberos チケット キャッシュに問題があります。Kerbtray.exe を使用してチケット キャッシュを削除し、IE で Web サイトを再度開きます。

  • kinit: KDC has no support for encryption type while getting initial credentials
  • /etc/apache2/krb5.conf ファイルの libdefaults セクションでデフォルトの暗号化タイプを変更します。 default_tgs_enctypes とdefault_tkt_enctypes を構成に追加します。
  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
  • Kerberos アカウントはもうアクティブではありません。 アカウントの資格情報を更新する必要があります。

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
  • kinit コマンドの実行時に、間違ったドメインがターゲットになりました。 ドメイン名を確認してください。大文字である必要があります。EXAMPLE.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials
  • /etc/apache2/krb5.conf ファイルには、Active Directory ドメイン名 (.EXAMPLE.COM) が含まれていません。

  • kinit: Preauthentication failed while getting initial credentials
  • kerberos パスワードを誤って入力したことが原因です。 もう一度試してください。 または、システムのクロックが原因です。 date コマンドが 5 分以内の正しい時刻を返すようにしてください。

  • kinit: Client not found in Kerberos database while getting initial credentials
  • Kerberos プリンシパルは、ローカル システム上のユーザー名と異なる場合があります。

  • kinit: Client's entry in database has expired
  • Kerberos パスワードを変更する必要があります。

こんにちは!

助けが必要? 私たちはここにいます!

サポート
miniOrange サポートにお問い合わせください
成功

お問い合わせありがとうございます。

24 時間以内に当社からのご連絡がない場合は、お気軽にフォローアップ メールを送信してください。 info@xecurify.com