OpenSearchによる検索でのSAML認証
OpenSearchでのSAML認証OCI検索の使用について学習します。
OpenSearchを使用したOCI検索では、OpenSearchクラスタおよびOpenSearchダッシュボードへのアクセスおよび制御のためのアイデンティティ・プロバイダの使用がサポートされています。これは、OpenSearchセキュリティ・プラグインのSAMLシングル・サインオン・サポートを介して使用できます。
SAML統合では、OCI OpenSearchが、SAMLサービス・プロバイダとしてアイデンティティ・プロバイダに接続してユーザーを認証し、OpenSearchクラスタおよびOpenSearchダッシュボードにアクセスするために認証トークンをOCI OpenSearchに渡すようにクラスタを構成できます。OpenSearchダッシュボードを構成して、ユーザーがOpenSearchダッシュボードにアクセスするときに認証のためにアイデンティティ・プロバイダのサインイン・ページにリダイレクトされるようにすることもできます。
次の表に、OpenSearchを使用した検索に適用可能なSAML構成設定を示します。
SAML構成 | 摘要 | フィールドまたは属性名 |
---|---|---|
SAMLメタデータ | アイデンティティ・プロバイダの機能と構成を説明するメタデータ・ファイル。必須。 |
|
アイデンティティID | アイデンティティ・プロバイダの名前。必須。 |
|
OpenSearchダッシュボードURL | クラスタのOpenSearchダッシュボードのURL。オプション。 |
|
管理バックエンド・ロール | クラスタに対する完全な管理者権限を持つユーザーのアイデンティティ・プロバイダ内のバックエンド・ロール。オプション。 |
|
サブジェクト・キー | アイデンティティ・プロバイダがユーザーNameID のデフォルト要素名を使用する場合は、ここで何も指定する必要はありません。それ以外の場合は、この要素を使用して、ユーザーを含むSAMLレスポンスの要素を指定します。オプション。 |
|
ロール・キー | バックエンド・ロールを使用している場合は、ユーザー・ロールを含むSAMLレスポンスの要素名を指定します。オプション |
|
制限事項および考慮事項
- OpenSearchで検索すると、コンソールでの既存のクラスタに対するSAML認証の有効化のみがサポートされます。コンソールで新しいクラスタを作成する場合、SAML認証を有効にできません。CLIまたはAPIを使用して新しいOpenSearchクラスタを作成するときにSAML認証を有効にできます。
- 新しいクラスタを作成し、CLIまたはAPIを使用してSAML認証を有効にする場合は、セキュリティ・モードを適用するように設定して、クラスタのロールベースのアクセス制御も有効にする必要があります。
前提条件
- 既存のアイデンティティ・プロバイダ。
- コンソールの場合のみ、既存のOpenSearchクラスタを作成する必要があります。
コンソールの既存のクラスタに対してのみSAMLを有効にできます。
- CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドのフラグおよびオプションの完全なリストは、CLIコマンドライン・リファレンスを参照してください。
クラスタ作成時のSAMLの有効化
CLIでclusterオブジェクトのcreateコマンドを使用してクラスタを作成するときに、SAML認証を有効にできます。createコマンドの必須パラメータに加えて、次のパラメータも含める必要があります。
- ロールベースのアクセス制御パラメータ(
security-mode
、security-master-user-name
およびsecurity-master-user-password-hash
を含む)。security-mode
パラメータをENFORCING
に設定する必要があります。 - SAML構成を含む
securitySamlConfig
パラメータ。次に、このパラメータのSAML構成を使用したJSONの例を示します。{ "isEnabled": true, "idpEntityId": "<identity_provider_name>", "idpMetadataContent": "xml content" "opendashboardUrl": "https://localhost:5601", "adminBackendRole": "<admin_role_name>", "subjectKey": "<NameID>", "rolesKey": "<group_name>" }
前述のサンプルには使用可能なすべてのSAML構成フィールドが含まれていますが、
isEnabled
、idpEntityId
およびidpMetadataContent
フィールドのみが必要です。
create
コマンドの例:oci opensearch cluster create --compartment-id <compartment_ocid> --securitySamlConfig <SAML_Config_JSON> --security-mode ENFORCING --security-master-user-name <username> --security-master-user-password-hash <password> ...remaining required fields
クラスタの更新時のSAMLの有効化
CLIでclusterオブジェクトのupdateコマンドを使用してクラスタを更新するときに、既存のクラスタのSAML認証を有効にできます。
securitySamlConfig
パラメータをupdateコマンドに含める必要があります。このパラメータに指定する内容の例については、前の項のSAML構成JSONを参照してください。update
コマンドの例:oci opensearch cluster update --display-name<cluster_name> --opensearch-cluster-id <cluster_ocid --securitySamlConfig <SAML_Config_JSON>
ロールベースのアクセス制御がクラスタに対して有効になっていない場合は、
security-mode
、security-master-user-name
およびsecurity-master-user-password-hash
パラメータも含めて有効にする必要があります。security-mode
パラメータをENFORCING
に設定する必要があります。 - ロールベースのアクセス制御パラメータ(
クラスタ作成時のSAMLの有効化
SAML認証は、CreateOpensearchCluster操作を使用してクラスタを作成するときに有効にできます。次の例に示すように、新しい
securitySamlConfig
属性を使用して、SAML構成の詳細をCreateOpensearchClusterDetailsに渡します。POST https://opensearch.us-ashburn-1.oci.oraclecloud.com/20180828/opensearchClusters/ { ... "securitySamlConfig": { "isEnabled": true, "idpEntityId": "<identity_provider_name>", "idpMetadataContent": "xml content" "opendashboardUrl": "https://localhost:5601", "adminBackendRole": "<admin_role_name>", "subjectKey": "<NameID>", "rolesKey": "<group_name>" }, ... }
クラスタの更新時のSAMLの有効化
UpdateOpensearchCluster操作を使用してクラスタを更新するときに、既存のクラスタのSAML認証を有効にできます。次の例に示すように、新しい
securitySamlConfig
属性を使用して、SAML構成の詳細をUpdateOpensearchClusterDetailsに渡します。PUT https://opensearch.us-ashburn-1.oci.oraclecloud.com/20180828/opensearchClusters/ocid1.opensearchcluster.oc1.<unique_ID> { ... "securitySamlConfig": { "isEnabled": true, "idpEntityId": "<identity_provider_name>", "idpMetadataContent": "xml content" "opendashboardUrl": "https://localhost:5601", "adminBackendRole": "<admin_role_name>", "subjectKey": "<NameID>", "rolesKey": "<group_name>" }, ... }