This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. はじめに
この記事では、Secure Assertion Markup Language(SAML) によるログインの設定方法について説明します。
SAML は、ユーザーが実際に本人であることを外部アプリケーションやサービスに通知するための標準化された方法です。 SAML を使用すると、ユーザーを 1 回認証するだけで、その認証情報を複数のアプリケーションに伝達できるため、シングルサインオン (SSO) が可能になります。 いわゆる「サービスプロバイダ (SP)」と「ID プロバイダ (IdP)」間の接続と通信により、従業員は 1 回のログインでさまざまな web アプリケーションにアクセスすることができます。 SAML アーキテクチャでは、サービスプロバイダがアプリケーションを利用可能にし、ID プロバイダがユーザーのデジタル ID を管理します。
SAML は Checkmk の商業版でサポートされており、Checkmk の web インターフェイスで直接設定できます。 Checkmk はサービスプロバイダの役割を果たします。 たとえば、セットアップの章で説明したように、Entra ID はアイデンティティプロバイダの例です。
Microsoft Entra ID(略称:Entra ID)は、2023 年より Azure Active Directory(Azure AD)の新しい名称です。 ただし、この記事に含まれるスクリーンショットおよび設定ファイルの内容は、旧名称の Azure AD を引き続き使用しています。 |
Checkmk バージョン2.2.0 までは、代替手段として、SAML は Apachemod_auth_mellon モジュールによってサポートされていました。このモジュールは、Checkmk ソフトウェアの一部として提供されていました。
バージョン2.3.0 以降、mod_auth_mellon は Checkmk ソフトウェアには含まれていません。
SAML をCheckmk Rawユーザーとして使用する場合は、mod_auth_mellon を自分でインストールする必要があります。
これに基づく設定については、Checkmk Raw の章で説明しています。
ただし、弊社ではサポートは行っておりません。
トランスポート暗号化 (TLS/SSL) に関するトピック全体は、単純なデモ実装の例にのみ含まれています。 独自の認証機関 (CA)および適切な証明書処理を備えた実稼働環境では、お客様のインフラストラクチャに応じていくつかの違いがあります。 |
2. Checkmk で SAML を使用する
セットアッププロセスのすべてのポイントを確認すると、ユーザーは Checkmk で SAML ログインを使用できるようになります。 ボタンのテキストは、以下で説明するようにカスタマイズできます。

SAML によって認可されたユーザーは、Checkmk に初めてログインすると、同じ ID のユーザーが存在しない限り、自動的に Checkmk に作成されます。 同じ ID のユーザーがすでに存在する場合、現在のユーザー作成は拒否されます。
ユーザーデータは、ユーザーが Checkmk にログインするたびに同期されます。
SAML が機能するには、いくつかの前提条件を満たす必要があります。
web インターフェイスは HTTPS で保護されている必要があります。セキュリティ上の理由から、HTTP アドレスは受け付けられません。
ID/メタデータおよび応答 (Assertion Consumer Service) 用の Checkmk の SAML エンドポイントが IdP に登録されている必要があります。その方法については、以下で説明します。
IdP から Checkmk 宛てに送信されるメッセージ(認証要求に対する応答(アサーションにのみ必須)および属性ステートメント)は、サポートされているアルゴリズムのいずれかで署名されている必要があります。
2.1. サポートされているアルゴリズム
Checkmk は、IdP との通信に以下のアルゴリズムを受け入れます。
RSA-SHA256
RSA-SHA384
RSA-SHA512
ECDSA-SHA256
ECDSA-SHA384
ECDSA-SHA512
Checkmk 自体は、リクエストの署名に RSA-SHA256 を使用しています。
IdP が応答に上記のアルゴリズムを使用していない場合、その応答は Checkmk によって拒否されます。
3. SAML の設定
商業版で SAML を使用するには、まず IdP を設定する必要があります。この例では、Entra ID(2023 年までは Azure Active Directory と呼ばれていました)を使用します。 設定が完了すると、SP、つまり Checkmk に必要な情報が提供されます。
3.1. Entra ID へのログイン
Entra ID に Checkmk SAML サービスを登録する
次に、Checkmk SAML サービスを Entra ID に登録します。 これを行うには、Enterprise applications > Create your own application を呼び出します。

