シングルサインオン(SSO)による認証

SUSE Multi-Linux Managerは、セキュリティアサーションマークアップ言語 (SAML) 2プロトコルを実装することで、シングルサインオン(SSO)をサポートしています。

シングルサインオンは、ユーザーが1つの認証情報で複数のアプリケーションにアクセスできる認証処理です。 SAMLは、認証および認可データを交換するためのXMLベースの標準です。 SAMLアイデンティティサービスプロバイダー(IdP)は、SUSE Multi-Linux Managerのようなサービスプロバイダー(SP)に認証および認可サービスを提供します。SUSE Multi-Linux Managerは、シングルサインオンのために有効にする必要がある3つのエンドポイントを公開しています。

SUSE Multi-Linux ManagerにおけるSSOは次のことをサポートしています:

  • SSOを使用したログイン。

  • サービスプロバイダが開始したシングルログアウト(SLO)、およびIDサービスプロバイダのシングルログアウトサービス(SLS)を使用してログアウトする。

  • アサーションとnameIdの暗号化。

  • アサーションの署名。

  • AuthNRequest、LogoutRequest、およびLogoutResponderによるメッセージ署名。

  • アサーションコンシューマサービスエンドポイントの有効化。

  • シングル ログアウト サービス エンドポイントの有効化。

  • SPメタデータ(署名可能)の発行。

SUSE Multi-Linux ManagerにおけるSSOは次のことをサポートしていません:

  • IDサービスプロバイダ(IdP)の製品の選択と実装。

  • 他の製品のSAMLサポート(各製品のドキュメントで確認してください)。

SSOの実装例については、SSOの実装例を参照してください。

デフォルトの認証方法からシングルサインオンに変更すると、新しいSSO認証情報はWeb UIにのみ適用されます。 `mgr-sync`や`spacecmd`のようなクライアントツールは、デフォルトの認証方法でのみ動作し続けます。

1. 前提条件

始める前に、これらのパラメータを使用して外部アイデンティティサービスプロバイダーを構成しておく必要があります。 手順については、IdPのドキュメントを確認してください。

IdPユーザーとSUSE Multi-Linux Managerユーザーのマッピングは、SAML:Attributeで指定されます。 SAML:AttributeはIdPで構成され、SAML認証でSUSE Multi-Linux Managerに渡される必要があります。 属性は`uid`という名前でなければならず、ログイン後にマッピングされたSUSE Multi-Linux Managerユーザーを含む必要があります。 SUSE Multi-Linux Managerユーザーは、シングルサインオンを有効にする前に作成されなければなりません。

以下のエンドポイントが必要です。

  • アサーションコンシューマサービス(ACS): SAMLメッセージを受け入れてサービスプロバイダへのセッションを確立するエンドポイント。 SUSE Multi-Linux ManagerにおけるACSのエンドポイントは次のとおりです: https://server.example.com/rhn/manager/sso/acs

  • シングルログアウトサービス(SLS): IdPからログアウト要求を開始するエンドポイント。 SUSE Multi-Linux ManagerにおけるSLSのエンドポイントは次のとおりです: https://server.example.com/rhn/manager/sso/sls

  • メタデータ:SAMLのSUSE Multi-Linux Managerメタデータを取得するエンドポイント。 SUSE Multi-Linux Managerのメタデータのエンドポイントは次のとおりです: https://server.example.com/rhn/manager/sso/metadata

ユーザー`orgadmin`を使用したIdPによる認証が成功した後、SUSE Multi-Linux Managerに`orgadmin`ユーザーとしてログインします。ただし、`orgadmin`ユーザーがSUSE Multi-Linux Managerに存在する場合に限ります。

2. SSOの有効化

SSOの使用は、他のタイプの認証と相互に排他的であり、有効か無効のいずれかです。 SSOはデフォルトで無効になっています。

サーバーコンテナ内でステップを実行する前に、`mgrctl term`を使用してください。

プロシージャ:SSOを有効にする
  1. ユーザがまだSUSE Multi-Linux Managerに存在しない場合は、まず作成してください。

  2. `/etc/rhn/rhn.conf`を編集し、ファイルの末尾にこの行を追加します:

    java.sso = true
  3. /usr/share/rhn/config-defaults/rhn_java_sso.conf`内でカスタマイズするパラメーターを見つけます。 カスタマイズするパラメーターを/etc/rhn/rhn.conf`に挿入し、その前に`java.sso`を付けます。 例えば、`/usr/share/rhn/config-defaults/rhn_java_sso.conf`で以下を見つけます:

    onelogin.saml2.sp.assertion_consumer_service.url = https://YOUR-PRODUCT-HOSTNAME-OR-IP/rhn/manager/sso/acs

    カスタマイズするには、オプション名の前に`java.sso.を付けて、対応するオプションを/etc/rhn/rhn.conf`に作成します:

    java.sso.onelogin.saml2.sp.assertion_consumer_service.url = https://YOUR-PRODUCT-HOSTNAME-OR-IP/rhn/manager/sso/acs

    変更が必要なすべての箇所を見つけるには、ファイル内でプレースホルダー`YOUR-PRODUCT`および`YOUR-IDP-ENTITY`を検索してください。 すべてのパラメータには、その目的に関する簡単な説明が付いています。

  4. spacewalkサービスを再起動して変更を取得します。

    mgradm restart

SUSE Multi-Linux ManagerのURLにアクセスすると、SSOのためにIdPにリダイレクトされ、認証を求められます。 認証が成功すると、SUSE Multi-Linux Manager Web UIにリダイレクトされ、認証されたユーザとしてログインします。 SSOを使用してログインする際に問題が発生した場合は、SUSE Multi-Linux Managerのログを確認して詳細情報を取得してください。