SAML アイデンティティ プロバイダ(IdP)としての PAM の設定
Privileged Access Manager は、SAML 2.0 サービス プロバイダ(SP)に認証サービスを提供するアイデンティティ プロバイダ(IdP)として設定できます。
pam414
HID_ImportSAML2SPMetadataPanel
Privileged Access Manager
は、SAML 2.0 サービス プロバイダ(SP)に認証サービスを提供するアイデンティティ プロバイダ(IdP)として設定できます。PAM
IdP では、メッセージの送信に HTTP POST バインディングをサポートしています。このトピックには、
PAM
を IdP として設定するための手順が記載されています。SAML 設定の前提条件
アプライアンスを IdP として設定する前に、以下のタスクを完了します。
各側のユーザ アカウントのプロビジョニング
SP と IdP には、ユーザ名が一致するユーザ アカウントが必要です。ユーザは、SP 側のリソースにアクセスするための許可が必要です。
UI での SAML 全体設定の構成
IdP 設定を設定する前に、デフォルトの SAML 設定を確認します。
以下の手順に従います。
- [設定] - [全体設定]を選択します。
- [SAML]タブを選択します。
- 以下の 2 つの設定を確認します。
- 継承された SAML 認証が必要:ユーザ グループの認証方式が SAML に設定されている場合、このオプションでは、すべてのユーザ グループ メンバに SAML 認証が適用されます。アプライアンスは、個々のグループ メンバごとの認証方式を無視します。この設定はデフォルトで選択されます。
- SAML の再認証期間(分)この設定は、PAMが IdP の場合のみに適用されます。この設定では、PAMIdP とのセッションがタイムアウトするまでの非アクティブ状態の時間を分単位で指定します。次の SSO リクエストをするには、ユーザが再度ログインする必要があります。デフォルト: 60 分
認証レスポンスに署名するための証明書の取得
SP への SAML レスポンスへの署名および暗号化を行うには、
PAM
IdP は、認証局からの署名済みの証明書が必要です。SSL 証明書を取得するには、以下の手順に従います。
この手順は、 サイトの最初のメンバにのみ、以下の手順を完了します。
PAM
の単一のインスタンスおよびクラスタの場合に適用されます。クラスタでは、プライマリ- UI で、[構成]-[セキュリティ]-[証明書]に移動します。
- [作成]ページで、[CSR](Certificate Signing Request、証明書署名要求)を選択します。CSR を作成すると、アプライアンスによって CSR と秘密キー ファイルが作成されます。CSR フォームの記入方法については、「自己署名証明書または CSR の作成」を参照してください。
- CSR をダウンロードし、認証局に送信します。認証局は、証明書ファイルと CRL を返します。
- 証明書ファイルを取得したら、[構成]-[セキュリティ]-[証明書]に移動します。
- [アップロード]ページを選択し、以下のオプションを設定します。
- タイプ:証明書
- その他のオプション:X509
- [アップロード]を選択します。これで、アプライアンスが証明書を利用できるようになります。クラスタの場合、その他のすべてのクラスタ メンバに証明書および秘密キーをコピーする必要があります。方法については、次の手順に進みます。
クラスタ化環境でのキー/証明書のアップロード
クラスタでは、IdP 設定は、すべてのクラスタ メンバに自動的にレプリケートされます。証明書はレプリケートされません。プライマリ サイトの最初のメンバから、その他のすべてのクラスタ メンバに証明書および秘密キーをコピーする必要があります。
プライマリ サイトの最初のメンバに対し、
以下の手順を実行します
- [設定]-[セキュリティ]-[証明書]に移動します。
- [ダウンロード]ページに移動し、秘密キー ファイルをローカル システムにダウンロードします。
- テキスト エディタを使用してファイルを作成します。
- このファイルに、秘密キー ファイルおよび認証局からの証明書ファイルの内容をコピーします。秘密キー ファイルは、CSR を作成したときに生成されています。
- 新しいファイルを保存します。
クラスタのその他の各メンバ(プライマリ サイトの最初のメンバを除く)に対し、
以下の手順を実行します。
- UI にログインし、[構成]-[セキュリティ]-[証明書]を選択します。
- [アップロード]タブを選択し、以下のフィールドを設定します。
- タイプ: 証明書と秘密キー
- その他のオプション: PKCS
- [ファイルの選択]を選択し、新しい、結合されたファイルを選択します。
- [アップロード]を選択します。
PAM を IdP として設定する
PAM
を IdP として設定するSAML SSO パートナーシップは、SP と IdP 間の関係です。SP にはユーザが要求するリソースがあり、IdP には、その要求を行うユーザを認証するための情報があります。IdP は、ユーザに関する情報を含むアサーションを返します。SP は、この情報を使用して、ユーザにアクセスを許可するかどうかを決定します。
クラスタ化環境では、アプライアンスは、IdP 設定をプライマリ サイトの最初のメンバからクラスタ全体の他のメンバにレプリケートします。例外は、レスポンスを暗号化するキー/証明書ファイルです。前述の手順で、キー/証明書ファイルはクラスタの各メンバに手動でコピーされています。
PAM
を IdP として設定するには、以下の手順に従います。- クラスタ化環境のみ:プライマリ サイトの最初のメンバでは、クラスタをオフにします。クラスタがアクティブであると、IdP 設定を有効にできません。
- [構成]-[セキュリティ]-[SAML]-[IdP 構成]タブに移動します。
- 以下に挙げる設定を行います。
- ステータス:IdP が有効かどうかを示します。この設定を有効にして IdP 構成を完了します。
- エンティティ ID:この IdP を識別する一意のテスト文字列を入力します。
- 完全修飾ホスト名: 以下のいずれかの値を入力します。完全修飾ホスト名を指定していることを確認します。
- 単一のインスタンスの場合は、capam.example.com など、IdP ホスト名の値を入力します。
- プライマリ クラスタ メンバの場合は、VIP アドレスまたは VIP ホスト名を入力します。
PAMIdP へのアクセス時に完全修飾ホスト名を使用するようにフェデレーション パートナーに通知します。 - 署名アルゴリズム:証明書に署名する暗号化アルゴリズムを選択します。
- 必要に応じて、[IdP メタデータをダウンロードする]を選択し、XML ファイルを生成してリモート SP に送信します。
設定が完了しました。これらの設定を変更する場合は、
[IdP 構成の更新]
を選択します。SAML メタデータの詳細については、「SAML の仕様」を参照してください。
例: AWS SP への SAML SSO の設定
以下の例では、
PAM
IdP と SP としての Amazon Web Services (AWS)の間のフェデレーション SSO をセットアップする方法について説明します。この例では、設定はメタデータに依存します。プロセスは、以下の図に反映されています。
AWS SP を使用した SAML SSO
/content/saml_sso_with_aws_sp.png/_jcr_content/renditions/original)
IdP メタデータをダウンロードし、AWS SP に送信する
IdP と AWS SP の間に信頼された通信を確立するため、まず IdP メタデータ ファイルを設定し、ダウンロードします。ダウンロードされるファイルは idp-metadata.xml という名前で、IdP でサポートされている SAML サービスが記述されています。ファイルには、以下が含まれています。
- SP から IdP への認証リクエストの送信方法についての情報
- 署名されたアサーションを確認するための証明書(公開鍵)
- PAMサーバの FQDN または IP アドレスFQDN を変更した場合または証明書が変更された場合は、IdP メタデータを更新し、ファイルを SP に再送信します。
以下の手順に従います。
この手順では、IdP がすでに有効になっていることを前提としています。
- PAMUI に設定管理者としてログインします。
- [構成]-[セキュリティ]-[SAML]に移動します。[IdP 構成]タブを選択します。
- 次のフィールドに値を入力します。
- エンティティ ID:この IdP を識別する名前を割り当てます。この ID は、メタデータ ファイルおよびアサーションに含まれています。
- 完全修飾ホスト名: IdP ホストの完全修飾名を入力します。デフォルトの例は、idp.example.com です。
- 署名アルゴリズム:IdP 証明書への署名に使用する暗号化アルゴリズムを選択します。
- IdP 証明書:アプライアンスに対して現在使用している証明書とキーを選択します。
- [IdP 構成の更新]を選択して、最新の証明書、ホスト名、および割り当てられた ID を適用します。ページ上部に確認メッセージが表示されます。
- [IdP メタデータをダウンロードする]を選択して、idp-metadata.xml ファイルをローカルに保存します。
- AWS で、次の手順の指示に従って、IdP メタデータ ファイルをインポートします。
IdP メタデータをインポートし、AWS IAM リソースを作成する
PAM
管理者は、AWS に IdP メタデータを送信します。AWS 管理者は、メタデータ ファイルを SP エンドポイントにインポートする必要があります。このファイルには、AWS が PAM
へ認証リクエストを行うために必要な情報が含まれています。注意:
以下の手順では、PAM とは別の製品について説明しています。手順は一例として挙げらています。実際の機能や表示は異なる可能性があります。AWS 管理者は、以下の手順に従う必要があります
。- AWS 管理コンソールにログインし、[Services]-[IAM]-[Identity Providers]に移動します。
- [Create Provider]を選択し、以下の設定を完了します。
- Provider Type:[SAML]を選択します。
- Provider Name:PAMIdP を識別するための名前を入力します。
- Metadata Document:PAM管理者から送信された IdP メタデータを検索します。
- [Next Step]を選択し、[Create]を選択して設定を確認します。
- 左側のペインで、[Roles]-[Create New Role]を選択します。
- [Role Name]に入力して、[Next Step]を選択します。
- [Select Role Type]ページで、以下の手順を実行します。
- [Role for Identity Provider Access]を選択します。
- [Grant Web Single Sign-On (WebSSO) access to SAML providers]を選択します。
- 次のパネルで、前述の手順で作成した SAML プロバイダを選択します。[Next Step]を選択します。
- [Verify Role Trust]ページは通過します。この例では、[Verify Role Trust: Policy Document]を編集する必要はありません。
- [Attach Policy]ページでは、[Amazon EC2 Read Only Access]などの事前構築済みのポリシー テンプレートのいずれかを選択し、使用することをお勧めします。パブリック EC2 インスタンスをテストしている場合は、自分のボックスに他のユーザがログインしないようにしてください。[Next Step]を選択します。
- 確認画面を確認し、[Create Role]を選択します。ロール リストに新しいロールが表示されます。
PAM
IdP と通信できるように AWS アカウントが設定されました。AWS SP メタデータの IdP へのインポート
AWS は、認証にロール コンセプトを使用します。IdP が認証レスポンスを生成するとき、アサーションには、認証されるユーザのロール データが含まれている必要があります。ロール定義およびその他の情報は AWS SP メタデータに含まれています。このファイルには、SP が IdP 認証レスポンスに求める属性も含まれています。
AWS の SAML メタデータ ファイルは、https://signin.aws.amazon.com/static/saml-metadata.xml で取得できます。ファイルを取得したら、
PAM
にインポートします。以下の手順に従います。
- PAMUI に設定管理者としてログインします。
- [サービス]-[SAML 2 SP メタデータのインポート]を選択します。
- [ファイルの選択]を選択し、AWS SP メタデータ ファイルを参照します。
- [SAML 2.0 SP メタデータのインポート]を選択します。インポートを確認するメッセージが表示されます。インポート後、アプライアンスは、以下の 2 つのオブジェクトを作成します。
- Web ポータル サービス。サービスの名前は、メタデータ ファイル内の SP エンティティ ID と一致します。この例では、サービスは「AWS Management Console Single Sign-On」という名前です。
- SP のアサーション コンシューマ サービスのアドレスを持つデバイス。
- [サービス]-[TCP/UDP サービス]に移動して、新しい Web ポータル サービスを選択し、更新します。
- [自動ログイン方法]フィールドが[SAML 2.0 SSO POST]に設定されていることを確認します。
- [SAML SSO情報]タブを選択し、以下のフィールドを設定します。
- 開始パーティ:[IdP initiated]を選択します。
- 署名された認証リクエストが必要です:チェックボックスをオフにします。AWS SP は、署名された認証リクエストを送信しません。
手順を完了すると、
PAM
は、AWS にアサーションを提供できるようになります。AWS は、アサーションに基づいて要求されたリソースへのアクセスを許可できるようになります。ユーザが AWS リソースにアクセスするためのポリシーを作成する
ユーザが AWS リソースにアクセスできるようにするため、アプライアンスでそのユーザのためのポリシーをセットアップします。ポリシーは、TCP/UDP サービスと、SP メタデータをインポートしたときにアプライアンスによって自動的に作成されたデバイスで構成されます。ポリシーには、AWS SP がアサーション レスポンスで受け入れる、選択された属性も含まれます。
以下の手順に従います。
- PAMUI にログインします。
- [ポリシー]-[ポリシーの管理]-[追加]を選択します。
- [関連付け]パネルで、ユーザおよびデバイスsignin.aws.amazon.comを選択します。このデバイスは、SP メタデータに基づいて自動的に生成されたものです。
- [サービス]パネルで、[AWS Management Console Single Sign-On]サービスを選択します。
- [SAML]パネルで、[Requested Attributes (リクエストされた属性)]列で以下の属性を追加します。
- サブジェクト名 ID:利用可能な名前 ID 形式は、TCP/UDP サービスに関連付けられています
- RoleSessionName:[属性]列内のラベルを割り当てます。任意の識別子を使用します。
- RoleEntitlement:[属性]列の定数を選択します。[値]列に、IAM ロールとアイデンティティ プロバイダの連結 AWS ARN を入力します(カンマ区切りで入力)。以下に例を示します。arn:aws:iam::123456789012:role/MyAWSroleForMyIDP,arn:aws:iam::123456789012:saml-provider/AWSstoredMetadataForMyIDP以下の図に例を示します。
/content/aws_sample_policy.png/_jcr_content/renditions/original)
- [OK]を選択してポリシーを保存します。
これで、ユーザはログイン不要で AWS フェデレーション リソースにアクセスできるようになります。
例: Google SP への SAML SSO の設定
メタデータを提供しない SP を使用することができます。この例では、
PAM
IdP は、Google SP との SSO のために設定されています。Google は、パートナーとの情報の交換にメタデータを使用しません。プロセスは、以下の図に反映されています。
SAML SSO Google の例
/content/saml_sso_google_example.png/_jcr_content/renditions/original)
Google での IdP の識別
Google では、Google アカウントを認証できるように
PAM
IdP を設定する必要があります。以下の手順では、PAM とは別の製品について説明しています。手順は一例として挙げらています。実際の機能や表示が異なる可能性があります。
以下の手順に従います。
- Google 管理コンソール(https://admin.google.com)にログインします。
- 左上のメイン メニューから[Security]を選択し、ページをスクロール ダウンして[Set up single sign-on (SSO)]を選択します。
- ページをスクロール ダウンして、チェックボックス[Setup SSO with third party identity provider]をオンにします。
- 次のフィールドに値を入力します。
- サインイン ページの URL:https://capam_IP_or_hostname/idp/profile/SAML2/Redirect/SSO
- Sign-out page URL:PAMはシングル サインアウトをサポートしません。プレースホルダとしてhttps://capam_ip or hostname/を入力します。
- Change password URL:PAMはパスワード変更をサポートしません。プレースホルダとして https://capam_ip または hostname/ を入力します。
- Verification certificate:PAMIdP からの証明書をアップロードします。この証明書は、SAML レスポンスへの署名のために使用される秘密キーと共に動作します。この証明書を取得するには、以下のアクションのいずれかを実行します。
- IdP メタデータ ファイルから証明書をコピーします。
- アプライアンスから証明書をダウンロードします。PAMで[構成]-[セキュリティ]-[証明書]を選択し、[ダウンロード]タブに移動します。
- [Use a domain-specific issuer (ドメイン固有の発行者を使用)]を選択します。
- 必要に応じて、特定のユーザ セットにアプリケーションへのアクセスを許可するため、[Network masks (ネットワーク マスク)]フィールドでエントリを指定します。
- 次の手順に進みます。
サービスを Google ユーザを認証するように設定する
Google SP を表す IdP のサービスをセットアップします。このサービスのセットアップに使用できるメタデータはありません。SP から必要な情報を取得します。
以下の手順に従います。
- PAMUI にログインします。
- [サービス]-[TCP/UDP サービスの管理]-[追加]に移動します。
- [基本情報]パネルで、以下の値で各種の設定を行います。
- サービス名:Google SP のエンティティ ID。この例では、GoogleApps です。
- ローカル IP:ユーザのラップトップなどのエンド ユーザのローカル ホストのアドレス 127.0.0.5 (IPv4) または ::1 (IPv6) 形式。既存のサービスのアドレスを使用しないでください。
- ポート:ローカル ホストのポートを入力します(443:4430 など)。
- プロトコル:TCP
- アプリケーション プロトコル: Web ポータル
- 自動ログイン方法:SAML 2.0 SSO POST
- 起動 URL:次の形式を使用した、ACS の URL。https://<Local IP>:<First Port>/a/google_domain/acsリテラル文字列 <Local IP>:<First Port> を入力します。これらのエントリは、プレースホルダではありません。google_domainをカレンダや電子メールなどの Google サービスのドメインに置き換えます。このドメインは SAML アサーションが消費される場所です。
- [SAML SSO情報]パネルで、各フィールドを以下の値で設定します。
- SAML エンティティ ID: google.com/a/google_domain
- 開始パーティ:[SP initiated]
- 署名された認証リクエストが必要です:チェックボックスをオフにします。
- 暗号化: [なし]を選択します。Google アプリケーションは、暗号化されたアサーションをサポートしていません。SP が暗号化をサポートしている場合は、[名前 ID]または[アサーション]オプションを選択できます。次に、[PEM 暗号化証明書]フィールドに SP からの証明書をコピーします。
- [SAML SSO 属性]ページで、名前 ID 形式「urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified」を選択します。
- [OK]を選択します。
Google を表すデバイスの作成
Google SP を識別するデバイスを追加します。
以下の手順に従います。
- [デバイス]-[デバイスの管理]-[追加]を選択します。
- フィールドのほとんどは説明不要ですが、以下のエントリに注意してください。
- アドレス:ACS をホストするサーバの完全修飾ドメイン名を入力します。アドレスは、たとえば https://www.google.com/a/your_google_domain/acs のように、ACS URL から抽出できます。PAMでプロビジョニングされるデバイス アドレスは www.google.com です。
- デバイス タイプ:[アクセス]
- [サービス]タブ: 前述の手順で SP 用に設定した TCP/UDP サービスを選択します。
- [OK]を選択してデバイス エントリを保存します。
SP ユーザに一致する IdP ユーザを作成する
Google ユーザ アカウントに一致するユーザ名で、アプリケーションにログインできるユーザを作成します。
以下の手順に従います。
- [ユーザ]-[ユーザの管理]-[追加]を選択します。
- タブ上のほとんどのフィールドは説明不要です。
- [ロール]パネルで、SP にアクセスするためだけにPAMにログインするユーザに対して適切なユーザ ロールを選択します。
- [OK]を選択してユーザ エントリを保存します。
ユーザが Google アプリケーションにアクセスするためのポリシーを作成する
ユーザが Google アプリケーションにアクセスできるようにするため、アプライアンスでそのユーザのためのポリシーをセットアップします。ポリシーは、TCP/UDP サービス、デバイス、および前述の手順で作成したユーザ エントリで構成されます。
以下の手順に従います。
- PAMUI にログインします。
- [ポリシー]-[ポリシーの管理]-[追加]を選択します。
- [関連付け]パネルで、ユーザおよびwww.google.comという名前のデバイスを選択します。
- [サービス]パネルで、[GoogleApps]を選択します。
- [SAML]パネルで、以下の値を持つ属性エントリを追加します。
- Requested Attribute (リクエストされた属性):サブジェクト名 ID。この属性は常に必要です。
- 名前 ID 形式:urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
- 属性:電子メール
- [OK]を選択してポリシーを保存します。
これで、ユーザは Google アプリケーションにシングル サインオンできるようになります。
SAML SSO におけるユーザ エクスペリエンス
ユーザがリクエストを行うときには、以下の 2 タイプの通信フローがあります。
- IdP 側で開始: ユーザが IdP で通信を開始し、SP にリダイレクトされます。
- SP 側で開始: ユーザが SP で通信を開始し、SP が IdP に認証リクエストを送信します。IdP は、ユーザを識別するアサーションで応答します。
以下の 2 つの SAML SSO 設定の例で、各タイプのフローを示します。
AWS 管理コンソールへの IdP 側で開始される SSO
AWS の例では、AWS 管理コンソールに対して設定したサービスは、IdP 側で開始される SSO 用です。
SSO のフローは、以下の手順に従います。
- ユーザがPAMにログインすると、UI に[アクセス]ページが表示されます。
- [アクセス]ページには、AWS Management Console Single Sign-On へのリンクがあります。
- ユーザはリンクを選択し、認証情報を入力せずにコンソールに直接アクセスします。
Google Apps への SP 側で開始される SSO
SP 側で開始される通信では、Google で接続を開始します。通常、ユーザには SP へのアクセス URL が提供されています。
以下の手順では、PAM とは別の製品について説明しています。手順は一例として挙げらています。実際の機能や表示が異なる可能性があります。
SSO のフローは、以下の手順に従います。
- ブラウザで、ユーザが Google への URL「https://accounts.google.com/」を入力します。
- ログイン時、ユーザは自分のユーザ名を入力します。
- SP は、PAMIdP にユーザをリダイレクトします。
- ユーザが認証されなかった場合、PAMはログイン ページを表示します。ユーザがログインし、IdP はそのユーザを認証します。
- 認証後、IdP は、ユーザをアサーションと共に Google にリダイレクトします。ユーザは、自動的に Google にログインされます。