任意の、できれば意味のある名前(例:checkmk-saml )を割り当ててください。
Checkmk エージェントとの混同を避けるため、アプリケーションの名前を単にcheckmk としないことをお勧めします。
Integrate any other application you don’t find in the gallery (Non-gallery) オプションを選択し、Create ボタンをクリックします。
Entra ID の概要ページに、次の関数が作成されます。Single sign-on > SAML > Basic SAML Configuration :

この時点で、Entra ID は以下の2つの追加情報を要求します:
Identifier (Entity ID) を
https://myserver.com/mysite/check_mk/saml_metadata.py形式で、および「Reply URL (Assertion Consumer Service URL) 」を「
https://myserver.com/mysite/check_mk/saml_acs.py?acs」形式で入力してください。
その他のオプションは、デフォルト値のまま、または空のままにしてください。 特に、Basic SAML Configuration のRelay State は変更しないでください。変更すると、SAML が機能しなくなります。
次に、Edit > Signing Option > Sign SAML assertion を呼び出して、応答および認証用の Entra ID を設定します。

Entra ID から SAML 情報を取得する
次に、Entra ID に移動して、Checkmk に必要な SAML 情報を見つけます。
これは、Enterprise applications | All applications > Browse Microsoft Entra Gallery > checkmk-saml | SAML-based Sign-On ビュー(上記を参照)で確認できます。
SAML Certificates ボックスで、App Federation Metadata Url を見つけます。 これは、Checkmk で SAML を設定する次のセクションで必要になります。(Identity provider metadata) 。
Attributes & Claims ボックスをクリックすると、Checkmk のユーザー属性(メールアドレス、氏名など)のビューが表示されます。

3.2. Checkmk web インターフェイスで SAML を有効にする
先ほど取得した情報を使用して、Checkmk 側で SAML 接続を設定します。
必要に応じて、IdP から発行された TLS 証明書を、Setup > Global settings > Trusted certificate authorities for SSL に信頼済み証明書として追加してください。
次に、Setup > Users > SAML authentication を開きます。 そこで、Add connection を使用して、新しい接続の設定を開始します。

新しい接続に「Connection ID 」と「Name 」を割り当てます。Name は、後でCheckmk ログインボタンの名前付けに使用されます。
次に、Security ボックスで、Checkmk または独自の証明書を使用してアクセス接続を保護するかどうかを指定します。

独自の証明書を使用する場合は、Private key およびCertificate を指定する必要があります。
カスタム証明書は、サイトディレクトリの~/etc/ssl/saml2/custom/ に保存されます。
次に、[Connection ] ボックスの [Identity provider metadata ] に、前のセクションで説明したように選択した URL (App Federation Metadata URL など) を入力します。

または、Entra ID からメタデータ XML ファイルを直接ダウンロードし、上記のダイアログで、Identity provider metadata オプションにUpload XML file を使用してアップロードすることもできます。
これは、たとえば、Checkmk サーバーがインターネットにアクセスできない場合に便利です。
必須のCheckmk server URL には、Entra ID ではなく、通常 Checkmk にアクセスするために使用するアドレス(https://myserver.com など)を入力してください。
次に、Users ボックスにユーザーの詳細を入力する必要があります。

この情報も、前のセクションで説明したように取得する必要があります。User ID attribute は、ユーザー ID など、一意である必要があることにご注意ください。
Checkmk では、Entra ID の完全なclaim name 、つまりhttp で始まる URL アドレスを、各エントリについて入力する必要があります。
たとえば、上記の例では、ユーザー ID はhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/userID です。
Checkmk で SAML を使用して認証するすべてのユーザーの責任を定義するために、各ユーザーを1 つ以上の連絡先グループに割り当てることができます。Contact groups で、マッピングを定義するためのさまざまなオプションがあります。
Roles を使用して、ユーザーをさまざまな役割に割り当てて、通常のユーザー、管理者などを定義することができます。
4. Checkmk Raw での SAML
この章で説明する設定は、Checkmk の商業版にビルトインされているSAML 接続を使用できない Checkmk Raw ユーザーのみに関わります。
前提条件として、Checkmk ソフトウェアには付属していない Apache モジュール |
以下のセクションでは、Active Directory フェデレーションサービス (ADFS) を例として、すでに実行されている IdP に対するmod_auth_mellon の設定についてのみ説明します。
Checkmk 自体での接続は、ADFS の説明の最後のステップに限定されます。
Checkmk サーバーでは、mod_auth_mellon が認証のサービスプロバイダとして機能します。
4.1. Active Directory フェデレーションサービスへのログイン
前提条件
Active Directory を使用して Checkmk にログインするのは、基本的に比較的簡単です。 Active Directory フェデレーションサービス (ADFS) が ID プロバイダ (IdP) として機能し、Checkmk が SAML 認証を提供します。
このチュートリアルの前提条件は次のとおりです:
機能する LDAP-AD 統合
IdP として機能する ADFS
SSL 対応の Checkmk サーバー
サポートされているオペレーティングシステム
セットアップは 3 つのステップで完了します。
Apache の設定(結果:メタデータを含む XML ファイル)。
ADFS の設定:Mellon メタデータを使用して、信頼先信頼を設定します。
Checkmk 自体でのログインを有効にします。
Apache の設定
これは、もちろん、サイト独自の Apache サーバーの設定に関するものですので、まずそこにログインしてください。
root@linux# omd su mysite次に、mod_auth_mellon のディレクトリを作成し、そのディレクトリにスイッチします。
OMD[mysite]:~$ mkdir etc/apache/mellon
OMD[mysite]:~$ cd etc/apache/mellon次に、サーバーと、mellon というサフィックスを付けたサイト名を指定して、mellon_create_metadata を実行します。
OMD[mysite]:~/etc/apache/mellon$ mellon_create_metadata https://myserver "https://myserver/mysite/mellon"このモジュールは、証明書 (.cert)、鍵 (.key)、および静的メタデータ (.xml) の 3 つのファイルを生成します。.xml ファイルは不要なので、削除できます。
OMD[mysite]:~/etc/apache/mellon$ rm *.xml簡略化のため、キーファイルと証明書ファイルの名前を変更します。
OMD[mysite]:~/etc/apache/mellon$ mv .key mellon.key
OMD[mysite]:~/etc/apache/mellon$ mv .cert mellon.cert次に、必要なメタデータを ADFS サーバー (ここではmyadfs) から直接取得し、idp-metadata.xml として保存します。
OMD[mysite]:~/etc/apache/mellon$ wget --no-check-certificate -O ./idp-metadata.xml https://myadfs/FederationMetadata/2007-06/FederationMetadata.xml次に、idp-public-key.pem ファイルに保存されている ADFS サーバーの公開証明書が必要です。
OMD[mysite]:~/etc/apache/mellon$ echo -n | openssl s_client -connect myadfs:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | openssl x509 -pubkey -noout > idp-public-key.pemecho -n について疑問がある場合:
これは、次の SSL セッションを終了するために使用されます。
たとえば、IdP サービスが証明書チェーンをチェックする場合、証明書は信頼ストアにアップロードする必要があります。 このトピックの詳細については、HTTPS の記事をご覧ください。 |
最後のステップとして、認証設定ファイル~/etc/apache/conf.d/auth.conf を次のバリエーションに置き換えます。もちろん、Checkmk サーバー (ここではmyserver) およびサイト (ここではmysite) を指定してください。
次の設定例では、LoadModule で始まる行のインストールディレクトリのパスは、使用しているディストリビューションによって異なる場合があることにご注意ください。
# Set this to the Name of your Checkmk site, e.g.
#Define SITE
Define SITE mysite
# ServerName from listen-ports.conf needs to be overwritten here
# and being set to the URL of the real server. auth_mellon uses this
# to generate the needed URLs in the metadata
ServerName https://myserver
# Load the module.
<IfModule !mod_auth_mellon.c>
LoadModule auth_mellon_module /usr/lib/apache2/modules/mod_auth_mellon.so
</IfModule>
# Only enable this for debugging purposes
#MellonDiagnosticsFile /opt/omd/sites/${SITE}/tmp/mellon_diagnostics.txt
#MellonDiagnosticsEnable On
<Location /${SITE}>
# Use SAML auth only in case there is no Checkmk authentication
# cookie provided by the user and whitelist also some other required URLs
<If "! %{HTTP_COOKIE} =~ /^(.*;)?auth_${SITE}/ && \
! %{REQUEST_URI} = '/${SITE}/check_mk/register_agent.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/deploy_agent.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/run_cron.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/restapi.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/automation.py' && \
! %{REQUEST_URI} -strmatch '/${SITE}/check_mk/api/*' && \
! %{REQUEST_URI} = '/${SITE}check_mk/ajax_graph_images.py' && \
! %{QUERY_STRING} =~ /(_secret=|auth_|register_agent)/ && \
! %{REQUEST_URI} =~ m#^/${SITE}/(omd/|check_mk/((images|themes)/.*\.(png|svg)|login\.py|.*\.(css|js)))# ">
MellonIdPMetadataFile /opt/omd/sites/${SITE}/etc/apache/mellon/idp-metadata.xml
MellonIdPPublicKeyFile /opt/omd/sites/${SITE}/etc/apache/mellon/idp-public-key.pem
MellonSPCertFile /opt/omd/sites/${SITE}/etc/apache/mellon/mellon.cert
MellonSPPrivateKeyFile /opt/omd/sites/${SITE}/etc/apache/mellon/mellon.key
MellonEndpointPath "/${SITE}/mellon"
MellonDefaultLoginPath "/${SITE}/check_mk/"
Order allow,deny
Allow from all
MellonSecureCookie On
MellonCookieSameSite None
AuthType Mellon
AuthName "Checkmk SAML Login"
MellonEnable auth
Require valid-user
# Get Username
# ADFS sends username as DOMAIN\username pair.
# Checkmk just wants the username.
RewriteEngine on
RequestHeader set X-Remote-User "expr=%{REMOTE_USER}"
RequestHeader edit X-Remote-User "^.*\\\(.*)$" "$1"
# When SAML auth fails, show the login page to the user. This should only happen,
# if e.g. the mellon cookie is lost/rejected or if the IDP is misconfigured.
# A failed login at the IDP will not return you here at all.
ErrorDocument 401 '<html> \
<head> \
<meta http-equiv="refresh" content="1; URL=/${SITE}/check_mk/login.py"> \
</head> \
<body> \
SAML authentication failed, redirecting to login page. \
<a href="/${SITE}/check_mk/login.py">Click here</a>. \
</body> \
</html>'
</If>
# This header is also needed after authentication (outside of the If clause)
RequestHeader set X-Remote-User "expr=%{REMOTE_USER}"
RequestHeader edit X-Remote-User "^.*\\\(.*)$" "$1"
</Location>次に、Apache を再起動してください:
OMD[mysite]:~/etc/apache/mellon$ omd restart apache最後に、動的に作成された Mellon メタデータを XML ファイルとしてダウンロードし、AD 管理にすぐにインポートできるようにします。
OMD[mysite]:~/etc/apache/mellon$ wget https://myserver/mysite/mellon/metadata -o metadata.xmlActive Directory の設定
ADFS で信頼関係を作成するには、次の手順を実行します:
ADFS インターフェースを起動します:

「Add Relying Party Trust 」をクリックします:

オプションを「Claims aware 」のままにして、「Start」ボタンをクリックします。

次に、Import data on the relying party from a file を選択し、先ほどダウンロードしたXMLファイルを指定します:

AD FS Management の警告は無視して問題ありません。

「Specify Display Name 」の下に、名前として「Checkmk 」を入力してください:

テストのために、Choose Access Control Policy の許可を割り当てる際には、まずPermit everyone を選択してください。後で、これをPermit specific group に変更してください。

以下の概要を確認してください:Ready to Add Trust:

最後に、Finish ダイアログを確認し、Configure claims issuance policy for this application:

先ほど作成した信頼する当事者を選択し、Edit Claim Issuance Policy… :

Add Rule… を使用して、次のダイアログで新しいルールを追加します。

最初のステップで、Select Rule Template (信頼関係)を選択し、Transform to Incoming Claim (信頼関係の詳細)を選択して確認します:

2 番目のステップで、Configure Rule で以下の値を設定します:
Incoming claim type:
Windows account nameOutgoing claim type:
Name IDOutgoing name ID format:
Transient Identifier

この手順で ADFS の設定も完了します。 これで、FS は Windows 認証から Checkmk の認証を導出できるようになりました。次の手順では、HTTP 要求によってユーザーを認証するように指示します。
Checkmk の設定
Checkmk の [Setup > General > Global Settings > User Interface > Authenticate users by incoming HTTP requests] の [Current settings ] で、[Activate HTTP header authentication ] オプションを有効にするだけです。

4.2. その他のシステムに関する追加情報
Entra ID と mod_auth_mellon
Entra ID(2023 年までは Azure Active Directory と呼ばれていました)が IdP として機能する場合、設定手順にいくつかの違いがあります。たとえば、ユーザー名は書き換える必要なく直接指定できます。
以下のサンプル構成の事前要件:
LDAP 接続の識別子として UserPrincipalName を設定してください(詳細については、Microsoft のドキュメントをご覧ください)。
Entra ID で UserPrincipalName を 'name' 属性として設定したカスタム エンタープライズ アプリ(詳細については、Microsoft のドキュメントを参照してください)。
以下の構成例では、LoadModule で始まる行のインストールディレクトリのパスは、使用しているディストリビューションによって異なる場合があることにご注意ください。
#Set this to the Name of your Checkmk site, e.g.
# Define SITE mysite
Define SITE mysite
# ServerName from listen-ports.conf needs to be overwritten here
# and being set to the URL of the real server.
# auth_mellon uses this to generate the needed URLs in the metadata.
ServerName https://myserver
# Load the module.
<IfModule !mod_auth_mellon.c>
LoadModule auth_mellon_module /usr/lib/apache2/modules/mod_auth_mellon.so
</IfModule>
# Only enable this for debugging purposes
# MellonDiagnosticsFile /opt/omd/sites/${SITE}/tmp/mellon_diagnostics.log
# MellonDiagnosticsEnable On
<Location /${SITE}>
# Use SAML auth only in case there is no Checkmk authentication
# cookie provided by the user and whitelist also some other required URLs.
<If "! %{HTTP_COOKIE} =~ /^auth_${SITE}/ && \
! %{REQUEST_URI} = '/${SITE}/check_mk/register_agent.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/restapi.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/run_cron.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/automation.py' && \
! %{REQUEST_URI} -strmatch '/${SITE}/check_mk/api/*' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/deploy_agent.py' && \
! %{REQUEST_URI} = '/${SITE}check_mk/ajax_graph_images.py' && \
! %{QUERY_STRING} =~ /(_secret=|auth_|register_agent)/ && \
! %{REQUEST_URI} =~ m#^/${SITE}/(omd/|check_mk/((images|themes)/.*\.(png|svg)|login\.py|.*\.(css|js)))# ">
RequestHeader unset X-Remote-User
MellonIdPMetadataFile /opt/omd/sites/${SITE}/etc/apache/mellon/idp-metadata.xml
# Azure-AD-specific: Not needed because in metadata:
#MellonIdPPublicKeyFile /opt/omd/sites/${SITE}/etc/apache/mellon/idp-public-key.pem
MellonSPCertFile /opt/omd/sites/${SITE}/etc/apache/mellon/mellon.cert
MellonSPPrivateKeyFile /opt/omd/sites/${SITE}/etc/apache/mellon/mellon.key
MellonEndpointPath "/${SITE}/mellon"
MellonDefaultLoginPath "/${SITE}/check_mk/"
Order allow,deny
Allow from all
MellonSecureCookie On
MellonCookieSameSite None
AuthType Mellon
MellonEnable auth
require valid-user
# Azure-AD-specific:
# Get Username
# If your assertion offers the username for Checkmk in an attribute you can set it directly as the remote user (REMOTE_USER):
MellonUser "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
RequestHeader set X-Remote-User "%{MELLON_http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name}e" env=MELLON_http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
# When SAML auth fails, show the login page to the user. This should only happen, if e.g. the mellon cookie is lost/rejected or if the IDP is misconfigured.
# A failed login at the IDP will not return you here at all.
ErrorDocument 401 '<html> \
<head> \
<meta http-equiv="refresh" content="1; URL=/${SITE}/check_mk/login.py"> \
</head> \
<body> \
SAML authentication failed, redirecting to login page. \
<a href="/${SITE}/check_mk/login.py">Click here</a>. \
</body> \
</html>'
</If>
# Azure-AD-specific:
# This header is also needed after authentication (outside of the If clause)
RequestHeader set X-Remote-User "%{MELLON_http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name}e" env=MELLON_http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
</Location>NetIQ Access Manager
NetIQ Access Manager が IdP として機能する場合、設定手順にいくつかの違いがあります。たとえば、ユーザー名は書き換える必要なく直接指定できます。
次の設定例では、LoadModule で始まる行のインストールディレクトリのパスは、使用しているディストリビューションによって異なる場合があることに注意してください。
# Set this to the Name of your Checkmk site, e.g.# Define SITE mysite
# Define SITE mysite
Define SITE mysite
# ServerName from listen-ports.conf needs to be overwritten here
# and being set to the URL of the real server. auth_mellon uses this to generate the needed URLs in the metadata.
ServerName https://myserver.mydomain.tld
# Load the module.
<IfModule !mod_auth_mellon.c>
LoadModule auth_mellon_module /usr/lib/apache2/modules/mod_auth_mellon.so
</IfModule>
# Only enable this for debugging purposes
#MellonDiagnosticsFile /opt/omd/sites/${SITE}/tmp/mellon_diagnostics.log
#MellonDiagnosticsEnable On
<Location /${SITE}>
# Use SAML auth only in case there is no Checkmk authentication
# Cookie provided by the user and whitelist also some other required URLs.
<If "! %{HTTP_COOKIE} =~ /^auth_${SITE}/ && \
! %{REQUEST_URI} = '/${SITE}/check_mk/register_agent.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/run_cron.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/deploy_agent.py' && \
! %{REQUEST_URI} = '/${SITE}/check_mk/restapi.py' && \
! %{REQUEST_URI} -strmatch '/${SITE}/check_mk/api/*' && \
! %{REQUEST_URI} = '/${SITE}check_mk/ajax_graph_images.py' && \
! %{QUERY_STRING} =~ /(_secret=|auth_|register_agent)/ && \
! %{REQUEST_URI} =~ m#^/${SITE}/(omd/|check_mk/((images|themes)/.*\.(png|svg)|login\.py|.*\.(css|js)))# ">
MellonIdPMetadataFile /opt/omd/sites/${SITE}/etc/apache/mellon/idp-metadata.xml
# NetIQ-specific: Not needed because in metadata:
#MellonIdPPublicKeyFile /opt/omd/sites/${SITE}/etc/apache/mellon/idp-public-key.pem
MellonSPCertFile /opt/omd/sites/${SITE}/etc/apache/mellon/mellon.cert
MellonSPPrivateKeyFile /opt/omd/sites/${SITE}/etc/apache/mellon/mellon.key
MellonEndpointPath "/${SITE}/mellon"
MellonDefaultLoginPath "/${SITE}/check_mk/"
Order allow,deny
Allow from all
MellonSecureCookie On
MellonCookieSameSite None
AuthType Mellon
MellonEnable auth
require valid-user
# NetIQ-specific:
# Even though it is set as 'optional' in https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf
# a NetIQ Access Manager requires it to be set.
# Specified in oasis link above - line 396
MellonOrganizationName "<countrycode>" "<your organisation name>"
# Specified in oasis link above - line 443 / 452
MellonOrganizationURL "<countrycode>" "<your organisation url>"
# Specified in oasis link above - line 454
MellonOrganizationDisplayName "<countrycode>" "<your organisation display name>"
# NetIQ-specific:
# If your assertion offers the username for Checkmk in an attribute you can set it directly as the remote user (REMOTE_USER)
MellonUser "myusername"
# NetIQ-specific:
# If the assertion does contain the username (and was set to MellonUser) then you can set the header directly.
RequestHeader set X-Remote-User "expr=%{REMOTE_USER}"
# When SAML auth fails, show the login page to the user. This should only happen,
# if e.g. the mellon cookie is lost/rejected or if the IDP is misconfigured.
# A failed login at the IDP will not return you here at all.
ErrorDocument 401 '<html> \
<head> \
<meta http-equiv="refresh" content="1; URL=/${SITE}/check_mk/login.py"> \
</head> \
<body> \
SAML authentication failed, redirecting to login page. \
<a href="/${SITE}/check_mk/login.py">Click here</a>. \
</body> \
</html>'
# This header is also needed after authentication (outside of the If clause)
RequestHeader set X-Remote-User "expr=%{REMOTE_USER}"
</Location>5. 既存のユーザーを移行します
SAML を有効にすると、パスワードベースの接続から SAML 接続に既存のユーザーを移行することができます。 これを行うには、Setup > Users > Users のユーザー管理で、目的のアカウントをチェックします。 次に、Migrate selected users から移行を開始します。

中間ステップとして、任意の属性を削除することができます。

